From 1098b8918a471c9cf45a0ad4f15c636415d881af Mon Sep 17 00:00:00 2001
From: Daniel <daniel.dominek@pwr.edu.pl>
Date: Fri, 10 Jul 2020 17:32:47 +0200
Subject: [PATCH] lexp www

---
 .htaccess                                     |    8 +
 Dockerfile                                    |   22 +
 apache2.conf                                  |  221 ++
 css/graph-creator.css                         |  249 ++
 css/languages.css                             |   42 +
 css/modal.css                                 |   90 +
 css/nav.css                                   |   65 +
 css/selectmenu-nav.css                        |   69 +
 css/style.css                                 |  633 ++++
 eswil/eswil.js                                |   41 +
 hask/hask.html                                |   16 +
 hask/hask.js                                  |   70 +
 hask/hasklist.html                            |   15 +
 httpd.conf                                    |  551 ++++
 img/ajax-loader.gif                           |  Bin 0 -> 3208 bytes
 img/check.png                                 |  Bin 0 -> 1757 bytes
 img/favicon.ico                               |  Bin 0 -> 43078 bytes
 img/icons.gif                                 |  Bin 0 -> 5906 bytes
 img/lang-en-32.png                            |  Bin 0 -> 1690 bytes
 img/lang-pl-32.png                            |  Bin 0 -> 815 bytes
 img/loading.gif                               |  Bin 0 -> 3897 bytes
 img/logo-small.png                            |  Bin 0 -> 10642 bytes
 img/progressbar.gif                           |  Bin 0 -> 3323 bytes
 img/services-logo/eswil.png                   |  Bin 0 -> 2114 bytes
 img/services-logo/hask.png                    |  Bin 0 -> 9033 bytes
 img/services-logo/morfeusz.png                |  Bin 0 -> 2450 bytes
 img/services-logo/omwn.png                    |  Bin 0 -> 11160 bytes
 img/services-logo/plwordnet.png               |  Bin 0 -> 4134 bytes
 img/services-logo/spxvi.png                   |  Bin 0 -> 4685 bytes
 img/services-logo/spxvii.png                  |  Bin 0 -> 2114 bytes
 img/services-logo/walenty.png                 |  Bin 0 -> 3447 bytes
 img/services-logo/word2vec.png                |  Bin 0 -> 5163 bytes
 index.shtml                                   |  239 ++
 js/about-app-modal.js                         |   36 +
 js/about-us-modal.js                          |   37 +
 js/ace/ace.js                                 |   11 +
 js/ace/ext-beautify.js                        |    5 +
 js/ace/ext-chromevox.js                       |    5 +
 js/ace/ext-elastic_tabstops_lite.js           |    5 +
 js/ace/ext-emmet.js                           |    5 +
 js/ace/ext-error_marker.js                    |    5 +
 js/ace/ext-keybinding_menu.js                 |    5 +
 js/ace/ext-language_tools.js                  |    5 +
 js/ace/ext-linking.js                         |    5 +
 js/ace/ext-modelist.js                        |    5 +
 js/ace/ext-old_ie.js                          |    5 +
 js/ace/ext-searchbox.js                       |    5 +
 js/ace/ext-settings_menu.js                   |    5 +
 js/ace/ext-spellcheck.js                      |    5 +
 js/ace/ext-split.js                           |    5 +
 js/ace/ext-static_highlight.js                |    5 +
 js/ace/ext-statusbar.js                       |    5 +
 js/ace/ext-textarea.js                        |    5 +
 js/ace/ext-themelist.js                       |    5 +
 js/ace/ext-whitespace.js                      |    5 +
 js/ace/keybinding-emacs.js                    |    1 +
 js/ace/keybinding-vim.js                      |    1 +
 js/ace/mode-abap.js                           |    1 +
 js/ace/mode-abc.js                            |    1 +
 js/ace/mode-actionscript.js                   |    1 +
 js/ace/mode-ada.js                            |    1 +
 js/ace/mode-apache_conf.js                    |    1 +
 js/ace/mode-applescript.js                    |    1 +
 js/ace/mode-asciidoc.js                       |    1 +
 js/ace/mode-assembly_x86.js                   |    1 +
 js/ace/mode-autohotkey.js                     |    1 +
 js/ace/mode-batchfile.js                      |    1 +
 js/ace/mode-c9search.js                       |    1 +
 js/ace/mode-c_cpp.js                          |    1 +
 js/ace/mode-cirru.js                          |    1 +
 js/ace/mode-clojure.js                        |    1 +
 js/ace/mode-cobol.js                          |    1 +
 js/ace/mode-coffee.js                         |    1 +
 js/ace/mode-coldfusion.js                     |    1 +
 js/ace/mode-csharp.js                         |    1 +
 js/ace/mode-css.js                            |    1 +
 js/ace/mode-curly.js                          |    1 +
 js/ace/mode-d.js                              |    1 +
 js/ace/mode-dart.js                           |    1 +
 js/ace/mode-diff.js                           |    1 +
 js/ace/mode-django.js                         |    1 +
 js/ace/mode-dockerfile.js                     |    1 +
 js/ace/mode-dot.js                            |    1 +
 js/ace/mode-eiffel.js                         |    1 +
 js/ace/mode-ejs.js                            |    1 +
 js/ace/mode-elixir.js                         |    1 +
 js/ace/mode-elm.js                            |    1 +
 js/ace/mode-erlang.js                         |    1 +
 js/ace/mode-forth.js                          |    1 +
 js/ace/mode-ftl.js                            |    1 +
 js/ace/mode-gcode.js                          |    1 +
 js/ace/mode-gherkin.js                        |    1 +
 js/ace/mode-gitignore.js                      |    1 +
 js/ace/mode-glsl.js                           |    1 +
 js/ace/mode-golang.js                         |    1 +
 js/ace/mode-groovy.js                         |    1 +
 js/ace/mode-haml.js                           |    1 +
 js/ace/mode-handlebars.js                     |    1 +
 js/ace/mode-haskell.js                        |    1 +
 js/ace/mode-haxe.js                           |    1 +
 js/ace/mode-html.js                           |    1 +
 js/ace/mode-html_ruby.js                      |    1 +
 js/ace/mode-ini.js                            |    1 +
 js/ace/mode-io.js                             |    1 +
 js/ace/mode-jack.js                           |    1 +
 js/ace/mode-jade.js                           |    1 +
 js/ace/mode-java.js                           |    1 +
 js/ace/mode-javascript.js                     |    1 +
 js/ace/mode-json.js                           |    1 +
 js/ace/mode-jsoniq.js                         |    1 +
 js/ace/mode-jsp.js                            |    1 +
 js/ace/mode-jsx.js                            |    1 +
 js/ace/mode-julia.js                          |    1 +
 js/ace/mode-latex.js                          |    1 +
 js/ace/mode-less.js                           |    1 +
 js/ace/mode-liquid.js                         |    1 +
 js/ace/mode-lisp.js                           |    1 +
 js/ace/mode-live_script.js                    |    1 +
 js/ace/mode-livescript.js                     |    1 +
 js/ace/mode-logiql.js                         |    1 +
 js/ace/mode-lsl.js                            |    1 +
 js/ace/mode-lua.js                            |    1 +
 js/ace/mode-luapage.js                        |    1 +
 js/ace/mode-lucene.js                         |    1 +
 js/ace/mode-makefile.js                       |    1 +
 js/ace/mode-markdown.js                       |    1 +
 js/ace/mode-mask.js                           |    1 +
 js/ace/mode-matlab.js                         |    1 +
 js/ace/mode-mel.js                            |    1 +
 js/ace/mode-mushcode.js                       |    1 +
 js/ace/mode-mysql.js                          |    1 +
 js/ace/mode-nix.js                            |    1 +
 js/ace/mode-objectivec.js                     |    1 +
 js/ace/mode-ocaml.js                          |    1 +
 js/ace/mode-pascal.js                         |    1 +
 js/ace/mode-perl.js                           |    1 +
 js/ace/mode-pgsql.js                          |    1 +
 js/ace/mode-php.js                            |    1 +
 js/ace/mode-plain_text.js                     |    1 +
 js/ace/mode-powershell.js                     |    1 +
 js/ace/mode-praat.js                          |    1 +
 js/ace/mode-prolog.js                         |    1 +
 js/ace/mode-properties.js                     |    1 +
 js/ace/mode-protobuf.js                       |    1 +
 js/ace/mode-python.js                         |    1 +
 js/ace/mode-r.js                              |    1 +
 js/ace/mode-rdoc.js                           |    1 +
 js/ace/mode-rhtml.js                          |    1 +
 js/ace/mode-ruby.js                           |    1 +
 js/ace/mode-rust.js                           |    1 +
 js/ace/mode-sass.js                           |    1 +
 js/ace/mode-scad.js                           |    1 +
 js/ace/mode-scala.js                          |    1 +
 js/ace/mode-scheme.js                         |    1 +
 js/ace/mode-scss.js                           |    1 +
 js/ace/mode-sh.js                             |    1 +
 js/ace/mode-sjs.js                            |    1 +
 js/ace/mode-smarty.js                         |    1 +
 js/ace/mode-snippets.js                       |    1 +
 js/ace/mode-soy_template.js                   |    1 +
 js/ace/mode-space.js                          |    1 +
 js/ace/mode-sql.js                            |    1 +
 js/ace/mode-stylus.js                         |    1 +
 js/ace/mode-svg.js                            |    1 +
 js/ace/mode-tcl.js                            |    1 +
 js/ace/mode-tex.js                            |    1 +
 js/ace/mode-text.js                           |    0
 js/ace/mode-textile.js                        |    1 +
 js/ace/mode-toml.js                           |    1 +
 js/ace/mode-twig.js                           |    1 +
 js/ace/mode-typescript.js                     |    1 +
 js/ace/mode-vala.js                           |    1 +
 js/ace/mode-vbscript.js                       |    1 +
 js/ace/mode-velocity.js                       |    1 +
 js/ace/mode-verilog.js                        |    1 +
 js/ace/mode-vhdl.js                           |    1 +
 js/ace/mode-xml.js                            |    1 +
 js/ace/mode-xquery.js                         |    1 +
 js/ace/mode-yaml.js                           |    1 +
 js/ace/snippets/abap.js                       |    1 +
 js/ace/snippets/abc.js                        |    1 +
 js/ace/snippets/actionscript.js               |    1 +
 js/ace/snippets/ada.js                        |    1 +
 js/ace/snippets/apache_conf.js                |    1 +
 js/ace/snippets/applescript.js                |    1 +
 js/ace/snippets/asciidoc.js                   |    1 +
 js/ace/snippets/assembly_x86.js               |    1 +
 js/ace/snippets/autohotkey.js                 |    1 +
 js/ace/snippets/batchfile.js                  |    1 +
 js/ace/snippets/c9search.js                   |    1 +
 js/ace/snippets/c_cpp.js                      |    1 +
 js/ace/snippets/cirru.js                      |    1 +
 js/ace/snippets/clojure.js                    |    1 +
 js/ace/snippets/cobol.js                      |    1 +
 js/ace/snippets/coffee.js                     |    1 +
 js/ace/snippets/coldfusion.js                 |    1 +
 js/ace/snippets/csharp.js                     |    1 +
 js/ace/snippets/css.js                        |    1 +
 js/ace/snippets/curly.js                      |    1 +
 js/ace/snippets/d.js                          |    1 +
 js/ace/snippets/dart.js                       |    1 +
 js/ace/snippets/diff.js                       |    1 +
 js/ace/snippets/django.js                     |    1 +
 js/ace/snippets/dockerfile.js                 |    1 +
 js/ace/snippets/dot.js                        |    1 +
 js/ace/snippets/eiffel.js                     |    1 +
 js/ace/snippets/ejs.js                        |    1 +
 js/ace/snippets/elixir.js                     |    1 +
 js/ace/snippets/elm.js                        |    1 +
 js/ace/snippets/erlang.js                     |    1 +
 js/ace/snippets/forth.js                      |    1 +
 js/ace/snippets/ftl.js                        |    1 +
 js/ace/snippets/gcode.js                      |    1 +
 js/ace/snippets/gherkin.js                    |    1 +
 js/ace/snippets/gitignore.js                  |    1 +
 js/ace/snippets/glsl.js                       |    1 +
 js/ace/snippets/golang.js                     |    1 +
 js/ace/snippets/groovy.js                     |    1 +
 js/ace/snippets/haml.js                       |    1 +
 js/ace/snippets/handlebars.js                 |    1 +
 js/ace/snippets/haskell.js                    |    1 +
 js/ace/snippets/haxe.js                       |    1 +
 js/ace/snippets/html.js                       |    1 +
 js/ace/snippets/html_ruby.js                  |    1 +
 js/ace/snippets/ini.js                        |    1 +
 js/ace/snippets/io.js                         |    1 +
 js/ace/snippets/jack.js                       |    1 +
 js/ace/snippets/jade.js                       |    1 +
 js/ace/snippets/java.js                       |    1 +
 js/ace/snippets/javascript.js                 |    1 +
 js/ace/snippets/json.js                       |    1 +
 js/ace/snippets/jsoniq.js                     |    1 +
 js/ace/snippets/jsp.js                        |    1 +
 js/ace/snippets/jsx.js                        |    1 +
 js/ace/snippets/julia.js                      |    1 +
 js/ace/snippets/latex.js                      |    1 +
 js/ace/snippets/less.js                       |    1 +
 js/ace/snippets/liquid.js                     |    1 +
 js/ace/snippets/lisp.js                       |    1 +
 js/ace/snippets/live_script.js                |    1 +
 js/ace/snippets/livescript.js                 |    1 +
 js/ace/snippets/logiql.js                     |    1 +
 js/ace/snippets/lsl.js                        |    1 +
 js/ace/snippets/lua.js                        |    1 +
 js/ace/snippets/luapage.js                    |    1 +
 js/ace/snippets/lucene.js                     |    1 +
 js/ace/snippets/makefile.js                   |    1 +
 js/ace/snippets/markdown.js                   |    1 +
 js/ace/snippets/mask.js                       |    1 +
 js/ace/snippets/matlab.js                     |    1 +
 js/ace/snippets/mel.js                        |    1 +
 js/ace/snippets/mushcode.js                   |    1 +
 js/ace/snippets/mysql.js                      |    1 +
 js/ace/snippets/nix.js                        |    1 +
 js/ace/snippets/objectivec.js                 |    1 +
 js/ace/snippets/ocaml.js                      |    1 +
 js/ace/snippets/pascal.js                     |    1 +
 js/ace/snippets/perl.js                       |    1 +
 js/ace/snippets/pgsql.js                      |    1 +
 js/ace/snippets/php.js                        |    1 +
 js/ace/snippets/plain_text.js                 |    1 +
 js/ace/snippets/powershell.js                 |    1 +
 js/ace/snippets/praat.js                      |    1 +
 js/ace/snippets/prolog.js                     |    1 +
 js/ace/snippets/properties.js                 |    1 +
 js/ace/snippets/protobuf.js                   |    1 +
 js/ace/snippets/python.js                     |    1 +
 js/ace/snippets/r.js                          |    1 +
 js/ace/snippets/rdoc.js                       |    1 +
 js/ace/snippets/rhtml.js                      |    1 +
 js/ace/snippets/ruby.js                       |    1 +
 js/ace/snippets/rust.js                       |    1 +
 js/ace/snippets/sass.js                       |    1 +
 js/ace/snippets/scad.js                       |    1 +
 js/ace/snippets/scala.js                      |    1 +
 js/ace/snippets/scheme.js                     |    1 +
 js/ace/snippets/scss.js                       |    1 +
 js/ace/snippets/sh.js                         |    1 +
 js/ace/snippets/sjs.js                        |    1 +
 js/ace/snippets/smarty.js                     |    1 +
 js/ace/snippets/snippets.js                   |    1 +
 js/ace/snippets/soy_template.js               |    1 +
 js/ace/snippets/space.js                      |    1 +
 js/ace/snippets/sql.js                        |    1 +
 js/ace/snippets/stylus.js                     |    1 +
 js/ace/snippets/svg.js                        |    1 +
 js/ace/snippets/tcl.js                        |    1 +
 js/ace/snippets/tex.js                        |    1 +
 js/ace/snippets/text.js                       |    1 +
 js/ace/snippets/textile.js                    |    1 +
 js/ace/snippets/toml.js                       |    1 +
 js/ace/snippets/twig.js                       |    1 +
 js/ace/snippets/typescript.js                 |    1 +
 js/ace/snippets/vala.js                       |    1 +
 js/ace/snippets/vbscript.js                   |    1 +
 js/ace/snippets/velocity.js                   |    1 +
 js/ace/snippets/verilog.js                    |    1 +
 js/ace/snippets/vhdl.js                       |    1 +
 js/ace/snippets/xml.js                        |    1 +
 js/ace/snippets/xquery.js                     |    1 +
 js/ace/snippets/yaml.js                       |    1 +
 js/ace/theme-ambiance.js                      |    1 +
 js/ace/theme-chaos.js                         |    1 +
 js/ace/theme-chrome.js                        |    1 +
 js/ace/theme-clouds.js                        |    1 +
 js/ace/theme-clouds_midnight.js               |    1 +
 js/ace/theme-cobalt.js                        |    1 +
 js/ace/theme-crimson_editor.js                |    1 +
 js/ace/theme-dawn.js                          |    1 +
 js/ace/theme-dreamweaver.js                   |    1 +
 js/ace/theme-eclipse.js                       |    1 +
 js/ace/theme-github.js                        |    1 +
 js/ace/theme-idle_fingers.js                  |    1 +
 js/ace/theme-katzenmilch.js                   |    1 +
 js/ace/theme-kr_theme.js                      |    1 +
 js/ace/theme-kuroir.js                        |    1 +
 js/ace/theme-merbivore.js                     |    1 +
 js/ace/theme-merbivore_soft.js                |    1 +
 js/ace/theme-mono_industrial.js               |    1 +
 js/ace/theme-monokai.js                       |    1 +
 js/ace/theme-pastel_on_dark.js                |    1 +
 js/ace/theme-solarized_dark.js                |    1 +
 js/ace/theme-solarized_light.js               |    1 +
 js/ace/theme-terminal.js                      |    1 +
 js/ace/theme-textmate.js                      |    1 +
 js/ace/theme-tomorrow.js                      |    1 +
 js/ace/theme-tomorrow_night.js                |    1 +
 js/ace/theme-tomorrow_night_blue.js           |    1 +
 js/ace/theme-tomorrow_night_bright.js         |    1 +
 js/ace/theme-tomorrow_night_eighties.js       |    1 +
 js/ace/theme-twilight.js                      |    1 +
 js/ace/theme-vibrant_ink.js                   |    1 +
 js/ace/theme-xcode.js                         |    1 +
 js/ace/worker-coffee.js                       |    1 +
 js/ace/worker-css.js                          |    1 +
 js/ace/worker-html.js                         |    1 +
 js/ace/worker-javascript.js                   |    1 +
 js/ace/worker-json.js                         |    1 +
 js/ace/worker-lua.js                          |    1 +
 js/ace/worker-php.js                          |    1 +
 js/ace/worker-xml.js                          |    1 +
 js/ace/worker-xquery.js                       |    1 +
 js/d3.v4.min.js                               |    8 +
 js/element.js                                 |  145 +
 js/graph-creator.js                           |    5 +
 js/languageSettings.js                        |   80 +
 js/lexp.js                                    |  230 ++
 js/nav-expand.js                              |   19 +
 js/options.js                                 |   97 +
 js/populate-selects.js                        |   68 +
 js/resource.js                                |   82 +
 js/selects/basic-options.js                   |   48 +
 js/table/bootstrap-table-locale-all.js        | 1592 ++++++++++
 js/table/bootstrap-table-locale-all.min.js    |    7 +
 js/table/bootstrap-table.css                  |  297 ++
 js/table/bootstrap-table.js                   | 2690 +++++++++++++++++
 js/table/bootstrap-table.min.css              |    1 +
 js/table/bootstrap-table.min.js               |    9 +
 .../bootstrap-table-accent-neutralise.js      |  182 ++
 .../bootstrap-table-accent-neutralise.min.js  |    7 +
 .../angular/bootstrap-table-angular.js        |  105 +
 .../angular/bootstrap-table-angular.min.js    |    7 +
 .../cookie/bootstrap-table-cookie.js          |  331 ++
 .../cookie/bootstrap-table-cookie.min.js      |    7 +
 .../editable/bootstrap-table-editable.js      |  107 +
 .../editable/bootstrap-table-editable.min.js  |    7 +
 .../export/bootstrap-table-export.js          |  105 +
 .../export/bootstrap-table-export.min.js      |    7 +
 .../bootstrap-table-filter-control.js         |  436 +++
 .../bootstrap-table-filter-control.min.js     |    7 +
 .../filter/bootstrap-table-filter.js          |   67 +
 .../filter/bootstrap-table-filter.min.js      |    7 +
 .../flat-json/bootstrap-table-flat-json.js    |   62 +
 .../bootstrap-table-flat-json.min.js          |    7 +
 .../flatJSON/bootstrap-table-flatJSON.min.js  |    7 +
 .../group-by/bootstrap-table-group-by.css     |   53 +
 .../group-by/bootstrap-table-group-by.js      |  243 ++
 .../group-by/bootstrap-table-group-by.min.js  |    7 +
 .../key-events/bootstrap-table-key-events.js  |   80 +
 .../bootstrap-table-key-events.min.js         |    7 +
 .../mobile/bootstrap-table-mobile.js          |  131 +
 .../mobile/bootstrap-table-mobile.min.js      |    7 +
 .../bootstrap-table-multiple-search.js        |   67 +
 .../bootstrap-table-multiple-search.min.js    |    7 +
 .../bootstrap-table-multiple-sort.js          |  378 +++
 .../bootstrap-table-multiple-sort.min.js      |    7 +
 .../bootstrap-table-natural-sorting.js        |   47 +
 .../bootstrap-table-natural-sorting.min.js    |    7 +
 .../bootstrap-table-reorder-columns.js        |  121 +
 .../bootstrap-table-reorder-columns.min.js    |    7 +
 .../bootstrap-table-reorder-rows.css          |   14 +
 .../bootstrap-table-reorder-rows.js           |  115 +
 .../bootstrap-table-reorder-rows.min.js       |    7 +
 .../resizable/bootstrap-table-resizable.js    |   74 +
 .../bootstrap-table-resizable.min.js          |    7 +
 .../bootstrap-table_natural-sorting.min.js    |    7 +
 .../toolbar/bootstrap-table-toolbar.js        |  211 ++
 .../toolbar/bootstrap-table-toolbar.min.js    |    7 +
 js/table/locale/bootstrap-table-af-ZA.js      |   40 +
 js/table/locale/bootstrap-table-af-ZA.min.js  |    7 +
 js/table/locale/bootstrap-table-ar-SA.js      |   40 +
 js/table/locale/bootstrap-table-ar-SA.min.js  |    7 +
 js/table/locale/bootstrap-table-ca-ES.js      |   43 +
 js/table/locale/bootstrap-table-ca-ES.min.js  |    7 +
 js/table/locale/bootstrap-table-cs-CZ.js      |   44 +
 js/table/locale/bootstrap-table-cs-CZ.min.js  |    7 +
 js/table/locale/bootstrap-table-da-DK.js      |   37 +
 js/table/locale/bootstrap-table-da-DK.min.js  |    7 +
 js/table/locale/bootstrap-table-de-DE.js      |   37 +
 js/table/locale/bootstrap-table-de-DE.min.js  |    7 +
 js/table/locale/bootstrap-table-el-GR.js      |   28 +
 js/table/locale/bootstrap-table-el-GR.min.js  |    7 +
 js/table/locale/bootstrap-table-en-US.js      |   43 +
 js/table/locale/bootstrap-table-en-US.min.js  |    7 +
 js/table/locale/bootstrap-table-es-AR.js      |   31 +
 js/table/locale/bootstrap-table-es-AR.min.js  |    7 +
 js/table/locale/bootstrap-table-es-CR.js      |   40 +
 js/table/locale/bootstrap-table-es-CR.min.js  |    7 +
 js/table/locale/bootstrap-table-es-ES.js      |   43 +
 js/table/locale/bootstrap-table-es-ES.min.js  |    7 +
 js/table/locale/bootstrap-table-es-MX.js      |   32 +
 js/table/locale/bootstrap-table-es-MX.min.js  |    7 +
 js/table/locale/bootstrap-table-es-NI.js      |   40 +
 js/table/locale/bootstrap-table-es-NI.min.js  |    7 +
 js/table/locale/bootstrap-table-es-SP.js      |   40 +
 js/table/locale/bootstrap-table-es-SP.min.js  |    7 +
 js/table/locale/bootstrap-table-et-EE.js      |   43 +
 js/table/locale/bootstrap-table-et-EE.min.js  |    7 +
 js/table/locale/bootstrap-table-fa-IR.js      |   43 +
 js/table/locale/bootstrap-table-fa-IR.min.js  |    7 +
 js/table/locale/bootstrap-table-fr-BE.js      |   28 +
 js/table/locale/bootstrap-table-fr-BE.min.js  |    7 +
 js/table/locale/bootstrap-table-fr-FR.js      |   41 +
 js/table/locale/bootstrap-table-fr-FR.min.js  |    7 +
 js/table/locale/bootstrap-table-hr-HR.js      |   44 +
 js/table/locale/bootstrap-table-hr-HR.min.js  |    7 +
 js/table/locale/bootstrap-table-hu-HU.js      |   43 +
 js/table/locale/bootstrap-table-hu-HU.min.js  |    7 +
 js/table/locale/bootstrap-table-it-IT.js      |   38 +
 js/table/locale/bootstrap-table-it-IT.min.js  |    7 +
 js/table/locale/bootstrap-table-ja-JP.js      |   43 +
 js/table/locale/bootstrap-table-ja-JP.min.js  |    7 +
 js/table/locale/bootstrap-table-ka-GE.js      |   40 +
 js/table/locale/bootstrap-table-ka-GE.min.js  |    7 +
 js/table/locale/bootstrap-table-ko-KR.js      |   37 +
 js/table/locale/bootstrap-table-ko-KR.min.js  |    7 +
 js/table/locale/bootstrap-table-ms-MY.js      |   43 +
 js/table/locale/bootstrap-table-ms-MY.min.js  |    7 +
 js/table/locale/bootstrap-table-nb-NO.js      |   37 +
 js/table/locale/bootstrap-table-nb-NO.min.js  |    7 +
 js/table/locale/bootstrap-table-nl-NL.js      |   28 +
 js/table/locale/bootstrap-table-nl-NL.min.js  |    7 +
 js/table/locale/bootstrap-table-pl-PL.js      |   37 +
 js/table/locale/bootstrap-table-pl-PL.min.js  |    7 +
 js/table/locale/bootstrap-table-pt-BR.js      |   41 +
 js/table/locale/bootstrap-table-pt-BR.min.js  |    7 +
 js/table/locale/bootstrap-table-pt-PT.js      |   28 +
 js/table/locale/bootstrap-table-pt-PT.min.js  |    7 +
 js/table/locale/bootstrap-table-ro-RO.js      |   43 +
 js/table/locale/bootstrap-table-ro-RO.min.js  |    7 +
 js/table/locale/bootstrap-table-ru-RU.js      |   36 +
 js/table/locale/bootstrap-table-ru-RU.min.js  |    7 +
 js/table/locale/bootstrap-table-sk-SK.js      |   37 +
 js/table/locale/bootstrap-table-sk-SK.min.js  |    7 +
 js/table/locale/bootstrap-table-sv-SE.js      |   37 +
 js/table/locale/bootstrap-table-sv-SE.min.js  |    7 +
 js/table/locale/bootstrap-table-th-TH.js      |   37 +
 js/table/locale/bootstrap-table-th-TH.min.js  |    7 +
 js/table/locale/bootstrap-table-tr-TR.js      |   41 +
 js/table/locale/bootstrap-table-tr-TR.min.js  |    7 +
 js/table/locale/bootstrap-table-uk-UA.js      |   37 +
 js/table/locale/bootstrap-table-uk-UA.min.js  |    7 +
 js/table/locale/bootstrap-table-ur-PK.js      |   37 +
 js/table/locale/bootstrap-table-ur-PK.min.js  |    7 +
 js/table/locale/bootstrap-table-vi-VN.js      |   28 +
 js/table/locale/bootstrap-table-vi-VN.min.js  |    7 +
 js/table/locale/bootstrap-table-zh-CN.js      |   40 +
 js/table/locale/bootstrap-table-zh-CN.min.js  |    7 +
 js/table/locale/bootstrap-table-zh-TW.js      |   40 +
 js/table/locale/bootstrap-table-zh-TW.min.js  |    7 +
 morfeusz/morfeusz.css                         |   73 +
 morfeusz/morfeusz.js                          |  854 ++++++
 omwn/omwn.js                                  |   83 +
 plwordnet/lang-pl-32.png                      |  Bin 0 -> 815 bytes
 plwordnet/plwordnet.css                       |  235 ++
 plwordnet/plwordnet.js                        |  676 +++++
 spxvi/css/haslo.css                           |  294 ++
 spxvi/css/tipsy.css                           |   25 +
 spxvi/fonts/PalemMUFI-bd.ttf                  |  Bin 0 -> 424180 bytes
 spxvi/fonts/PalemMUFI-it.ttf                  |  Bin 0 -> 961396 bytes
 spxvi/fonts/PalemMUFI-nm.ttf                  |  Bin 0 -> 857832 bytes
 spxvi/img/icons/page_white_text.png           |  Bin 0 -> 342 bytes
 spxvi/img/icons/table.png                     |  Bin 0 -> 566 bytes
 spxvi/js/spxvi.js                             |   74 +
 spxvii/img/kolo.gif                           |  Bin 0 -> 73 bytes
 spxvii/img/romb.gif                           |  Bin 0 -> 75 bytes
 spxvii/img/trojkat.gif                        |  Bin 0 -> 96 bytes
 spxvii/spxvii.css                             | 1997 ++++++++++++
 spxvii/spxvii.js                              |   41 +
 walenty/walenty.css                           |   58 +
 walenty/walenty.js                            |  318 ++
 word2vec/jqcloud-1.0.4.js                     |  235 ++
 word2vec/jqcloud.css                          |   49 +
 word2vec/jqcloud.js                           |  548 ++++
 word2vec/jqcloud.min.css                      |    1 +
 word2vec/jqcloud.min.js                       |    8 +
 word2vec/word2vec.js                          |   84 +
 507 files changed, 18748 insertions(+)
 create mode 100644 .htaccess
 create mode 100644 Dockerfile
 create mode 100644 apache2.conf
 create mode 100644 css/graph-creator.css
 create mode 100644 css/languages.css
 create mode 100644 css/modal.css
 create mode 100644 css/nav.css
 create mode 100644 css/selectmenu-nav.css
 create mode 100644 css/style.css
 create mode 100644 eswil/eswil.js
 create mode 100644 hask/hask.html
 create mode 100644 hask/hask.js
 create mode 100644 hask/hasklist.html
 create mode 100644 httpd.conf
 create mode 100644 img/ajax-loader.gif
 create mode 100644 img/check.png
 create mode 100644 img/favicon.ico
 create mode 100644 img/icons.gif
 create mode 100644 img/lang-en-32.png
 create mode 100644 img/lang-pl-32.png
 create mode 100644 img/loading.gif
 create mode 100644 img/logo-small.png
 create mode 100644 img/progressbar.gif
 create mode 100644 img/services-logo/eswil.png
 create mode 100644 img/services-logo/hask.png
 create mode 100644 img/services-logo/morfeusz.png
 create mode 100644 img/services-logo/omwn.png
 create mode 100644 img/services-logo/plwordnet.png
 create mode 100644 img/services-logo/spxvi.png
 create mode 100644 img/services-logo/spxvii.png
 create mode 100644 img/services-logo/walenty.png
 create mode 100644 img/services-logo/word2vec.png
 create mode 100644 index.shtml
 create mode 100644 js/about-app-modal.js
 create mode 100644 js/about-us-modal.js
 create mode 100644 js/ace/ace.js
 create mode 100644 js/ace/ext-beautify.js
 create mode 100644 js/ace/ext-chromevox.js
 create mode 100644 js/ace/ext-elastic_tabstops_lite.js
 create mode 100644 js/ace/ext-emmet.js
 create mode 100644 js/ace/ext-error_marker.js
 create mode 100644 js/ace/ext-keybinding_menu.js
 create mode 100644 js/ace/ext-language_tools.js
 create mode 100644 js/ace/ext-linking.js
 create mode 100644 js/ace/ext-modelist.js
 create mode 100644 js/ace/ext-old_ie.js
 create mode 100644 js/ace/ext-searchbox.js
 create mode 100644 js/ace/ext-settings_menu.js
 create mode 100644 js/ace/ext-spellcheck.js
 create mode 100644 js/ace/ext-split.js
 create mode 100644 js/ace/ext-static_highlight.js
 create mode 100644 js/ace/ext-statusbar.js
 create mode 100644 js/ace/ext-textarea.js
 create mode 100644 js/ace/ext-themelist.js
 create mode 100644 js/ace/ext-whitespace.js
 create mode 100644 js/ace/keybinding-emacs.js
 create mode 100644 js/ace/keybinding-vim.js
 create mode 100644 js/ace/mode-abap.js
 create mode 100644 js/ace/mode-abc.js
 create mode 100644 js/ace/mode-actionscript.js
 create mode 100644 js/ace/mode-ada.js
 create mode 100644 js/ace/mode-apache_conf.js
 create mode 100644 js/ace/mode-applescript.js
 create mode 100644 js/ace/mode-asciidoc.js
 create mode 100644 js/ace/mode-assembly_x86.js
 create mode 100644 js/ace/mode-autohotkey.js
 create mode 100644 js/ace/mode-batchfile.js
 create mode 100644 js/ace/mode-c9search.js
 create mode 100644 js/ace/mode-c_cpp.js
 create mode 100644 js/ace/mode-cirru.js
 create mode 100644 js/ace/mode-clojure.js
 create mode 100644 js/ace/mode-cobol.js
 create mode 100644 js/ace/mode-coffee.js
 create mode 100644 js/ace/mode-coldfusion.js
 create mode 100644 js/ace/mode-csharp.js
 create mode 100644 js/ace/mode-css.js
 create mode 100644 js/ace/mode-curly.js
 create mode 100644 js/ace/mode-d.js
 create mode 100644 js/ace/mode-dart.js
 create mode 100644 js/ace/mode-diff.js
 create mode 100644 js/ace/mode-django.js
 create mode 100644 js/ace/mode-dockerfile.js
 create mode 100644 js/ace/mode-dot.js
 create mode 100644 js/ace/mode-eiffel.js
 create mode 100644 js/ace/mode-ejs.js
 create mode 100644 js/ace/mode-elixir.js
 create mode 100644 js/ace/mode-elm.js
 create mode 100644 js/ace/mode-erlang.js
 create mode 100644 js/ace/mode-forth.js
 create mode 100644 js/ace/mode-ftl.js
 create mode 100644 js/ace/mode-gcode.js
 create mode 100644 js/ace/mode-gherkin.js
 create mode 100644 js/ace/mode-gitignore.js
 create mode 100644 js/ace/mode-glsl.js
 create mode 100644 js/ace/mode-golang.js
 create mode 100644 js/ace/mode-groovy.js
 create mode 100644 js/ace/mode-haml.js
 create mode 100644 js/ace/mode-handlebars.js
 create mode 100644 js/ace/mode-haskell.js
 create mode 100644 js/ace/mode-haxe.js
 create mode 100644 js/ace/mode-html.js
 create mode 100644 js/ace/mode-html_ruby.js
 create mode 100644 js/ace/mode-ini.js
 create mode 100644 js/ace/mode-io.js
 create mode 100644 js/ace/mode-jack.js
 create mode 100644 js/ace/mode-jade.js
 create mode 100644 js/ace/mode-java.js
 create mode 100644 js/ace/mode-javascript.js
 create mode 100644 js/ace/mode-json.js
 create mode 100644 js/ace/mode-jsoniq.js
 create mode 100644 js/ace/mode-jsp.js
 create mode 100644 js/ace/mode-jsx.js
 create mode 100644 js/ace/mode-julia.js
 create mode 100644 js/ace/mode-latex.js
 create mode 100644 js/ace/mode-less.js
 create mode 100644 js/ace/mode-liquid.js
 create mode 100644 js/ace/mode-lisp.js
 create mode 100644 js/ace/mode-live_script.js
 create mode 100644 js/ace/mode-livescript.js
 create mode 100644 js/ace/mode-logiql.js
 create mode 100644 js/ace/mode-lsl.js
 create mode 100644 js/ace/mode-lua.js
 create mode 100644 js/ace/mode-luapage.js
 create mode 100644 js/ace/mode-lucene.js
 create mode 100644 js/ace/mode-makefile.js
 create mode 100644 js/ace/mode-markdown.js
 create mode 100644 js/ace/mode-mask.js
 create mode 100644 js/ace/mode-matlab.js
 create mode 100644 js/ace/mode-mel.js
 create mode 100644 js/ace/mode-mushcode.js
 create mode 100644 js/ace/mode-mysql.js
 create mode 100644 js/ace/mode-nix.js
 create mode 100644 js/ace/mode-objectivec.js
 create mode 100644 js/ace/mode-ocaml.js
 create mode 100644 js/ace/mode-pascal.js
 create mode 100644 js/ace/mode-perl.js
 create mode 100644 js/ace/mode-pgsql.js
 create mode 100644 js/ace/mode-php.js
 create mode 100644 js/ace/mode-plain_text.js
 create mode 100644 js/ace/mode-powershell.js
 create mode 100644 js/ace/mode-praat.js
 create mode 100644 js/ace/mode-prolog.js
 create mode 100644 js/ace/mode-properties.js
 create mode 100644 js/ace/mode-protobuf.js
 create mode 100644 js/ace/mode-python.js
 create mode 100644 js/ace/mode-r.js
 create mode 100644 js/ace/mode-rdoc.js
 create mode 100644 js/ace/mode-rhtml.js
 create mode 100644 js/ace/mode-ruby.js
 create mode 100644 js/ace/mode-rust.js
 create mode 100644 js/ace/mode-sass.js
 create mode 100644 js/ace/mode-scad.js
 create mode 100644 js/ace/mode-scala.js
 create mode 100644 js/ace/mode-scheme.js
 create mode 100644 js/ace/mode-scss.js
 create mode 100644 js/ace/mode-sh.js
 create mode 100644 js/ace/mode-sjs.js
 create mode 100644 js/ace/mode-smarty.js
 create mode 100644 js/ace/mode-snippets.js
 create mode 100644 js/ace/mode-soy_template.js
 create mode 100644 js/ace/mode-space.js
 create mode 100644 js/ace/mode-sql.js
 create mode 100644 js/ace/mode-stylus.js
 create mode 100644 js/ace/mode-svg.js
 create mode 100644 js/ace/mode-tcl.js
 create mode 100644 js/ace/mode-tex.js
 create mode 100644 js/ace/mode-text.js
 create mode 100644 js/ace/mode-textile.js
 create mode 100644 js/ace/mode-toml.js
 create mode 100644 js/ace/mode-twig.js
 create mode 100644 js/ace/mode-typescript.js
 create mode 100644 js/ace/mode-vala.js
 create mode 100644 js/ace/mode-vbscript.js
 create mode 100644 js/ace/mode-velocity.js
 create mode 100644 js/ace/mode-verilog.js
 create mode 100644 js/ace/mode-vhdl.js
 create mode 100644 js/ace/mode-xml.js
 create mode 100644 js/ace/mode-xquery.js
 create mode 100644 js/ace/mode-yaml.js
 create mode 100644 js/ace/snippets/abap.js
 create mode 100644 js/ace/snippets/abc.js
 create mode 100644 js/ace/snippets/actionscript.js
 create mode 100644 js/ace/snippets/ada.js
 create mode 100644 js/ace/snippets/apache_conf.js
 create mode 100644 js/ace/snippets/applescript.js
 create mode 100644 js/ace/snippets/asciidoc.js
 create mode 100644 js/ace/snippets/assembly_x86.js
 create mode 100644 js/ace/snippets/autohotkey.js
 create mode 100644 js/ace/snippets/batchfile.js
 create mode 100644 js/ace/snippets/c9search.js
 create mode 100644 js/ace/snippets/c_cpp.js
 create mode 100644 js/ace/snippets/cirru.js
 create mode 100644 js/ace/snippets/clojure.js
 create mode 100644 js/ace/snippets/cobol.js
 create mode 100644 js/ace/snippets/coffee.js
 create mode 100644 js/ace/snippets/coldfusion.js
 create mode 100644 js/ace/snippets/csharp.js
 create mode 100644 js/ace/snippets/css.js
 create mode 100644 js/ace/snippets/curly.js
 create mode 100644 js/ace/snippets/d.js
 create mode 100644 js/ace/snippets/dart.js
 create mode 100644 js/ace/snippets/diff.js
 create mode 100644 js/ace/snippets/django.js
 create mode 100644 js/ace/snippets/dockerfile.js
 create mode 100644 js/ace/snippets/dot.js
 create mode 100644 js/ace/snippets/eiffel.js
 create mode 100644 js/ace/snippets/ejs.js
 create mode 100644 js/ace/snippets/elixir.js
 create mode 100644 js/ace/snippets/elm.js
 create mode 100644 js/ace/snippets/erlang.js
 create mode 100644 js/ace/snippets/forth.js
 create mode 100644 js/ace/snippets/ftl.js
 create mode 100644 js/ace/snippets/gcode.js
 create mode 100644 js/ace/snippets/gherkin.js
 create mode 100644 js/ace/snippets/gitignore.js
 create mode 100644 js/ace/snippets/glsl.js
 create mode 100644 js/ace/snippets/golang.js
 create mode 100644 js/ace/snippets/groovy.js
 create mode 100644 js/ace/snippets/haml.js
 create mode 100644 js/ace/snippets/handlebars.js
 create mode 100644 js/ace/snippets/haskell.js
 create mode 100644 js/ace/snippets/haxe.js
 create mode 100644 js/ace/snippets/html.js
 create mode 100644 js/ace/snippets/html_ruby.js
 create mode 100644 js/ace/snippets/ini.js
 create mode 100644 js/ace/snippets/io.js
 create mode 100644 js/ace/snippets/jack.js
 create mode 100644 js/ace/snippets/jade.js
 create mode 100644 js/ace/snippets/java.js
 create mode 100644 js/ace/snippets/javascript.js
 create mode 100644 js/ace/snippets/json.js
 create mode 100644 js/ace/snippets/jsoniq.js
 create mode 100644 js/ace/snippets/jsp.js
 create mode 100644 js/ace/snippets/jsx.js
 create mode 100644 js/ace/snippets/julia.js
 create mode 100644 js/ace/snippets/latex.js
 create mode 100644 js/ace/snippets/less.js
 create mode 100644 js/ace/snippets/liquid.js
 create mode 100644 js/ace/snippets/lisp.js
 create mode 100644 js/ace/snippets/live_script.js
 create mode 100644 js/ace/snippets/livescript.js
 create mode 100644 js/ace/snippets/logiql.js
 create mode 100644 js/ace/snippets/lsl.js
 create mode 100644 js/ace/snippets/lua.js
 create mode 100644 js/ace/snippets/luapage.js
 create mode 100644 js/ace/snippets/lucene.js
 create mode 100644 js/ace/snippets/makefile.js
 create mode 100644 js/ace/snippets/markdown.js
 create mode 100644 js/ace/snippets/mask.js
 create mode 100644 js/ace/snippets/matlab.js
 create mode 100644 js/ace/snippets/mel.js
 create mode 100644 js/ace/snippets/mushcode.js
 create mode 100644 js/ace/snippets/mysql.js
 create mode 100644 js/ace/snippets/nix.js
 create mode 100644 js/ace/snippets/objectivec.js
 create mode 100644 js/ace/snippets/ocaml.js
 create mode 100644 js/ace/snippets/pascal.js
 create mode 100644 js/ace/snippets/perl.js
 create mode 100644 js/ace/snippets/pgsql.js
 create mode 100644 js/ace/snippets/php.js
 create mode 100644 js/ace/snippets/plain_text.js
 create mode 100644 js/ace/snippets/powershell.js
 create mode 100644 js/ace/snippets/praat.js
 create mode 100644 js/ace/snippets/prolog.js
 create mode 100644 js/ace/snippets/properties.js
 create mode 100644 js/ace/snippets/protobuf.js
 create mode 100644 js/ace/snippets/python.js
 create mode 100644 js/ace/snippets/r.js
 create mode 100644 js/ace/snippets/rdoc.js
 create mode 100644 js/ace/snippets/rhtml.js
 create mode 100644 js/ace/snippets/ruby.js
 create mode 100644 js/ace/snippets/rust.js
 create mode 100644 js/ace/snippets/sass.js
 create mode 100644 js/ace/snippets/scad.js
 create mode 100644 js/ace/snippets/scala.js
 create mode 100644 js/ace/snippets/scheme.js
 create mode 100644 js/ace/snippets/scss.js
 create mode 100644 js/ace/snippets/sh.js
 create mode 100644 js/ace/snippets/sjs.js
 create mode 100644 js/ace/snippets/smarty.js
 create mode 100644 js/ace/snippets/snippets.js
 create mode 100644 js/ace/snippets/soy_template.js
 create mode 100644 js/ace/snippets/space.js
 create mode 100644 js/ace/snippets/sql.js
 create mode 100644 js/ace/snippets/stylus.js
 create mode 100644 js/ace/snippets/svg.js
 create mode 100644 js/ace/snippets/tcl.js
 create mode 100644 js/ace/snippets/tex.js
 create mode 100644 js/ace/snippets/text.js
 create mode 100644 js/ace/snippets/textile.js
 create mode 100644 js/ace/snippets/toml.js
 create mode 100644 js/ace/snippets/twig.js
 create mode 100644 js/ace/snippets/typescript.js
 create mode 100644 js/ace/snippets/vala.js
 create mode 100644 js/ace/snippets/vbscript.js
 create mode 100644 js/ace/snippets/velocity.js
 create mode 100644 js/ace/snippets/verilog.js
 create mode 100644 js/ace/snippets/vhdl.js
 create mode 100644 js/ace/snippets/xml.js
 create mode 100644 js/ace/snippets/xquery.js
 create mode 100644 js/ace/snippets/yaml.js
 create mode 100644 js/ace/theme-ambiance.js
 create mode 100644 js/ace/theme-chaos.js
 create mode 100644 js/ace/theme-chrome.js
 create mode 100644 js/ace/theme-clouds.js
 create mode 100644 js/ace/theme-clouds_midnight.js
 create mode 100644 js/ace/theme-cobalt.js
 create mode 100644 js/ace/theme-crimson_editor.js
 create mode 100644 js/ace/theme-dawn.js
 create mode 100644 js/ace/theme-dreamweaver.js
 create mode 100644 js/ace/theme-eclipse.js
 create mode 100644 js/ace/theme-github.js
 create mode 100644 js/ace/theme-idle_fingers.js
 create mode 100644 js/ace/theme-katzenmilch.js
 create mode 100644 js/ace/theme-kr_theme.js
 create mode 100644 js/ace/theme-kuroir.js
 create mode 100644 js/ace/theme-merbivore.js
 create mode 100644 js/ace/theme-merbivore_soft.js
 create mode 100644 js/ace/theme-mono_industrial.js
 create mode 100644 js/ace/theme-monokai.js
 create mode 100644 js/ace/theme-pastel_on_dark.js
 create mode 100644 js/ace/theme-solarized_dark.js
 create mode 100644 js/ace/theme-solarized_light.js
 create mode 100644 js/ace/theme-terminal.js
 create mode 100644 js/ace/theme-textmate.js
 create mode 100644 js/ace/theme-tomorrow.js
 create mode 100644 js/ace/theme-tomorrow_night.js
 create mode 100644 js/ace/theme-tomorrow_night_blue.js
 create mode 100644 js/ace/theme-tomorrow_night_bright.js
 create mode 100644 js/ace/theme-tomorrow_night_eighties.js
 create mode 100644 js/ace/theme-twilight.js
 create mode 100644 js/ace/theme-vibrant_ink.js
 create mode 100644 js/ace/theme-xcode.js
 create mode 100644 js/ace/worker-coffee.js
 create mode 100644 js/ace/worker-css.js
 create mode 100644 js/ace/worker-html.js
 create mode 100644 js/ace/worker-javascript.js
 create mode 100644 js/ace/worker-json.js
 create mode 100644 js/ace/worker-lua.js
 create mode 100644 js/ace/worker-php.js
 create mode 100644 js/ace/worker-xml.js
 create mode 100644 js/ace/worker-xquery.js
 create mode 100644 js/d3.v4.min.js
 create mode 100644 js/element.js
 create mode 100644 js/graph-creator.js
 create mode 100644 js/languageSettings.js
 create mode 100644 js/lexp.js
 create mode 100644 js/nav-expand.js
 create mode 100644 js/options.js
 create mode 100644 js/populate-selects.js
 create mode 100644 js/resource.js
 create mode 100644 js/selects/basic-options.js
 create mode 100644 js/table/bootstrap-table-locale-all.js
 create mode 100644 js/table/bootstrap-table-locale-all.min.js
 create mode 100644 js/table/bootstrap-table.css
 create mode 100644 js/table/bootstrap-table.js
 create mode 100644 js/table/bootstrap-table.min.css
 create mode 100644 js/table/bootstrap-table.min.js
 create mode 100644 js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js
 create mode 100644 js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js
 create mode 100644 js/table/extensions/angular/bootstrap-table-angular.js
 create mode 100644 js/table/extensions/angular/bootstrap-table-angular.min.js
 create mode 100644 js/table/extensions/cookie/bootstrap-table-cookie.js
 create mode 100644 js/table/extensions/cookie/bootstrap-table-cookie.min.js
 create mode 100644 js/table/extensions/editable/bootstrap-table-editable.js
 create mode 100644 js/table/extensions/editable/bootstrap-table-editable.min.js
 create mode 100644 js/table/extensions/export/bootstrap-table-export.js
 create mode 100644 js/table/extensions/export/bootstrap-table-export.min.js
 create mode 100644 js/table/extensions/filter-control/bootstrap-table-filter-control.js
 create mode 100644 js/table/extensions/filter-control/bootstrap-table-filter-control.min.js
 create mode 100644 js/table/extensions/filter/bootstrap-table-filter.js
 create mode 100644 js/table/extensions/filter/bootstrap-table-filter.min.js
 create mode 100644 js/table/extensions/flat-json/bootstrap-table-flat-json.js
 create mode 100644 js/table/extensions/flat-json/bootstrap-table-flat-json.min.js
 create mode 100644 js/table/extensions/flatJSON/bootstrap-table-flatJSON.min.js
 create mode 100644 js/table/extensions/group-by/bootstrap-table-group-by.css
 create mode 100644 js/table/extensions/group-by/bootstrap-table-group-by.js
 create mode 100644 js/table/extensions/group-by/bootstrap-table-group-by.min.js
 create mode 100644 js/table/extensions/key-events/bootstrap-table-key-events.js
 create mode 100644 js/table/extensions/key-events/bootstrap-table-key-events.min.js
 create mode 100644 js/table/extensions/mobile/bootstrap-table-mobile.js
 create mode 100644 js/table/extensions/mobile/bootstrap-table-mobile.min.js
 create mode 100644 js/table/extensions/multiple-search/bootstrap-table-multiple-search.js
 create mode 100644 js/table/extensions/multiple-search/bootstrap-table-multiple-search.min.js
 create mode 100644 js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.js
 create mode 100644 js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
 create mode 100644 js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.js
 create mode 100644 js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js
 create mode 100644 js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.js
 create mode 100644 js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js
 create mode 100644 js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.css
 create mode 100644 js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.js
 create mode 100644 js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js
 create mode 100644 js/table/extensions/resizable/bootstrap-table-resizable.js
 create mode 100644 js/table/extensions/resizable/bootstrap-table-resizable.min.js
 create mode 100644 js/table/extensions/sorting/bootstrap-table_natural-sorting.min.js
 create mode 100644 js/table/extensions/toolbar/bootstrap-table-toolbar.js
 create mode 100644 js/table/extensions/toolbar/bootstrap-table-toolbar.min.js
 create mode 100644 js/table/locale/bootstrap-table-af-ZA.js
 create mode 100644 js/table/locale/bootstrap-table-af-ZA.min.js
 create mode 100644 js/table/locale/bootstrap-table-ar-SA.js
 create mode 100644 js/table/locale/bootstrap-table-ar-SA.min.js
 create mode 100644 js/table/locale/bootstrap-table-ca-ES.js
 create mode 100644 js/table/locale/bootstrap-table-ca-ES.min.js
 create mode 100644 js/table/locale/bootstrap-table-cs-CZ.js
 create mode 100644 js/table/locale/bootstrap-table-cs-CZ.min.js
 create mode 100644 js/table/locale/bootstrap-table-da-DK.js
 create mode 100644 js/table/locale/bootstrap-table-da-DK.min.js
 create mode 100644 js/table/locale/bootstrap-table-de-DE.js
 create mode 100644 js/table/locale/bootstrap-table-de-DE.min.js
 create mode 100644 js/table/locale/bootstrap-table-el-GR.js
 create mode 100644 js/table/locale/bootstrap-table-el-GR.min.js
 create mode 100644 js/table/locale/bootstrap-table-en-US.js
 create mode 100644 js/table/locale/bootstrap-table-en-US.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-AR.js
 create mode 100644 js/table/locale/bootstrap-table-es-AR.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-CR.js
 create mode 100644 js/table/locale/bootstrap-table-es-CR.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-ES.js
 create mode 100644 js/table/locale/bootstrap-table-es-ES.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-MX.js
 create mode 100644 js/table/locale/bootstrap-table-es-MX.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-NI.js
 create mode 100644 js/table/locale/bootstrap-table-es-NI.min.js
 create mode 100644 js/table/locale/bootstrap-table-es-SP.js
 create mode 100644 js/table/locale/bootstrap-table-es-SP.min.js
 create mode 100644 js/table/locale/bootstrap-table-et-EE.js
 create mode 100644 js/table/locale/bootstrap-table-et-EE.min.js
 create mode 100644 js/table/locale/bootstrap-table-fa-IR.js
 create mode 100644 js/table/locale/bootstrap-table-fa-IR.min.js
 create mode 100644 js/table/locale/bootstrap-table-fr-BE.js
 create mode 100644 js/table/locale/bootstrap-table-fr-BE.min.js
 create mode 100644 js/table/locale/bootstrap-table-fr-FR.js
 create mode 100644 js/table/locale/bootstrap-table-fr-FR.min.js
 create mode 100644 js/table/locale/bootstrap-table-hr-HR.js
 create mode 100644 js/table/locale/bootstrap-table-hr-HR.min.js
 create mode 100644 js/table/locale/bootstrap-table-hu-HU.js
 create mode 100644 js/table/locale/bootstrap-table-hu-HU.min.js
 create mode 100644 js/table/locale/bootstrap-table-it-IT.js
 create mode 100644 js/table/locale/bootstrap-table-it-IT.min.js
 create mode 100644 js/table/locale/bootstrap-table-ja-JP.js
 create mode 100644 js/table/locale/bootstrap-table-ja-JP.min.js
 create mode 100644 js/table/locale/bootstrap-table-ka-GE.js
 create mode 100644 js/table/locale/bootstrap-table-ka-GE.min.js
 create mode 100644 js/table/locale/bootstrap-table-ko-KR.js
 create mode 100644 js/table/locale/bootstrap-table-ko-KR.min.js
 create mode 100644 js/table/locale/bootstrap-table-ms-MY.js
 create mode 100644 js/table/locale/bootstrap-table-ms-MY.min.js
 create mode 100644 js/table/locale/bootstrap-table-nb-NO.js
 create mode 100644 js/table/locale/bootstrap-table-nb-NO.min.js
 create mode 100644 js/table/locale/bootstrap-table-nl-NL.js
 create mode 100644 js/table/locale/bootstrap-table-nl-NL.min.js
 create mode 100644 js/table/locale/bootstrap-table-pl-PL.js
 create mode 100644 js/table/locale/bootstrap-table-pl-PL.min.js
 create mode 100644 js/table/locale/bootstrap-table-pt-BR.js
 create mode 100644 js/table/locale/bootstrap-table-pt-BR.min.js
 create mode 100644 js/table/locale/bootstrap-table-pt-PT.js
 create mode 100644 js/table/locale/bootstrap-table-pt-PT.min.js
 create mode 100644 js/table/locale/bootstrap-table-ro-RO.js
 create mode 100644 js/table/locale/bootstrap-table-ro-RO.min.js
 create mode 100644 js/table/locale/bootstrap-table-ru-RU.js
 create mode 100644 js/table/locale/bootstrap-table-ru-RU.min.js
 create mode 100644 js/table/locale/bootstrap-table-sk-SK.js
 create mode 100644 js/table/locale/bootstrap-table-sk-SK.min.js
 create mode 100644 js/table/locale/bootstrap-table-sv-SE.js
 create mode 100644 js/table/locale/bootstrap-table-sv-SE.min.js
 create mode 100644 js/table/locale/bootstrap-table-th-TH.js
 create mode 100644 js/table/locale/bootstrap-table-th-TH.min.js
 create mode 100644 js/table/locale/bootstrap-table-tr-TR.js
 create mode 100644 js/table/locale/bootstrap-table-tr-TR.min.js
 create mode 100644 js/table/locale/bootstrap-table-uk-UA.js
 create mode 100644 js/table/locale/bootstrap-table-uk-UA.min.js
 create mode 100644 js/table/locale/bootstrap-table-ur-PK.js
 create mode 100644 js/table/locale/bootstrap-table-ur-PK.min.js
 create mode 100644 js/table/locale/bootstrap-table-vi-VN.js
 create mode 100644 js/table/locale/bootstrap-table-vi-VN.min.js
 create mode 100644 js/table/locale/bootstrap-table-zh-CN.js
 create mode 100644 js/table/locale/bootstrap-table-zh-CN.min.js
 create mode 100644 js/table/locale/bootstrap-table-zh-TW.js
 create mode 100644 js/table/locale/bootstrap-table-zh-TW.min.js
 create mode 100644 morfeusz/morfeusz.css
 create mode 100644 morfeusz/morfeusz.js
 create mode 100644 omwn/omwn.js
 create mode 100644 plwordnet/lang-pl-32.png
 create mode 100644 plwordnet/plwordnet.css
 create mode 100644 plwordnet/plwordnet.js
 create mode 100644 spxvi/css/haslo.css
 create mode 100644 spxvi/css/tipsy.css
 create mode 100644 spxvi/fonts/PalemMUFI-bd.ttf
 create mode 100644 spxvi/fonts/PalemMUFI-it.ttf
 create mode 100644 spxvi/fonts/PalemMUFI-nm.ttf
 create mode 100644 spxvi/img/icons/page_white_text.png
 create mode 100644 spxvi/img/icons/table.png
 create mode 100644 spxvi/js/spxvi.js
 create mode 100644 spxvii/img/kolo.gif
 create mode 100644 spxvii/img/romb.gif
 create mode 100644 spxvii/img/trojkat.gif
 create mode 100644 spxvii/spxvii.css
 create mode 100644 spxvii/spxvii.js
 create mode 100644 walenty/walenty.css
 create mode 100644 walenty/walenty.js
 create mode 100644 word2vec/jqcloud-1.0.4.js
 create mode 100644 word2vec/jqcloud.css
 create mode 100644 word2vec/jqcloud.js
 create mode 100644 word2vec/jqcloud.min.css
 create mode 100644 word2vec/jqcloud.min.js
 create mode 100644 word2vec/word2vec.js

diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..b9189a8
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,8 @@
+<IfModule mod_rewrite.c>
+  RewriteEngine On
+  RewriteBase /
+  RewriteRule ^index\.shtml$ - [L]
+  RewriteCond %{REQUEST_FILENAME} !-f
+  RewriteCond %{REQUEST_FILENAME} !-d
+  RewriteRule . /index.shtml [L]
+</IfModule>
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..e3999b0
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+FROM httpd:2.4-alpine
+
+ADD *.conf /usr/local/apache2/conf/
+#ADD css /usr/local/apache2/htdocs/css
+ADD css /usr/local/apache2/htdocs/css
+ADD eswil /usr/local/apache2/htdocs/eswil
+ADD hask /usr/local/apache2/htdocs/hask
+ADD img /usr/local/apache2/htdocs/img
+ADD js /usr/local/apache2/htdocs/js
+ADD morfeusz /usr/local/apache2/htdocs/morfeusz
+ADD omwn /usr/local/apache2/htdocs/omwn
+ADD plwordnet /usr/local/apache2/htdocs/plwordnet
+ADD spxvi /usr/local/apache2/htdocs/spxvi
+ADD spxvii /usr/local/apache2/htdocs/spxvii
+ADD walenty /usr/local/apache2/htdocs/walenty
+ADD word2vec /usr/local/apache2/htdocs/word2vec
+
+ADD *.shtml  /usr/local/apache2/htdocs/
+ADD .htaccess /usr/local/apache2/htdocs/
+
+
+
diff --git a/apache2.conf b/apache2.conf
new file mode 100644
index 0000000..baf6d8a
--- /dev/null
+++ b/apache2.conf
@@ -0,0 +1,221 @@
+# This is the main Apache server configuration file.  It contains the
+# configuration directives that give the server its instructions.
+# See http://httpd.apache.org/docs/2.4/ for detailed information about
+# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
+# hints.
+#
+#
+# Summary of how the Apache 2 configuration works in Debian:
+# The Apache 2 web server configuration in Debian is quite different to
+# upstream's suggested way to configure the web server. This is because Debian's
+# default Apache2 installation attempts to make adding and removing modules,
+# virtual hosts, and extra configuration directives as flexible as possible, in
+# order to make automating the changes and administering the server as easy as
+# possible.
+
+# It is split into several files forming the configuration hierarchy outlined
+# below, all located in the /etc/apache2/ directory:
+#
+#	/etc/apache2/
+#	|-- apache2.conf
+#	|	`--  ports.conf
+#	|-- mods-enabled
+#	|	|-- *.load
+#	|	`-- *.conf
+#	|-- conf-enabled
+#	|	`-- *.conf
+# 	`-- sites-enabled
+#	 	`-- *.conf
+#
+#
+# * apache2.conf is the main configuration file (this file). It puts the pieces
+#   together by including all remaining configuration files when starting up the
+#   web server.
+#
+# * ports.conf is always included from the main configuration file. It is
+#   supposed to determine listening ports for incoming connections which can be
+#   customized anytime.
+#
+# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
+#   directories contain particular configuration snippets which manage modules,
+#   global configuration fragments, or virtual host configurations,
+#   respectively.
+#
+#   They are activated by symlinking available configuration files from their
+#   respective *-available/ counterparts. These should be managed by using our
+#   helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
+#   their respective man pages for detailed information.
+#
+# * The binary is called apache2. Due to the use of environment variables, in
+#   the default configuration, apache2 needs to be started/stopped with
+#   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
+#   work with the default configuration.
+
+
+# Global configuration
+#
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# NOTE!  If you intend to place this on an NFS (or otherwise network)
+# mounted filesystem then please read the Mutex documentation (available
+# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
+# you will save yourself a lot of trouble.
+#
+# Do NOT add a slash at the end of the directory path.
+#
+#ServerRoot "/etc/apache2"
+
+#
+# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
+#
+Mutex file:${APACHE_LOCK_DIR} default
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts.
+# This needs to be set in /etc/apache2/envvars
+#
+PidFile ${APACHE_PID_FILE}
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 300
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive On
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 5
+
+
+# These need to be set in /etc/apache2/envvars
+User ${APACHE_RUN_USER}
+Group ${APACHE_RUN_GROUP}
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
+
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here.  If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog ${APACHE_LOG_DIR}/error.log
+
+#
+# LogLevel: Control the severity of messages logged to the error_log.
+# Available values: trace8, ..., trace1, debug, info, notice, warn,
+# error, crit, alert, emerg.
+# It is also possible to configure the log level for particular modules, e.g.
+# "LogLevel info ssl:warn"
+#
+LogLevel warn
+
+# Include module configuration:
+IncludeOptional mods-enabled/*.load
+IncludeOptional mods-enabled/*.conf
+
+# Include list of ports to listen on
+Include ports.conf
+
+
+# Sets the default security model of the Apache2 HTTPD server. It does
+# not allow access to the root filesystem outside of /usr/share and /var/www.
+# The former is used by web applications packaged in Debian,
+# the latter may be used for local directories served by the web server. If
+# your system is serving content from a sub-directory in /srv you must allow
+# access here, or in any related virtual host.
+<Directory />
+	Options FollowSymLinks
+	AllowOverride None
+	Require all denied
+</Directory>
+
+<Directory /usr/share>
+	AllowOverride None
+	Require all granted
+</Directory>
+
+<Directory /var/www/>
+	Options Indexes FollowSymLinks
+	AllowOverride None
+	Require all granted
+</Directory>
+
+#<Directory /srv/>
+#	Options Indexes FollowSymLinks
+#	AllowOverride None
+#	Require all granted
+#</Directory>
+
+
+
+
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives.  See also the AllowOverride
+# directive.
+#
+AccessFileName .htaccess
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+<FilesMatch "^\.ht">
+	Require all denied
+</FilesMatch>
+
+
+#
+# The following directives define some format nicknames for use with
+# a CustomLog directive.
+#
+# These deviate from the Common Log Format definitions in that they use %O
+# (the actual bytes sent including headers) instead of %b (the size of the
+# requested file), because the latter makes it impossible to detect partial
+# requests.
+#
+# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
+# Use mod_remoteip instead.
+#
+LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %O" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+# Include of directories ignores editors' and dpkg's backup files,
+# see README.Debian for details.
+
+# Include generic snippets of statements
+IncludeOptional conf-enabled/*.conf
+
+# Include the virtual host configurations:
+IncludeOptional sites-enabled/*.conf
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
diff --git a/css/graph-creator.css b/css/graph-creator.css
new file mode 100644
index 0000000..15d48ff
--- /dev/null
+++ b/css/graph-creator.css
@@ -0,0 +1,249 @@
+#toolbox{
+    position: absolute;
+    top: 0;
+    margin-left: 25%;
+    width: 50%;
+    border: 2px solid #EEEEEE;
+    border-radius: 5px;
+    z-index: 5;
+    transition: all 0.3s;
+    padding: 7px 20px 20px 20px;
+    margin-bottom: 10px;
+}
+#toolbox:hover{
+    background-color: #fff;
+}
+#toolbox input{
+    background-color: inherit;
+}
+#toolbox:hover input{
+    min-width: 300px;
+    opacity: 1;
+}
+#toolbox:hover{
+    opacity: 1;
+    cursor: pointer;
+    /*padding-bottom: 40px;*/
+}
+
+#inspected-word{
+    min-width: 200px;
+    min-height: 40px;
+    font-size: 16px;
+    color: #000;
+    padding: 10px;
+    border: none;
+    border-bottom: solid 3px #c9c9c9;
+    transition: min-width 0.3s;
+}
+
+#inspected-word-btn {
+    min-height: 40px;
+    background-color: white;
+    color: black;
+    border: 2px solid #555555;
+    -webkit-transition-duration: 0.4s; /* Safari */
+    transition-duration: 0.4s;
+}
+
+#inspected-word-btn:hover {
+    background-color: #555555; /* Green */
+    color: white;
+}
+
+#hidden-file-upload{
+    display: none;
+}
+
+#download-input{
+    margin: 0 0.5em;
+}
+
+#possible-senses{
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
+    max-height: 400px;
+    overflow-y: scroll;
+}
+#possible-senses li{
+    padding: 5px;
+}
+#possible-senses li:hover{
+    background-color: #eee;
+}
+
+.conceptG text{
+    pointer-events: none;
+}
+
+marker{
+    fill: #333;
+}
+
+g.conceptG circle.inner-node{
+    fill: #aaffaf;
+    /*stroke: #333;*/
+    /*stroke-width: 2px;*/
+}
+
+/*g.conceptG:hover circle{*/
+    /*fill: rgb(200, 238, 241);*/
+/*}*/
+
+/*g.selected circle{*/
+    /*fill: rgb(250, 232, 255);*/
+/*}*/
+/*g.selected:hover circle{*/
+    /*fill: rgb(250, 232, 255);*/
+/*}*/
+
+path.link {
+    fill: none;
+    /*stroke: #000;*/
+    stroke-width: 2px;
+    cursor: default;
+}
+
+path.dotted {
+    stroke-dasharray: 6, 3;
+}
+
+path.link:hover{
+    stroke: rgb(94, 196, 204);
+}
+
+g.connect-node circle{
+    fill: #BEFFFF;
+}
+
+path.link.hidden{
+    stroke-width: 0;
+}
+
+path.link.selected {
+    stroke: rgb(229, 172, 247);
+}
+
+polyline.expanded {
+  fill: red;
+}
+
+polyline.inner-node,
+circle.inner-node {
+    stroke: black;
+    stroke-width: 1px;
+}
+
+/* marking selected nodes */
+g.node-selected polyline.inner-node,
+g.node-selected circle.inner-node {
+    fill: rgb(255,255,48);
+}
+
+text.relation-text{
+    font-size: .8em;
+}
+
+.hidden-list{
+    background-color: whitesmoke;
+    overflow-y: scroll;
+    min-width: 50px;
+    max-height: 200px;
+}
+.hidden-list ul {
+    list-style: none;
+    padding-left: 0;
+}
+
+.hidden-list ul li {
+    cursor: pointer;
+    padding: 5px;
+}
+.hidden-list ul li:hover {
+    background-color: #aaa;
+}
+
+#node-tooltip{
+    position: absolute;
+    color: #fff;
+    text-align: center;
+    padding: 10px;
+    font: 12px sans-serif;
+    background: black;
+    border: 0px;
+    border-radius: 8px;
+    pointer-events: none;
+}
+
+#node-tooltip::after {
+    content: " ";
+    opacity: inherit;
+    position: absolute;
+    top: 50%;
+    right: 100%; /* To the left of the tooltip */
+    margin-top: -5px;
+    border-width: 5px;
+    border-style: solid;
+    border-color: transparent black transparent transparent;
+}
+
+#loader {
+    border: 5px solid #f3f3f3;
+    -webkit-animation: spin 1s linear infinite;
+    animation: spin 1s linear infinite;
+    border-top: 5px solid #555;
+    border-radius: 50%;
+    width: 50px;
+    height: 50px;
+}
+
+@keyframes spin {
+    0% { transform: rotate(0deg); }
+    100% { transform: rotate(360deg); }
+}
+
+#download-picture {
+    position: absolute;
+    bottom: 10px;
+    right: 10px;
+    border: none;
+    background-color: transparent;
+    background-image: url('../img/download-icon.png');
+    background-size: 50px 50px;
+    height: 50px;
+    width: 55px;
+}
+#download-picture:hover{
+    background-size: 55px 55px;
+    height: 55px;
+    width: 60px;
+}
+
+
+.inner-graph-container{
+    background-color: white;
+}
+
+
+/*
+    For minimap
+    =========================
+*/
+
+.canvas {
+    overflow: hidden;
+    background-color: rgba(236, 236, 236, 0.9);
+
+    -webkit-box-shadow: 0px 0px 15px 3px rgba(0,0,0,0.5);
+    -moz-box-shadow: 0px 0px 15px 3px rgba(0,0,0,0.5);
+    box-shadow: 0px 0px 15px 3px rgba(0,0,0,0.5);
+}
+
+.canvas .minimap .frame .background {
+    stroke: #111111;
+    stroke-width: 4px;
+    fill-opacity: 0.1;
+    fill: #000000;
+    cursor: move;
+}
\ No newline at end of file
diff --git a/css/languages.css b/css/languages.css
new file mode 100644
index 0000000..1924268
--- /dev/null
+++ b/css/languages.css
@@ -0,0 +1,42 @@
+select#languages {
+  padding: 2px 5px;
+  margin: 7px 15px 0 5px;
+  color: white;
+  background-color: inherit;
+  border: none;
+  font-size: 20px;
+  font-weight: bold;
+  cursor: pointer;
+
+  background-repeat: no-repeat;
+  background-image: url('../img/lang-pl-32.png');
+  background-position: left center;
+
+  /* Chrome + Firefox */
+  -moz-appearance: none;
+  -webkit-appearance: none;
+  appearance: none;
+}
+
+/* IE10 */
+select#languages::-ms-expand {
+  display: none;
+}
+
+select#languages:active,
+select#languages:focus {
+  outline: none;
+}
+
+select#languages option {
+  color: white;
+  background-color: black;
+}
+
+select#languages option:before,
+select#languages option:after {
+  content: "*";
+  color: white;
+  background-color: red;
+  padding: 2px;
+}
\ No newline at end of file
diff --git a/css/modal.css b/css/modal.css
new file mode 100644
index 0000000..7e37244
--- /dev/null
+++ b/css/modal.css
@@ -0,0 +1,90 @@
+.modal .modal-content {
+  width: 100%;
+  margin: 15% auto;
+  background-color: #FEFEFE;
+  border: none;
+  border-radius: 0;
+}
+
+.modal .modal-content.modal-content-nav {
+  width: 60%;
+}
+
+.modal .modal-content .modal-header {
+  padding: 5px;
+  text-align: center;
+  letter-spacing: 1px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+  color: white;
+  background-color: #7F6CAF;
+  text-transform: uppercase;
+  border: none;
+  -webkit-box-shadow: 0px 0px 6px #5D4A8D;
+  -moz-box-shadow: 0px 0px 6px #5D4A8D;
+  box-shadow: 0px 0px 6px #5D4A8D;
+}
+
+.modal .modal-content .modal-header .close {
+  color: white;
+  float: right;
+  font-size: 28px;
+  font-weight: bold;
+}
+
+.modal .modal-content .modal-header .close:hover,
+.modal .modal-content .modal-header .close:focus {
+  color: black;
+  text-decoration: none;
+  cursor: pointer;
+}
+
+.modal .modal-content .modal-body {
+  padding: 20px 10px;
+}
+
+.modal .modal-content .modal-body p {
+  margin: 0;
+}
+
+.modal .modal-content .modal-body a {
+  color: #337AB7;
+  border-bottom: 1px solid #337AB7;
+}
+
+.modal .modal-content .modal-body a:hover {
+  text-decoration: none;
+}
+
+.modal .modal-content .modal-body .author {
+  font-size: 12px;
+  padding-bottom: 10px;
+  letter-spacing: 1px;
+}
+
+.modal .modal-content .modal-body .description {
+  font-size: 16px;
+}
+
+.modal .modal-content .modal-footer {
+  padding: 15px;
+  text-align: center;
+  border: none;
+  background-color: #7F6CAF;
+  color: white;
+  letter-spacing: 1px;
+  -webkit-box-shadow: 0px 0px 6px #5D4A8D;
+  -moz-box-shadow: 0px 0px 6px #5D4A8D;
+  box-shadow: 0px 0px 6px #5D4A8D;
+}
+
+@media (max-width: 767px) {
+  .modal .modal-content {
+    margin: 30% auto 15%;
+  }
+}
+
+@media (max-width: 1200px) {
+  .modal .modal-content {
+    width: 80%;
+  }
+}
\ No newline at end of file
diff --git a/css/nav.css b/css/nav.css
new file mode 100644
index 0000000..5fb6bbf
--- /dev/null
+++ b/css/nav.css
@@ -0,0 +1,65 @@
+.container-fluid-nav-adjust {
+  margin-top: 35px;
+  transition: .4s all;
+}
+
+nav.navbar-main {
+  width: 100%;
+  background-color: #F9F9F9;
+  padding: 0;
+  margin: 0;
+  font-size: 14px;
+  border-bottom: 2px solid #41423A;
+  position: fixed;
+  top: 0;
+  z-index: 1;
+  -webkit-box-shadow: 0px 1px 1px #CCC;
+  -moz-box-shadow: 0px 1px 1px #CCC;
+  box-shadow: 0px 1px 1px #CCC;
+}
+
+nav.navbar-main .navbar-header .navbar-toggle span {
+  background-color: #41423A;
+}
+
+nav.navbar-main .navbar-collapse ul.navbar-nav {
+  float: right;
+  height: 71px;
+
+  display: -ms-flex;
+  display: -webkit-flex;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav li a {
+  padding: 15px 10px;
+  font-size: 16px;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-decoration: none;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav .li-animation a {
+  color: #41423A;
+  letter-spacing: 1px;
+  -webkit-transition: 0.5s;
+  -moz-transition: 0.5s;
+  -o-transition: 0.5s;
+  transition: 0.5s;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav .li-animation a:hover {
+  color: #74756D;
+}
+
+.row-nav-adjust {
+  margin-top: 85px !important;
+}
+
+@media (min-width: 768px) {
+  .container-fluid-nav-adjust {
+    margin-top: 50px;
+  }
+}
\ No newline at end of file
diff --git a/css/selectmenu-nav.css b/css/selectmenu-nav.css
new file mode 100644
index 0000000..7f7328b
--- /dev/null
+++ b/css/selectmenu-nav.css
@@ -0,0 +1,69 @@
+.ui-widget.ui-widget-content {
+  border: 2px solid #41423A;
+}
+.ui-selectmenu-menu .ui-menu {
+  padding: 0;
+}
+.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item-wrapper {
+  padding: 0.5em 0 0.5em 3em;
+  color: #41423A;
+  background-color: #F9F9F9;
+  border: none;
+  font-weight: bold;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+  margin: 0;
+}
+.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon {
+  height: 24px;
+  width: 24px;
+  top: 0.1em;
+  margin-left: 10px;
+}
+.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item-wrapper:active {
+  border: none;
+}
+.ui-icon.pl {
+  background: url("../img/lang-pl-32.png") 0 0 no-repeat;
+  background-size: cover;
+}
+.ui-icon.en {
+  background: url("../img/lang-en-32.png") 0 0 no-repeat;
+  background-size: cover;
+}
+#languages-button {
+  display: inline-block;
+  width: auto;
+  border: none;
+  padding: 15px 15px 15px 35px;
+  margin-right: 50px;
+  font-size: 16px;
+  font-weight: bold;
+  color: #41423A;
+  background-color: transparent;
+
+  background-repeat: no-repeat;
+  background-image: url("../img/lang-pl-32.png");
+  background-position: left;
+}
+#languages-button:active,
+#languages-button:focus {
+  outline: none;
+  box-shadow: none;
+  border-color: transparent;
+}
+.ui-selectmenu-menu .ui-menu-item:hover div {
+  background-color: #E8E8E8E8 !important;
+}
+.ui-button:active .ui-icon,
+.ui-button:focus .ui-icon,
+.ui-button:hover .ui-icon {
+  background-image: url("http://code.jquery.com/ui/1.12.1/themes/base/images/ui-icons_777777_256x240.png");
+}
+.ui-button .ui-selectmenu-text {
+  transition: .5s all;
+}
+.ui-button:hover .ui-selectmenu-text {
+  color: #74756D;
+}
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..a9fc2aa
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,633 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+
+#tooltip-test {
+  color: white;
+  /*background-color: #63C542;*/
+  background-color: black;
+  /*display: inline-block;*/
+  display: none;
+  padding: 10px;
+  position: fixed;
+  z-index: 1234;
+  left: 10%;
+}
+
+#tooltip-test::after {
+  content: "";
+  position: absolute;
+  top: 100%;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 5px;
+  border-style: solid;
+  /*border-color: #63C542 transparent transparent transparent;*/
+  border-color: black transparent transparent transparent;
+}
+
+.my-tooltip {
+  position: relative;
+  display: inline-block;
+  border-bottom: 1px dotted black;
+}
+
+.my-tooltip .my-tooltiptext {
+  visibility: hidden;
+  width: 120px;
+  background-color: #555;
+  color: #fff;
+  text-align: center;
+  padding: 5px 0;
+  border-radius: 6px;
+
+  /* Position the tooltip text */
+  position: absolute;
+  z-index: 1;
+  bottom: 125%;
+  left: 50%;
+  margin-left: -60px;
+
+  /* Fade in tooltip */
+  opacity: 0;
+  transition: opacity 0.3s;
+}
+
+.my-tooltip .my-tooltiptext::after {
+  content: "";
+  position: absolute;
+  top: 100%;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 5px;
+  border-style: solid;
+  border-color: #555 transparent transparent transparent;
+}
+
+.my-tooltip:hover .my-tooltiptext {
+  visibility: visible;
+  opacity: 1;
+}
+
+.tooltip-inner {
+  color: white;
+  background-color: black;
+}
+
+.tooltip-inner a {
+  color: #84A3BD;
+  color: #5AB4FF;
+}
+
+.hand {
+  cursor: pointer;
+}
+
+table th {
+  letter-spacing: 1px;
+}
+
+body {
+  color: black;
+  font-family: 'Roboto', sans-serif;
+}
+
+body.en :lang(pl) {
+  display: none !important;
+}
+
+body.pl :lang(en) {
+  display: none !important;
+}
+
+.decoration-box {
+  padding: 1px 0;
+  background-color: white;
+  cursor: default !important;
+}
+
+.decoration {
+  border-top: 1px solid #EEE;
+  position: relative;
+  height: 1px;
+  margin: 20px 60px 20px 60px;
+  cursor: default !important;
+}
+
+.hamburger-expanded {
+  margin-top: 200px !important;
+}
+
+.ui-front {
+  z-index: 1000;
+}
+
+.expand-content {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+a:focus,
+a:hover {
+  text-decoration: none;
+}
+
+#lang-box,
+#synset-box {
+  width: 100%;
+  display: flex;
+  align-items: center;
+}
+
+.container-fluid {
+  padding: 0;
+}
+
+.make-space {
+  padding: 1% 0;
+  background-color: white;
+}
+
+.table-bordered>tbody>tr>td,
+.table-bordered>tbody>tr>th,
+.table-bordered>tfoot>tr>td,
+.table-bordered>tfoot>tr>th,
+.table-bordered>thead>tr>td,
+.table-bordered>thead>tr>th {
+  border: 2px solid #EAE5E5;
+}
+
+.table>tbody>tr>td,
+.table>tbody>tr>th,
+.table>tfoot>tr>td,
+.table>tfoot>tr>th,
+.table>thead>tr>td,
+.table>thead>tr>th {
+  border-top: 2px solid #EAE5E5;
+  border-bottom: none;
+}
+
+nav.navbar-main {
+  width: 100%;
+  background-color: white;
+  padding: 10px 0;
+  margin: 0;
+  font-size: 14px;
+  border-bottom: 3px solid #41423A;
+}
+
+nav.navbar-main .navbar-header {
+  text-align: center;
+  padding: 10px 0;
+}
+
+nav.navbar-main .navbar-header button.navbar-toggle {
+  float: none;
+  border: none;
+  margin: 0 auto;
+}
+
+nav.navbar-main .navbar-header button.navbar-toggle:link,
+nav.navbar-main .navbar-header button.navbar-toggle:visited,
+nav.navbar-main .navbar-header button.navbar-toggle:hover,
+nav.navbar-main .navbar-header button.navbar-toggle:active,
+nav.navbar-main .navbar-header button.navbar-toggle:focus {
+  background-color: inherit;
+}
+
+nav.navbar-main .navbar-collapse {
+  border: none;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+
+nav.navbar-main .navbar-collapse a.logo {
+  float: left;
+  margin-left: 4%;
+}
+
+nav.navbar-main .navbar-collapse ul.navbar-nav {
+  float: right;
+  margin-right: 4%;
+  height: 71px;
+
+  display: -ms-flex;
+  display: -webkit-flex;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav li a {
+  color: black;
+  padding: 15px 10px;
+  font-size: 16px;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-decoration: none;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav .li-animation a {
+  color: #41423A;
+  letter-spacing: 1px;
+  -webkit-transition: 0.5s;
+  -moz-transition: 0.5s;
+  -o-transition: 0.5s;
+  transition: 0.5s;
+}
+
+nav.navbar-main .navbar-collapse .navbar-nav .li-animation a:hover {
+  color: #74756D;
+}
+
+.container-fluid#hamburger-scroll-down a img {
+  display: block;
+  margin: 100px auto 10px auto;
+}
+
+section#options {
+  background-color: #F9F9F9;
+  padding: 2% 0 1% 0;
+}
+
+section#options .container-fluid {
+  width: 70%;
+  padding: 20px;
+}
+
+section#options .container-fluid .row div[class^="col"] {
+  margin: 0;
+  padding: 0;
+}
+
+section#options .container-fluid .row h1 {
+  margin: 0;
+  padding: 0 0 2% 0;
+  color: #41423A;
+  background-color: transparent;
+  text-align: center;
+  font-size: 30px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+}
+
+section#options .container-fluid .row .options-box {
+  display: -ms-flex;
+  display: -webkit-flex;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 5px;
+}
+
+section#options .container-fluid .row p {
+  margin: 0;
+  padding: 0 10px 0 0;
+  color: #41423A;
+  font-size: 12px;
+  font-weight: bold;
+  text-align: right;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+}
+
+section#options .container-fluid .row select,
+section#options .container-fluid .row input {
+  color: black;
+  background-color: white;
+  display: inline-block;
+  width: 100%;
+  border: 2px solid black;
+  border-radius: 0;
+  box-shadow: none;
+  box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+}
+
+section#options .container-fluid .row select {
+  cursor: pointer;
+  padding-right: 40px;
+}
+
+section#options .container-fluid .row .select-wrapper {
+  width: 100%;
+  margin: 0 auto;
+  text-align: center;
+  display: inline-block;
+  position: relative;
+}
+
+section#options .container-fluid .row .select-wrapper:before {
+  content: '\e114';
+  font-family: Glyphicons Halflings;
+  pointer-events: none;
+  color: #606060;
+  font-size: 16px;
+  position: absolute;
+  right: 12px;
+  top: 7px;
+}
+
+section#options .container-fluid .row .select-wrapper:after {
+  content: '';
+  height: 100%;
+  pointer-events: none;
+  border-left: 2px solid black;
+  position: absolute;
+  right: 40px;
+  top: 0;
+}
+
+section#options .container-fluid .row button {
+  padding: 3px 11px;
+  margin: 2.5% auto 0% auto;
+  color: white;
+  background-color: #63C542;
+  border: 5px solid #63C542;
+  border-radius: 0;
+  transition: background-color 0.5s, color 0.5s;
+}
+
+section#options .container-fluid .row button:hover {
+  color: #63C542;
+  background-color: white;
+}
+
+section#options .container-fluid .row button:active,
+section#options .container-fluid .row button:focus {
+  outline: none;
+}
+
+section#options .container-fluid .row button span {
+  font-size: 18px;
+  font-weight: 700;
+  font-family: 'Saira Semi Condensed', sans-serif;
+  text-transform: uppercase;
+  letter-spacing: 3px;
+}
+
+#lexp_results {
+  background-color: #F9F9F9;
+  text-align: center;
+}
+
+#lexp_results div.expand-content {
+  cursor: pointer;
+  position: relative;
+  transition: all 1s;
+}
+
+#lexp_results div.expand-content:hover {
+  background-color: #EAE5E5;
+}
+
+#lexp_results div h1 {
+  display: inline-block;
+  padding: 0 10px;
+  color: #41423A;
+  font-size: 30px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+#lexp_results .img-container {
+  max-height: 50px;
+  display: inline-block;
+  position: absolute;
+  left: 2%;
+}
+
+#lexp_results .img-container img {
+  margin: 5px 0;
+}
+
+#handlebars_resource_index {
+  display: none;
+}
+
+#lexpelement_spxvi {
+  font-family: 'Roboto', sans-serif;
+  width: 90%;
+  display: none;
+  margin: 10px auto;
+  padding: 1%;
+  border: 5px solid #E4E4E4;
+  background: url("https://spxvi.edu.pl/static/img/koch_bg97.jpg");
+}
+
+#lexpelement_omwn, .ace_content, #lexpelement_spxvi, .jqcloud {
+  text-align: left;
+}
+
+#lexp_results .ace_editor {
+  width: 100% !important;
+  border: 5px solid #E4E4E4;
+}
+
+#lexp_results .ace_editor .ace_gutter,
+#lexp_results .ace_editor .ace_layer,
+#lexp_results .ace_editor .ace_scroller,
+#lexp_results .ace_editor .ace_scrollbar  {
+  z-index: 0;
+}
+
+#lexp_results .expand-content .glyphicon {
+  top: 0;
+}
+
+#lexp_results .expand-content .copyright,
+#lexp_results .expand-content .help,
+#lexp_results .expand-content .source {
+  font-size: 16px;
+  color: black;
+}
+
+#lexpelement_omwn,
+#lexpelement_plwordnet {
+  text-align: center;
+}
+
+#lexpelement_omwn .table-responsive,
+#lexpelement_plwordnet .table-responsive {
+  width: auto;
+  max-width: 90%;
+  display: inline-block;
+}
+
+#lexpelement_omwn table {
+  border: 5px solid #EAE5E5;
+  margin: 20px 0;
+}
+
+#lexpelement_omwn table thead {
+  background-color: #EAE5E5;
+}
+
+#lexpelement_omwn table tbody tr {
+  background-color: white;
+}
+
+#lexpelement_omwn a.lemma-link {
+  color: #1786C8;
+  letter-spacing: 0.7px;
+}
+
+#lexpelement_word2vec .jqcloud span {
+  font-family: 'Roboto', sans-serif;
+}
+
+#lexpelement_morfeusz .table-responsive {
+  width: 90%;
+  margin: 0 auto;
+}
+
+#lexpelement_plwordnet .table-responsive  table,
+#lexpelement_morfeusz .table-responsive  table {
+  border: 5px solid #EAE5E5;
+  margin: 20px 0;
+}
+
+#lexpelement_plwordnet .table-responsive  table thead,
+#lexpelement_morfeusz .table-responsive  table thead {
+  background-color: #EAE5E5;
+}
+
+#lexpelement_hask .bootstrap-table {
+  width: 90%;
+  margin: 25px auto;
+}
+
+#lexpelement_hask .fixed-table-container {
+  border: none;
+}
+
+#lexpelement_hask .bootstrap-table table {
+  border-radius: 0;
+  border: 5px solid #EAE5E5;
+  text-align: center;
+}
+
+#lexpelement_hask .bootstrap-table table thead {
+  background-color: #EAE5E5;
+}
+
+#lexpelement_hask .bootstrap-table table tbody {
+  background-color: white;
+}
+
+#lexpelement_hask .bootstrap-table table th,
+#lexpelement_hask .bootstrap-table table td {
+  text-align: center;
+}
+
+#lexpelement_hask .bootstrap-table #back-bar {
+  margin: 10px;
+}
+
+#lexpelement_hask .bootstrap-table input,
+#lexpelement_hask .bootstrap-table button,
+#lexpelement_hask .page-first a,
+#lexpelement_hask .page-last a,
+#lexpelement_hask span.btn,
+#lexpelement_hask .dropdown-menu {
+  border-radius: 0;
+}
+
+#lexpelement_hask .bootstrap-table input {
+  transition: all .5s;
+}
+
+#lexpelement_hask .bootstrap-table input:active,
+#lexpelement_hask .bootstrap-table input:focus {
+  border-color: black;
+  outline: none;
+  box-shadow: none;
+}
+
+#lexpelement_spxvi {
+  font-family: 'Liberation Serif', 'Times New Roman', 'serif';
+}
+
+#fleksja div:first-child {
+  padding: 0 10px;
+  position: relative;
+  font-weight: bold;
+}
+
+#flexion_swap {
+  padding: 10px;
+  font-size: 16px;
+  cursor: pointer;
+  position: absolute;
+  right: 0;
+
+  transition: .5s all;
+}
+
+#flexion_swap:hover {
+  color: #7D6C40;
+}
+
+#lexpelement_eswil {
+  width: 90%;
+  margin: 0 auto;
+  text-align: justify;
+}
+
+#lexpelement_eswil #haslo {
+  padding: 25px 0 0;
+}
+
+#lexpelement_eswil #skan {
+  padding: 30px 0;
+}
+
+#lexpelement_eswil #skanDiv {
+  text-align: center;
+}
+
+footer {
+  width: 100%;
+  padding: 10px;
+  font-size: 16px;
+  text-align: center;
+  color: #41423A;
+  background-color: #F5F5F5;
+}
+
+footer p {
+  margin: 0;
+  text-align: center;
+}
+
+@media (max-width: 767px) {
+  section#options .container-fluid {
+    width: 90%;
+  }
+  section#options .container-fluid .row div[class^="col"] {
+    padding: 5px 0;
+  }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+  section#options .container-fluid {
+    width: 80%;
+  }
+  section#options .container-fluid .row div[class^="col"] {
+    padding: 5px 0;
+  }
+  nav.navbar-main .navbar-collapse ul.navbar-nav {
+    margin-right: -4%;
+  }
+}
\ No newline at end of file
diff --git a/eswil/eswil.js b/eswil/eswil.js
new file mode 100644
index 0000000..02f8237
--- /dev/null
+++ b/eswil/eswil.js
@@ -0,0 +1,41 @@
+function Eswil(data) {
+  this.startUp();
+}
+
+Eswil.prototype.startUp = function() {
+  $('#haslo').css('width', '100%');
+  $('#skan').removeAttr('onmousedown');
+}
+
+Eswil.id = "eswil";
+
+$(function () {
+  Element.addVisualizer(Eswil.id, Eswil);
+
+  // First option - click and selection
+  /*$('#lexp_results').on('click', '#haslo', function(event) {
+    let lemma = selectWordOld().toLowerCase(),
+        lang = $('#lang').val();
+
+    $('#tooltip-test').html('<span lang="pl">Przejdź dalej - </span><span lang="en">Proceed - </span><a style="color: #337AB7" href="/lemma/' + lang + '/' + lemma + '">' + lemma + '</a>');
+    $('#tooltip-test').css('display', 'inline-block').css('left', event.originalEvent.clientX - 55).css('top', event.originalEvent.clientY - 55);
+  });*/
+
+  // Second option - only selection
+  $('#lexp_results').on('mouseup', '#haslo', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.offsetX || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.offsetX + 20 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/hask/hask.html b/hask/hask.html
new file mode 100644
index 0000000..0f4014a
--- /dev/null
+++ b/hask/hask.html
@@ -0,0 +1,16 @@
+<div id="div_table_HASK">
+  <table id="table_Hask" class="table_Hask" data-cache="true" data-pagination="true" data-search="true" data-show-columns="true" data-id-field="a" data-filter-control="true">
+    <thead>
+      <tr>
+        <th data-field="lemma" data-filter-control="select" data-sortable="true" data-formatter="Hask.lemmaFormatter"><span lang="pl">Lemat</span><span lang="en">Lemma</span></th>
+        <th data-field="pos" data-filter-control="select" data-sortable="true"  data-filter-control="select">POS</th>
+        <th data-field="a" data-sortable="true" ><span lang="pl">Częstość</span><span lang="en">Frequency</span></th>
+        <th data-field="chisq" data-sortable="true" data-formatter="Hask.realFormatter">ChiSq</th>
+        <th data-field="ttest" data-formatter="Hask.realFormatter">TTest</th>
+        <th data-field="url" data-formatter="Hask.urlFormatter">&nbsp;</th>
+        <!--<th data-field="status"  data-sortable="true" data-formatter="statusFormatter" data-filter-control="select" >Status</th>
+        <th data-field="owner"   data-sortable="true"   data-filter-control="select">Owner</th> -->
+      </tr>
+    </thead>
+  </table>
+</div>
\ No newline at end of file
diff --git a/hask/hask.js b/hask/hask.js
new file mode 100644
index 0000000..2f232c3
--- /dev/null
+++ b/hask/hask.js
@@ -0,0 +1,70 @@
+function Hask(data) {
+  this.data = data;
+  console.log(data);
+}
+
+Hask.wordClick = function(res) {
+  //Lexp.target = "hask";
+  //var target = res.target.href;
+  Lexp.go2URL(res.getAttribute("href"));
+
+  return false;
+}
+
+Hask.realFormatter = function(value) {
+  return value.toFixed(2);
+}
+
+Hask.urlFormatter = function(value) {
+  return '<a href="' + value + '" target="hask"><span data-toggle="tooltip" data-placement="top" class="source glyphicon glyphicon glyphicon-link"></span></a>';
+}
+
+Hask.lemmaFormatter = function(value) {
+  return '<a href="/lemma/pl/' + value + '" onclick="Hask.wordClick(this);return false;">' + value + '</a>';
+}
+
+Hask.prototype.showTypeList = function(tag) {
+  tag.html(Hask.htmllist);
+  var __this = this;
+  $("#table_HaskList").bootstrapTable({data: this.data}).on('click-row.bs.table', function (e, row, $element) {
+    tag.html("");
+    var nag = '<div id="back-bar" class="pull-right search"><span style="cursor:pointer;" class="glyphicon glyphicon-arrow-left"></span>&nbsp;</div>';
+    tag.html(Hask.html);
+
+    $("#table_Hask").bootstrapTable({data: row.collocations, height: 550});
+    // console.log(row.collocations);
+    tag.find(".fixed-table-toolbar").append(nag);
+    tag.find("#back-bar").click(function() {
+      __this.showTypeList(tag);
+      return false;
+    });
+  });
+}
+
+Hask.prototype.showHTML = function(tag) {
+  tag.html("");
+
+  if (this.data.length == 1) {
+    tag.html(Hask.html);
+    $("#table_Hask").bootstrapTable({data: this.data[0].collocations, height: 550});
+  } else {
+    this.showTypeList(tag);
+  }
+}
+
+Hask.id = "hask";
+
+$(function() {
+  Element.addVisualizer(Hask.id, Hask);
+  $.get("/hask/hask.html", {"_": $.now()}, function(data) {
+    // console.log("HASK DATA");
+    // console.log(data);
+    Hask.html = data;
+  });
+
+  $.get("/hask/hasklist.html", {"_": $.now()}, function(data) {
+    // console.log("HASK DATA LIST");
+    // console.log(data);
+    Hask.htmllist = data;
+  });
+});
\ No newline at end of file
diff --git a/hask/hasklist.html b/hask/hasklist.html
new file mode 100644
index 0000000..5c8daf6
--- /dev/null
+++ b/hask/hasklist.html
@@ -0,0 +1,15 @@
+<div id="div_table_HASKList">
+  <table id="table_HaskList" class="table_Hask" style="cursor:pointer;">
+    <thead>
+      <tr>
+        <th data-field="node_lemma" data-sortable="true"><span lang="pl">Lemat</span><span lang="en">Lemma</span></th>
+        <th data-field="node_pos" data-sortable="true">POS</th>
+        <th data-field="collocate_pos" data-sortable="true"><span lang="pl">POS kolokacji</span><span lang="en">POS collocation</span></th>
+        <th data-field="colls_number" data-sortable="true"><span lang="pl">Liczba</span><span lang="en">Number</span></th>
+        <!--<th data-field="url" data-formatter="Hask.urlFormatter" >&nbsp;</th> -->
+        <!--<th data-field="status"  data-sortable="true" data-formatter="statusFormatter" data-filter-control="select" >Status</th>
+        <th data-field="owner"   data-sortable="true"   data-filter-control="select">Owner</th> -->
+      </tr>
+    </thead>
+  </table>
+</div>
\ No newline at end of file
diff --git a/httpd.conf b/httpd.conf
new file mode 100644
index 0000000..c9e61c7
--- /dev/null
+++ b/httpd.conf
@@ -0,0 +1,551 @@
+#
+# This is the main Apache HTTP server configuration file.  It contains the
+# configuration directives that give the server its instructions.
+# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
+# In particular, see 
+# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
+# for a discussion of each configuration directive.
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do.  They're here only as hints or reminders.  If you are unsure
+# consult the online docs. You have been warned.  
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path.  If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
+# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
+# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" 
+# will be interpreted as '/logs/access_log'.
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# Do not add a slash at the end of the directory path.  If you point
+# ServerRoot at a non-local disk, be sure to specify a local disk on the
+# Mutex directive, if file-based mutexes are used.  If you wish to share the
+# same ServerRoot for multiple httpd daemons, you will need to change at
+# least PidFile.
+#
+ServerRoot "/usr/local/apache2"
+
+#
+# Mutex: Allows you to set the mutex mechanism and mutex file directory
+# for individual mutexes, or change the global defaults
+#
+# Uncomment and change the directory if mutexes are file-based and the default
+# mutex file directory is not on a local disk or is not appropriate for some
+# other reason.
+#
+# Mutex default:logs
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, instead of the default. See also the <VirtualHost>
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to 
+# prevent Apache from glomming onto all bound IP addresses.
+#
+#Listen 12.34.56.78:80
+Listen 80
+
+#
+# Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a DSO you
+# have to place corresponding `LoadModule' lines at this location so the
+# directives contained in it are actually available _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module modules/mod_foo.so
+#
+LoadModule mpm_event_module modules/mod_mpm_event.so
+#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
+#LoadModule mpm_worker_module modules/mod_mpm_worker.so
+LoadModule authn_file_module modules/mod_authn_file.so
+#LoadModule authn_dbm_module modules/mod_authn_dbm.so
+#LoadModule authn_anon_module modules/mod_authn_anon.so
+#LoadModule authn_dbd_module modules/mod_authn_dbd.so
+#LoadModule authn_socache_module modules/mod_authn_socache.so
+LoadModule authn_core_module modules/mod_authn_core.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
+LoadModule authz_user_module modules/mod_authz_user.so
+#LoadModule authz_dbm_module modules/mod_authz_dbm.so
+#LoadModule authz_owner_module modules/mod_authz_owner.so
+#LoadModule authz_dbd_module modules/mod_authz_dbd.so
+LoadModule authz_core_module modules/mod_authz_core.so
+#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
+#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
+LoadModule access_compat_module modules/mod_access_compat.so
+LoadModule auth_basic_module modules/mod_auth_basic.so
+#LoadModule auth_form_module modules/mod_auth_form.so
+#LoadModule auth_digest_module modules/mod_auth_digest.so
+#LoadModule allowmethods_module modules/mod_allowmethods.so
+#LoadModule isapi_module modules/mod_isapi.so
+#LoadModule file_cache_module modules/mod_file_cache.so
+#LoadModule cache_module modules/mod_cache.so
+#LoadModule cache_disk_module modules/mod_cache_disk.so
+#LoadModule cache_socache_module modules/mod_cache_socache.so
+#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
+#LoadModule socache_dbm_module modules/mod_socache_dbm.so
+#LoadModule socache_memcache_module modules/mod_socache_memcache.so
+#LoadModule socache_redis_module modules/mod_socache_redis.so
+#LoadModule watchdog_module modules/mod_watchdog.so
+#LoadModule macro_module modules/mod_macro.so
+#LoadModule dbd_module modules/mod_dbd.so
+#LoadModule bucketeer_module modules/mod_bucketeer.so
+#LoadModule dumpio_module modules/mod_dumpio.so
+#LoadModule echo_module modules/mod_echo.so
+#LoadModule example_hooks_module modules/mod_example_hooks.so
+#LoadModule case_filter_module modules/mod_case_filter.so
+#LoadModule case_filter_in_module modules/mod_case_filter_in.so
+#LoadModule example_ipc_module modules/mod_example_ipc.so
+#LoadModule buffer_module modules/mod_buffer.so
+#LoadModule data_module modules/mod_data.so
+#LoadModule ratelimit_module modules/mod_ratelimit.so
+LoadModule reqtimeout_module modules/mod_reqtimeout.so
+#LoadModule ext_filter_module modules/mod_ext_filter.so
+#LoadModule request_module modules/mod_request.so
+#LoadModule include_module modules/mod_include.so
+LoadModule filter_module modules/mod_filter.so
+#LoadModule reflector_module modules/mod_reflector.so
+#LoadModule substitute_module modules/mod_substitute.so
+#LoadModule sed_module modules/mod_sed.so
+#LoadModule charset_lite_module modules/mod_charset_lite.so
+#LoadModule deflate_module modules/mod_deflate.so
+#LoadModule xml2enc_module modules/mod_xml2enc.so
+#LoadModule proxy_html_module modules/mod_proxy_html.so
+#LoadModule brotli_module modules/mod_brotli.so
+LoadModule mime_module modules/mod_mime.so
+#LoadModule ldap_module modules/mod_ldap.so
+LoadModule log_config_module modules/mod_log_config.so
+#LoadModule log_debug_module modules/mod_log_debug.so
+#LoadModule log_forensic_module modules/mod_log_forensic.so
+#LoadModule logio_module modules/mod_logio.so
+#LoadModule lua_module modules/mod_lua.so
+LoadModule env_module modules/mod_env.so
+#LoadModule mime_magic_module modules/mod_mime_magic.so
+#LoadModule cern_meta_module modules/mod_cern_meta.so
+#LoadModule expires_module modules/mod_expires.so
+LoadModule headers_module modules/mod_headers.so
+#LoadModule ident_module modules/mod_ident.so
+#LoadModule usertrack_module modules/mod_usertrack.so
+#LoadModule unique_id_module modules/mod_unique_id.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule version_module modules/mod_version.so
+#LoadModule remoteip_module modules/mod_remoteip.so
+#LoadModule proxy_module modules/mod_proxy.so
+#LoadModule proxy_connect_module modules/mod_proxy_connect.so
+#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
+#LoadModule proxy_http_module modules/mod_proxy_http.so
+#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
+#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
+#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
+#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
+#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
+#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
+#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
+#LoadModule proxy_express_module modules/mod_proxy_express.so
+#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
+#LoadModule session_module modules/mod_session.so
+#LoadModule session_cookie_module modules/mod_session_cookie.so
+#LoadModule session_crypto_module modules/mod_session_crypto.so
+#LoadModule session_dbd_module modules/mod_session_dbd.so
+#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
+#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
+#LoadModule ssl_module modules/mod_ssl.so
+#LoadModule optional_hook_export_module modules/mod_optional_hook_export.so
+#LoadModule optional_hook_import_module modules/mod_optional_hook_import.so
+#LoadModule optional_fn_import_module modules/mod_optional_fn_import.so
+#LoadModule optional_fn_export_module modules/mod_optional_fn_export.so
+#LoadModule dialup_module modules/mod_dialup.so
+#LoadModule http2_module modules/mod_http2.so
+#LoadModule proxy_http2_module modules/mod_proxy_http2.so
+#LoadModule md_module modules/mod_md.so
+#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
+#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
+#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
+#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
+LoadModule unixd_module modules/mod_unixd.so
+#LoadModule heartbeat_module modules/mod_heartbeat.so
+#LoadModule heartmonitor_module modules/mod_heartmonitor.so
+#LoadModule dav_module modules/mod_dav.so
+LoadModule status_module modules/mod_status.so
+LoadModule autoindex_module modules/mod_autoindex.so
+#LoadModule asis_module modules/mod_asis.so
+#LoadModule info_module modules/mod_info.so
+#LoadModule suexec_module modules/mod_suexec.so
+<IfModule !mpm_prefork_module>
+	#LoadModule cgid_module modules/mod_cgid.so
+</IfModule>
+<IfModule mpm_prefork_module>
+	#LoadModule cgi_module modules/mod_cgi.so
+</IfModule>
+#LoadModule dav_fs_module modules/mod_dav_fs.so
+#LoadModule dav_lock_module modules/mod_dav_lock.so
+#LoadModule vhost_alias_module modules/mod_vhost_alias.so
+#LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule dir_module modules/mod_dir.so
+#LoadModule imagemap_module modules/mod_imagemap.so
+#LoadModule actions_module modules/mod_actions.so
+#LoadModule speling_module modules/mod_speling.so
+#LoadModule userdir_module modules/mod_userdir.so
+LoadModule alias_module modules/mod_alias.so
+#LoadModule rewrite_module modules/mod_rewrite.so
+
+<IfModule unixd_module>
+#
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.  
+#
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# It is usually good practice to create a dedicated user and group for
+# running httpd, as with most system services.
+#
+User daemon
+Group daemon
+
+</IfModule>
+
+# 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# <VirtualHost> definition.  These values also provide defaults for
+# any <VirtualHost> containers you may define later in the file.
+#
+# All of these directives may appear inside <VirtualHost> containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+#
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed.  This address appears on some server-generated pages, such
+# as error documents.  e.g. admin@your-domain.com
+#
+ServerAdmin you@example.com
+
+#
+# ServerName gives the name and port that the server uses to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+#
+# If your host doesn't have a registered DNS name, enter its IP address here.
+#
+#ServerName www.example.com:80
+
+#
+# Deny access to the entirety of your server's filesystem. You must
+# explicitly permit access to web content directories in other 
+# <Directory> blocks below.
+#
+<Directory />
+    AllowOverride none
+    Require all denied
+</Directory>
+
+#
+# Note that from this point forward you must specifically allow
+# particular features to be enabled - so if something's not working as
+# you might expect, make sure that you have specifically enabled it
+# below.
+#
+
+#
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+#
+DocumentRoot "/usr/local/apache2/htdocs"
+<Directory "/usr/local/apache2/htdocs">
+    #
+    # Possible values for the Options directive are "None", "All",
+    # or any combination of:
+    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+    #
+    # Note that "MultiViews" must be named *explicitly* --- "Options All"
+    # doesn't give it to you.
+    #
+    # The Options directive is both complicated and important.  Please see
+    # http://httpd.apache.org/docs/2.4/mod/core.html#options
+    # for more information.
+    #
+    Options Indexes FollowSymLinks
+
+    #
+    # AllowOverride controls what directives may be placed in .htaccess files.
+    # It can be "All", "None", or any combination of the keywords:
+    #   AllowOverride FileInfo AuthConfig Limit
+    #
+    AllowOverride None
+
+    #
+    # Controls who can get stuff from this server.
+    #
+    Require all granted
+</Directory>
+
+#
+# DirectoryIndex: sets the file that Apache will serve if a directory
+# is requested.
+#
+<IfModule dir_module>
+    DirectoryIndex index.html
+</IfModule>
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being 
+# viewed by Web clients. 
+#
+<Files ".ht*">
+    Require all denied
+</Files>
+
+#
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here.  If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog /proc/self/fd/2
+
+#
+# LogLevel: Control the number of messages logged to the error_log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+<IfModule log_config_module>
+    #
+    # The following directives define some format nicknames for use with
+    # a CustomLog directive (see below).
+    #
+    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+    LogFormat "%h %l %u %t \"%r\" %>s %b" common
+
+    <IfModule logio_module>
+      # You need to enable mod_logio.c to use %I and %O
+      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+    </IfModule>
+
+    #
+    # The location and format of the access logfile (Common Logfile Format).
+    # If you do not define any access logfiles within a <VirtualHost>
+    # container, they will be logged here.  Contrariwise, if you *do*
+    # define per-<VirtualHost> access logfiles, transactions will be
+    # logged therein and *not* in this file.
+    #
+    CustomLog /proc/self/fd/1 common
+
+    #
+    # If you prefer a logfile with access, agent, and referer information
+    # (Combined Logfile Format) you can use the following directive.
+    #
+    #CustomLog "logs/access_log" combined
+</IfModule>
+
+<IfModule alias_module>
+    #
+    # Redirect: Allows you to tell clients about documents that used to 
+    # exist in your server's namespace, but do not anymore. The client 
+    # will make a new request for the document at its new location.
+    # Example:
+    # Redirect permanent /foo http://www.example.com/bar
+
+    #
+    # Alias: Maps web paths into filesystem paths and is used to
+    # access content that does not live under the DocumentRoot.
+    # Example:
+    # Alias /webpath /full/filesystem/path
+    #
+    # If you include a trailing / on /webpath then the server will
+    # require it to be present in the URL.  You will also likely
+    # need to provide a <Directory> section to allow access to
+    # the filesystem path.
+
+    #
+    # ScriptAlias: This controls which directories contain server scripts. 
+    # ScriptAliases are essentially the same as Aliases, except that
+    # documents in the target directory are treated as applications and
+    # run by the server when requested rather than as documents sent to the
+    # client.  The same rules about trailing "/" apply to ScriptAlias
+    # directives as to Alias.
+    #
+    ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
+
+</IfModule>
+
+<IfModule cgid_module>
+    #
+    # ScriptSock: On threaded servers, designate the path to the UNIX
+    # socket used to communicate with the CGI daemon of mod_cgid.
+    #
+    #Scriptsock cgisock
+</IfModule>
+
+#
+# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+<Directory "/usr/local/apache2/cgi-bin">
+    AllowOverride None
+    Options None
+    Require all granted
+</Directory>
+
+<IfModule headers_module>
+    #
+    # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
+    # backend servers which have lingering "httpoxy" defects.
+    # 'Proxy' request header is undefined by the IETF, not listed by IANA
+    #
+    RequestHeader unset Proxy early
+</IfModule>
+
+<IfModule mime_module>
+    #
+    # TypesConfig points to the file containing the list of mappings from
+    # filename extension to MIME-type.
+    #
+    TypesConfig conf/mime.types
+
+    #
+    # AddType allows you to add to or override the MIME configuration
+    # file specified in TypesConfig for specific file types.
+    #
+    #AddType application/x-gzip .tgz
+    #
+    # AddEncoding allows you to have certain browsers uncompress
+    # information on the fly. Note: Not all browsers support this.
+    #
+    #AddEncoding x-compress .Z
+    #AddEncoding x-gzip .gz .tgz
+    #
+    # If the AddEncoding directives above are commented-out, then you
+    # probably should define those extensions to indicate media types:
+    #
+    AddType application/x-compress .Z
+    AddType application/x-gzip .gz .tgz
+
+    #
+    # AddHandler allows you to map certain file extensions to "handlers":
+    # actions unrelated to filetype. These can be either built into the server
+    # or added with the Action directive (see below)
+    #
+    # To use CGI scripts outside of ScriptAliased directories:
+    # (You will also need to add "ExecCGI" to the "Options" directive.)
+    #
+    #AddHandler cgi-script .cgi
+
+    # For type maps (negotiated resources):
+    #AddHandler type-map var
+
+    #
+    # Filters allow you to process content before it is sent to the client.
+    #
+    # To parse .shtml files for server-side includes (SSI):
+    # (You will also need to add "Includes" to the "Options" directive.)
+    #
+    #AddType text/html .shtml
+    #AddOutputFilter INCLUDES .shtml
+</IfModule>
+
+#
+# The mod_mime_magic module allows the server to use various hints from the
+# contents of the file itself to determine its type.  The MIMEMagicFile
+# directive tells the module where the hint definitions are located.
+#
+#MIMEMagicFile conf/magic
+
+#
+# Customizable error responses come in three flavors:
+# 1) plain text 2) local redirects 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# MaxRanges: Maximum number of Ranges in a request before
+# returning the entire resource, or one of the special
+# values 'default', 'none' or 'unlimited'.
+# Default setting is to accept 200 Ranges.
+#MaxRanges unlimited
+
+#
+# EnableMMAP and EnableSendfile: On systems that support it, 
+# memory-mapping or the sendfile syscall may be used to deliver
+# files.  This usually improves server performance, but must
+# be turned off when serving from networked-mounted 
+# filesystems or if support for these functions is otherwise
+# broken on your system.
+# Defaults: EnableMMAP On, EnableSendfile Off
+#
+#EnableMMAP off
+#EnableSendfile on
+
+# Supplemental configuration
+#
+# The configuration files in the conf/extra/ directory can be 
+# included to add extra features or to modify the default configuration of 
+# the server, or you may simply copy their contents here and change as 
+# necessary.
+
+# Server-pool management (MPM specific)
+#Include conf/extra/httpd-mpm.conf
+
+# Multi-language error messages
+#Include conf/extra/httpd-multilang-errordoc.conf
+
+# Fancy directory listings
+#Include conf/extra/httpd-autoindex.conf
+
+# Language settings
+#Include conf/extra/httpd-languages.conf
+
+# User home directories
+#Include conf/extra/httpd-userdir.conf
+
+# Real-time info on requests and configuration
+#Include conf/extra/httpd-info.conf
+
+# Virtual hosts
+#Include conf/extra/httpd-vhosts.conf
+
+# Local access to the Apache HTTP Server Manual
+#Include conf/extra/httpd-manual.conf
+
+# Distributed authoring and versioning (WebDAV)
+#Include conf/extra/httpd-dav.conf
+
+# Various default settings
+#Include conf/extra/httpd-default.conf
+
+# Configure mod_proxy_html to understand HTML4/XHTML1
+<IfModule proxy_html_module>
+Include conf/extra/proxy-html.conf
+</IfModule>
+
+# Secure (SSL/TLS) connections
+#Include conf/extra/httpd-ssl.conf
+#
+# Note: The following must must be present to support
+#       starting without SSL on platforms with no /dev/random equivalent
+#       but a statically compiled-in mod_ssl.
+#
+<IfModule ssl_module>
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
+</IfModule>
+
diff --git a/img/ajax-loader.gif b/img/ajax-loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3288d1035d70bb86517e2c233f1a904e41f06b29
GIT binary patch
literal 3208
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

literal 0
HcmV?d00001

diff --git a/img/check.png b/img/check.png
new file mode 100644
index 0000000000000000000000000000000000000000..a11fffd45abb52932ef9f322c2c24d7df382a1e7
GIT binary patch
literal 1757
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

literal 0
HcmV?d00001

diff --git a/img/favicon.ico b/img/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..121fd40f27cd4139409c4428b62aada8169edf89
GIT binary patch
literal 43078
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
O$1g+;h=hsbWdi_)M;GP*

literal 0
HcmV?d00001

diff --git a/img/icons.gif b/img/icons.gif
new file mode 100644
index 0000000000000000000000000000000000000000..305d75bd7539f224f8c85429b7701c0c537d28c6
GIT binary patch
literal 5906
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
I$jD#~0KqLo=>Px#

literal 0
HcmV?d00001

diff --git a/img/lang-en-32.png b/img/lang-en-32.png
new file mode 100644
index 0000000000000000000000000000000000000000..531836ec058768fdbf91dd9909d73d4ef0fbad88
GIT binary patch
literal 1690
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANN9iJmTwArXh)hF1qn2^INY
zd-~m>O$v(?UO2F6wJ13!C$%nJAdxk>-{<1S8pABBkQB2%slLY<!M73~r93j8ze3Zv
zsqw*PM<Z$D`A0NVnieQ+*u{OKZvDBv_qXrL__h51lbg1`=l*<luek1c<$EUm7p#Bp
zdp0OYbWfUmbb_k4LS*g7!~0I(nDE;?#kKa?G40>S7S}k)r0kZhJ#}h=fwug1si=87
z(`$nGYjS>Y>;7aHG^jRXJ2N{yiJ_*i=Ep=^Eknj@|NbWOaXasQ%h)$>rEB(Vp2-)R
zjg|TNx5X@2&Zv2~>cF;o`;fqvdM_@%e^IQ}n}t`ca++rPVUbGlHxtPT0*S3p|KuA~
zR39$?kPvcjjqCk=7x%eErTeVyb#!#$c{AJWpo~zH-;xi1k4*n~dS#Z#v}+Da9Wvv;
zDHl8yJ|X>kV{$-Lv}MEO^z4fj`*~X!-W=Y)s%d*XuiK_7-ah&MLsn%vI)8sX{I=K3
zC#s@lrJ)hSinZI5-+pA{>6qWLUF!ToJ!R&`;N?kQ9@KU8@;H>`S>~B<Y06GD;F018
zom9ah;rV2%hSo1Bg#+h>jUWAe7`=l%sGaY{t_;DDd~Lp|F~?taf7Mu@_2_laEHzOx
zcj+SUtO6?qp3T9FF3#92th;n6$80-U?Ptdx9@to4F+(&;Tf>UM=pJ9gnu1D?|9KL+
zF|MD#&HXUjLU7s+i#vNBANUnpzi81hwtRi%?LRpf7K*917JtoUH{#ox<a3CJC-VpM
z)t4_hmNd;Y$YJ>PmCxncJZ+JU&(s+&-1C#&V^AKT{^MzG`;+JGd8el{+u5<~6WaO2
zVRrD7%*3*oiI<cYOkn5w&XnMvaK1BZ3d=W_Ut1zf{%sLFtM0Efry-^8A6pS${Ntl9
zycj3n@8Lak;+pq{{2MKOmzN#1Dp1He@%qdf;~iCp-PA<#=18V(TcGt$FyKLnP`8oh
z=LIst0#PM<&ozGedp6`_@x+?tBIX<p)3=!T$O)d$4lK2@{JdfQEv}2FxfjlyDWLJ(
z(pB_EY(?+u63MWYTSG(JCSITLserG<CN$`hh@9NI?X%d^n-3m{ys-LS>@#W4bqiL7
z&6<7j^@qfJb$Usg7HPaqIkrisI4vYHvhznH^Iyvb-MTtoK|@1^ty3D!DmeB$Ot>&#
zui0rg=e2oPj;Dw#%nP|UOC*G?%`$Q0f;V3>mvk+%_iwy%iK+3^$_)jZ?ric>?~nD`
z@x19nNb`TsGb{3DyiO6kSSszK#$hs{;QhQX=7+4TF9c=R`tMW^esJ!crpDrhNei_4
zmoU}Zu)h0K!F6NzwC?E*OBPBsJj`qtxcZw-X01?Wnp^Bou?LxENzZO*Ea~fOO3HS+
zduize&7?$WbEn+JCy(#B*m$#F&h_o4)DMz&OgrxiO`IFQ@_G|@PuO2OG38V1Vy<MJ
zzRJ3Wb#9JWN7Q_)my$R4Du1gpp2F~@?Qwyk*0G+(mHs?+a#NN`rWQ8@9e;9lx85Nm
z4MAHznTDdxY=_Hq4t+a$@P$~$(_JpH=9?d8eRpRFS<C7gDDC0%@DAt28-KqBv{ZGi
zSoCeTx170dMC-@&T^AB|uFFjpym0%&?>VO{)Ymdhmkw!J7ul>Jm2gaTeq!<k%QG^P
z=c?nG7h1lW#oYF-*~2Ylhka4FYT~&a_clC#{_s|ZpuzWE*Rn%QJ*Rhdor>E1j#0i|
z>hom(g+KESSHE=qQFgmBqK(JdB~Wn5tSp}U-&Bj1mAGbX=+A3soN$-X<4O_NvziZF
zMPVw7cDp)-W@)`L&vAGho^9~zyF$)c?d$#F&pKBvZK(7=ld^n?>-)ywL*>?b7yc^n
zi@y@xvn5Zq>G}Eg%0el#a?9?>_ic`e3q;Ks_BySJ*ss8MStDed^UobtSt4iFA5APS
zVhg$!x}eX`>H1!W<h35W^X3UiOwL(W{w{k}o~6OJ?j$DXtrMs8bUZ$;Xl|D9;~vi%
z>HD0Djmz8@|Cr1<@x#>ji;FVF_GC(I)s61<?_T*x`jvptlg}I8emN}RICrn<;*#=&
z+!Id%_WAAR=E!T-_<p2xj_&U6qboPQ*jZ)zPDFfh=2NdFZ0yMkxf?>_`jl_pd?E1N
z>Rfr>(N<mc3hi0*XOv5wG&An%?p<*;dPCQgSy89wTTRXjWz3X(E+~JQwJ=aNalR3&
z+|Qr<=b6}SXWV#hdEZ@@M|%I1Ne{lhNU6y?a_jlQ?*FX%FXB(tcqMbhPuR)8z`)??
L>gTe~DWM4f?Uo^@

literal 0
HcmV?d00001

diff --git a/img/lang-pl-32.png b/img/lang-pl-32.png
new file mode 100644
index 0000000000000000000000000000000000000000..60cb1b47b99e319fec6dcd781a14f5b0f3ae60c9
GIT binary patch
literal 815
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANM!-#lF$Ln02po#t3|$3>v^
ze^%z3&dJOL%^TWu3zYQ^UTn}^^Fj7Ts$hqDUa75E=-RxSd}#-#``)>~JkwKoW!&DX
zue%<m?&;C5l}LNNe*d4C>#2#^Z#T2N-MH`fzxK;qb0${&{+1mhx8jTek9KPi*U_B)
z{Wt4;=c_WrFmd``f7f?M@NwP7LvP>8GdvfKxI6dsaqiq~!8<xk)0-q2Rhn<JESsOr
zwTk6o5R2H3YKD`~r<ESO%XqEGVHQt9A&2X<Q!1i2qyAJ{Jet>ce%4d-PqQ0D5^NaP
zGrZ#HT(FEIVcPq5>L2g^yWRe5_qJ~BgM1FB)T<*Ini$KUNJ*9*NwZ!d_i*K#ejT2G
zS5_ORc&DGZ>Mg(!mHk^gX<7A#^y<Dsm!I<UoBQ5>c~f2Y^Y*64*BBmXD!uNM*S!9D
zt*Y%j)0Zp5H%?z<D$j67dirTrM(@aoX_HRrM|cJ-RoSzqaHBHAbw}Y>vx**e&D#FV
zBtPQV9EprKKW{%_{(UB)?V<+1PHx!Kd$tmauhy~ZNX}r`^ZTRvz53t0zX}o!7d!lL
z5Ra2|uw!-LKP9Ns(qYs3&SCO~*~ahde%B^3EXWJc=6de<%(l_z@j{U|C&O%%F6o^u
z@Zc{gT{`>UtzM6<Y#cmYzK)j}|2GTpf7Fc?<W;Ty=D5~fIg4Y~;$4cyHm4sP>4`M>
z9P-vav@7rA$!7m)xo4H1onzo(`&PG6<V?W*HH@~GC!K0A6JIpjXYH1mjlNFN&bg;W
zt(dI)!|iMrGX3o~+@aQddTYbkn`vyT=KPLY80L56)OF42H<cf~mHgGN&h|9vM)u?n
zYlG6+UPbMgym^XKq*$1@@TsgR7rCoHyc7Oi<g>iGp~U6njd=_z%TN8>af9W-uddy%
zr+$8ITvqyQ%Nou@ZR>9rw%#$<sO2{Zd;LQ0?3Uw|M{j05E!z3`-!Bt}IeBq~)&I@Y
zcRwmEK38_D`G36g%J$uF=Y9Xm{QB(bTK^wxKe#GB&-}i)p0QpkZKJ-Ancd?X4cz*V
dyXF5gB&o{xJ>a<J!N9=4;OXk;vd$@?2>@!4h7$k)

literal 0
HcmV?d00001

diff --git a/img/loading.gif b/img/loading.gif
new file mode 100644
index 0000000000000000000000000000000000000000..90f28cbdbb390b095e0d619cbe8d91208798e58f
GIT binary patch
literal 3897
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
UoOSoq*45Y7Cma^@WMHrc0QGmJPXGV_

literal 0
HcmV?d00001

diff --git a/img/logo-small.png b/img/logo-small.png
new file mode 100644
index 0000000000000000000000000000000000000000..6616f1e57c945e6340c7c9b41b70e531f1177ad6
GIT binary patch
literal 10642
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

literal 0
HcmV?d00001

diff --git a/img/progressbar.gif b/img/progressbar.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fbcce6bc9abfcc7893e65ef20b3e77ee16ec37b1
GIT binary patch
literal 3323
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
aHno(sHy3wxxN=tecTb))q2FGR!5RSn>1sp(

literal 0
HcmV?d00001

diff --git a/img/services-logo/eswil.png b/img/services-logo/eswil.png
new file mode 100644
index 0000000000000000000000000000000000000000..72d007dc38bb4fd5af39880b63ddf13fcb1ff419
GIT binary patch
literal 2114
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/hask.png b/img/services-logo/hask.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8d033f72697f13937d0077dcce67d0e7d73b513
GIT binary patch
literal 9033
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/morfeusz.png b/img/services-logo/morfeusz.png
new file mode 100644
index 0000000000000000000000000000000000000000..a85de227cfb46227d5bf954f87f25aa4d74463ea
GIT binary patch
literal 2450
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/omwn.png b/img/services-logo/omwn.png
new file mode 100644
index 0000000000000000000000000000000000000000..8102f3dc80e0af3fb2219c79827c88e449a0dbfb
GIT binary patch
literal 11160
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/plwordnet.png b/img/services-logo/plwordnet.png
new file mode 100644
index 0000000000000000000000000000000000000000..cdd1b9f42f1d89618091370fd8e87d08c60c782b
GIT binary patch
literal 4134
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/spxvi.png b/img/services-logo/spxvi.png
new file mode 100644
index 0000000000000000000000000000000000000000..4af55b55b4a05dc0882d85b2bc85dfe0ed64dd72
GIT binary patch
literal 4685
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/spxvii.png b/img/services-logo/spxvii.png
new file mode 100644
index 0000000000000000000000000000000000000000..72d007dc38bb4fd5af39880b63ddf13fcb1ff419
GIT binary patch
literal 2114
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/walenty.png b/img/services-logo/walenty.png
new file mode 100644
index 0000000000000000000000000000000000000000..44259c2383169e58a53df6492b747ee65f20061a
GIT binary patch
literal 3447
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

literal 0
HcmV?d00001

diff --git a/img/services-logo/word2vec.png b/img/services-logo/word2vec.png
new file mode 100644
index 0000000000000000000000000000000000000000..29f9e75a49c518abb9a93010dbc606653ce34db5
GIT binary patch
literal 5163
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

literal 0
HcmV?d00001

diff --git a/index.shtml b/index.shtml
new file mode 100644
index 0000000..77c9730
--- /dev/null
+++ b/index.shtml
@@ -0,0 +1,239 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <link rel="shortcut icon" href="/img/favicon.ico" />
+
+  <title>Platforma leksykalna</title>
+
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js"></script>
+  <script src="/js/table/bootstrap-table.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.1/bootstrap-table.min.css" />
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+
+  <link rel="stylesheet" href="/word2vec/jqcloud.css">
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Saira+Semi+Condensed:400,700&amp;subset=latin-ext">
+  <link rel="stylesheet" href="/css/modal.css">
+  <link rel="stylesheet" href="/css/graph-creator.css">
+  <link rel="stylesheet" href="/css/style.css">
+  <link rel="stylesheet" href="/plwordnet/plwordnet.css">
+  <link rel="stylesheet" href="/spxvii/spxvii.css">
+  <link rel="stylesheet" href="/walenty/walenty.css">
+  <link rel="stylesheet" href="/morfeusz/morfeusz.css">
+  <link rel="stylesheet" href="/css/nav.css" />
+  <link rel="stylesheet" href="/css/selectmenu-nav.css" />
+  <link rel="stylesheet" href="/css/languages.css" />
+  <link rel="stylesheet" 
+          href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" 
+          integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" 
+          crossorigin="anonymous">
+
+</head>
+<body class="pl" lang="pl">
+
+  <div id="about-us-modal" class="modal fade"></div>
+  <div id="about-app-modal" class="modal fade"></div>
+
+  <!-- MENU -->
+  <nav id="nav" class="navbar navbar-inverse navbar-static-top navbar-main" role="navigation">
+    <div class="navbar-header">
+      <button id="hamburger" class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#navbar-collapse-1" >
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+    </div>
+
+    <div id="navbar-collapse-1" id="app_head" class="collapse navbar-collapse">
+        <a class="logo" href="http://clarin-pl.eu" title="Clarin">
+          <img src="/img/logo-small.png" alt="Clarin logo" />
+        </a>
+        <ul class="nav navbar-nav">
+          <!-- <li class="li-animation">
+            <a lang="pl" target="_blank" href="http://ws.clarin-pl.eu"><span>Indeks usług</span></a>
+            <a lang="en" target="_blank" href="http://ws.clarin-pl.eu/?en"><span>Service index</span></a>
+          </li> -->
+          <li id="about-app" class="li-animation" data-toggle="modal" data-target="#about-app-modal"><a href="#"><span lang="pl">O aplikacji</span><span lang="en">About app</span></a></li>
+          <li id="about-info" class="li-animation" data-toggle="modal" data-target="#about-us-modal"><a href="#"><span lang="pl">O nas</span><span lang="en">About</span></a></li>
+          <li class="li-animation">
+            <select id="languages" name="languages">
+              <option value="lang-pl" data-class="pl">PL</option>
+              <option value="lang-en" data-class="en">EN</option>
+            </select>
+          </li>
+        </ul>
+    </div>
+  </nav>
+
+  <!-- MODAL -->
+  <div class="modal fade" id="infoModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+    <div class="modal-dialog">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+          <h4 class="modal-title" id="info_modal_title">
+            <span lang="pl">Lista</span>
+            <span lang="en">List</span>
+          </h4>
+        </div>
+        <div id="info_modal_body" class="modal-body">
+          loading...
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <!-- OPTIONS -->
+  <section id="options">
+    <div id="add-margin-on-nav-expand" class="container-fluid container-fluid-nav-adjust">
+      <div class="row">
+        <form>
+          <h1 lang="pl">Opcje</h1>
+          <h1 lang="en">Options</h1>
+          <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 options-box">
+            <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
+              <p lang="pl">Rodzaj elementu</p>
+              <p lang="en">Type of element</p>
+            </div>
+            <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
+              <div class="select-wrapper">
+                <select id="type" class="form-control"></select>
+              </div>
+            </div>
+          </div>
+
+          <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 options-box">
+            <div id="lang-box">
+              <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
+                <p lang="pl">Język</p>
+                <p lang="en">Language</p>
+              </div>
+              <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
+                <div class="select-wrapper">
+                  <select id="lang" class="form-control"></select>
+                </div>
+              </div>
+            </div>
+            <div id="synset-box">
+              <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
+                <p lang="pl">Rodzaj synsetu</p>
+                <p lang="en">Type of synset</p>
+              </div>
+              <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
+                <div class="select-wrapper">
+                  <select id="type-of-synset" class="form-control"></select>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 options-box">
+            <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
+              <p>Element</p>
+            </div>
+            <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
+              <input id="phrase" class="form-control" value="dom" placeholder="" type="text" size="18" autocomplete="off">
+            </div>
+          </div>
+
+          <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 options-box">
+            <button id="startlex" class="btn btn-success" type="submit">
+              <span lang="pl">Wyszukaj</span>
+              <span lang="en">Search</span>
+            </button>
+          </div>
+        </form>
+      </div>
+    </div>
+  </section>
+
+  <div class="decoration"></div>
+
+  <!-- <div class="my-tooltip">Hover over tooltip
+    <span class="my-tooltiptext">Tooltip text</span>
+  </div> -->
+
+  <div id="tooltip-test">Some content</div>
+
+  <div id="lexp_results"></div>
+
+  <div id="debug"></div>
+
+  <!-- CONTENT -->
+  <div id="handlebars_resource_index" class="invisible" type="text/x-handlebars-template">
+    <div id="lexpresource_{{pl.idn}}" class="expand-content">
+      <div lang="pl" class="copyright img-container" rel='tooltip' data-delay='{"show":"0", "hide":"2000"}' data-original-title='{{pl.copyright}}'>
+        <img class="img-responsive" src="/img/services-logo/{{pl.imgSrc}}" alt="{{pl.imgSrc}}" />
+      </div>
+      <div lang="en" class="copyright img-container" rel='tooltip' data-delay='{"show":"0", "hide":"2000"}' data-original-title='{{en.copyright}}'>
+        <img class="img-responsive" src="/img/services-logo/{{en.imgSrc}}" alt="{{en.imgSrc}}" />
+      </div>
+      <span id="arrow-change-lexpresources_{{pl.idn}}" class="arrow glyphicon glyphicon-chevron-down"></span>
+      <h1 lang="pl" title="{{pl.fullName}}" data-toggle="tooltip" data-placement="top">{{pl.name}}</h1>
+      <h1 lang="en" title="{{en.fullName}}" data-toggle="tooltip" data-placement="top">{{en.name}}</h1>
+      <span lang="pl" class="help glyphicon glyphicon-question-sign" style="cursor: pointer;" title="Informacje o zasobie" type="button" data-toggle="modal" data-target="#infoModal" onclick="Lexp.lexpResources['{{pl.idn}}'].showInfo()"></span>
+      <span lang="en" class="help glyphicon glyphicon-question-sign" style="cursor: pointer;" title="Information about a resource" type="button" data-toggle="modal" data-target="#infoModal" onclick="Lexp.lexpResources['{{pl.idn}}'].showInfo()"></span>
+      <a lang="pl" target="{{pl.idn}}" href="{{pl.url}}" style="color: inherit;">
+        <span data-toggle="tooltip" data-placement="top" title="Bezpośredni link do zasobu" class="source glyphicon glyphicon glyphicon-link"></span>
+      </a>
+      <a lang="en" target="{{pl.idn}}" href="{{en.url}}" style="color: inherit;">
+        <span data-toggle="tooltip" data-placement="top" title="Direct link for resource" class="source glyphicon glyphicon glyphicon-link"></span>
+      </a>
+    </div>
+
+    <!-- MAIN CONTENT -->
+    <div id="lexpelement_{{pl.idn}}"></div>
+
+    <div class="decoration-box">
+      <div class="decoration"></div>
+    </div>
+  </div>
+
+  <footer>
+    <p lang="pl">webserwisy&#64;clarin-pl.eu</p>
+    <p lang="en">webservices&#64;clarin-pl.eu</p>
+  </footer>
+
+  <script src="/js/ace/ace.js"></script>
+  <script src="/js/d3.v4.min.js"></script>
+  <script src="/js/graph-creator.js"></script>
+
+  <script src="/js/languageSettings.js"></script>
+  <script src="/js/populate-selects.js"></script>
+  <script src="/js/selects/basic-options.js"></script>
+  <script src="/js/nav-expand.js"></script>
+  <script src="/js/about-app-modal.js"></script>
+  <script src="/js/about-us-modal.js"></script>
+
+  <script src="/js/element.js"></script>
+  <script src="/js/resource.js"></script>
+  <script src="/js/lexp.js"></script>
+  <script src="/js/options.js"></script>
+
+  <script src="/omwn/omwn.js"></script>
+  <script src="/hask/hask.js"></script>
+  <script src="/plwordnet/plwordnet.js"></script>
+  <script src="/morfeusz/morfeusz.js"></script>
+  <script src="/eswil/eswil.js"></script>
+  <script src="/spxvi/js/spxvi.js"></script>
+  <script src="/spxvii/spxvii.js"></script>
+  <script src="/walenty/walenty.js"></script>
+  <script src="/word2vec/word2vec.js"></script>
+  <script src="/word2vec/jqcloud-1.0.4.js"></script>
+
+  <script>
+    createAboutUsModal();
+    createAboutAppModal();
+    Lexp.init("#lexp_results");
+  </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/js/about-app-modal.js b/js/about-app-modal.js
new file mode 100644
index 0000000..4759f17
--- /dev/null
+++ b/js/about-app-modal.js
@@ -0,0 +1,36 @@
+var aboutAppHeaderPL = "Opis aplikacji";
+var aboutAppHeaderEN = "Description of application";
+
+
+var aboutAppCitation = "Dodać opis"; 
+
+var aboutAppDescriptionPL = "Usługa powstała w ramach projektu <a href='https://clarin-pl.eu' target='_blank'>CLARIN-PL</a>.";
+var aboutAppDescriptionEN = "Service developed with a framework of <a href='https://clarin-pl.eu'  target='_blank'>CLARIN-PL</a> project.";
+
+var aboutAppCitation = "<span id='extra_citation'></span>"+
+"Piasecki, M., Walkowiak, T., Rudnicka, E., & Bond, F. <a href='https://doi.org/10.11649/cs.1811'  target='_blank'>Lexical platform – the first step towards user-centred integration of lexical resources</a>. Cognitive Studies | Études cognitives, 2018(18)<br\>";
+
+var aboutAppFooterPL = "Kontakt: webserwisy&#64;clarin-pl.eu";
+var aboutAppFooterEN = "Contact: webservices&#64;clarin-pl.eu";
+
+function createAboutAppModal() {
+  $('#about-app-modal').append(
+    '<div class="modal-content modal-content-nav">' +
+      '<div class="modal-header">' +
+        '<span data-dismiss="modal" class="close" id="aboutAppClose">&times;</span>' +
+        '<h2 lang="pl">' + aboutAppHeaderPL + '</h2>' +
+        '<h2 lang="en">' + aboutAppHeaderEN + '</h2>' +
+      '</div>' +
+      '<div class="modal-body">' +
+        '<p lang="pl" class="description">' + aboutAppDescriptionPL + '</p>' +
+        '<p lang="en" class="description">' + aboutAppDescriptionEN + '</p><br>' +
+        '<p lang="pl" class="author"><strong>Publikacje:<br></strong>' + aboutAppCitation + '</p>' +
+        '<p lang="en" class="author"><strong>Publication:<br></strong>' + aboutAppCitation + '</p>' +
+      '</div>' +
+  '<div class="modal-footer">' +
+        '<p lang="pl">' + aboutAppFooterPL+ '</p>' +
+        '<p lang="en">' + aboutAppFooterEN + '</p>' +
+      '</div>' +
+    '</div>'
+  );
+}
\ No newline at end of file
diff --git a/js/about-us-modal.js b/js/about-us-modal.js
new file mode 100644
index 0000000..d3ffbbe
--- /dev/null
+++ b/js/about-us-modal.js
@@ -0,0 +1,37 @@
+var aboutUsHeaderPL = "Autorzy usługi";
+var aboutUsHeaderEN = "Authors of service";
+var aboutUsprogrammers = "";
+var aboutUsdescription = "<br/>Koordynator projektu CLARIN-PL: <i>Maciej Piasecki</i> <br/>"+
+"Koordynator serwisu lexp.clarin-pl.eu: <i>Tomasz Walkowiak</i> <br/>"+
+"Programiści: <i>Tomasz Walkowiak, Łukasz Królak</i>";
+var aboutUsdescriptionEN =  "<br/>CLARIN-PL co-ordinator: <i>Maciej Piasecki</i> <br/>"+
+"Service co-ordinator: <i>Tomasz Walkowiak</i> <br/>"+
+"Concept: <i>Maciej Piasecki, Tomasz Walkowiak, Ewa Rudnicka, Francis Bond</i> <br/>"+
+"Coders: <i>Tomasz Walkowiak, Łukasz Królak</i>";
+
+var aboutUsCitation = "Dodać opis";
+
+var aboutUsFooterPL = "Kontakt: webserwisy&#64;clarin-pl.eu";
+var aboutUsFooterEN = "Contact: webservices&#64;clarin-pl.eu";
+
+function createAboutUsModal() {
+  $('#about-us-modal').append(
+    '<div class="modal-content modal-content-nav">' +
+      '<div class="modal-header">' +
+        '<span data-dismiss="modal" class="close" id="close">&times;</span>' +
+        '<h2 lang="pl">' + aboutUsHeaderPL + '</h2>' +
+        '<h2 lang="en">' + aboutUsHeaderEN + '</h2>' +
+      '</div>' +
+      '<div class="modal-body">' +
+        '<p lang="pl" class="author">' + aboutUsdescription + '</p>' +
+        '<p lang="en" class="description">' + aboutUsdescriptionEN + '</p><br>' +
+        //'<p lang="pl" class="author"><strong>Publikacje:<br></strong>' + aboutUsCitation + '</p>' +
+        //'<p lang="en" class="author"><strong>Publication:<br></strong>' + aboutUsCitation + '</p>' +
+      '</div>' +
+  '<div class="modal-footer">' +
+        '<p lang="pl">' + aboutUsFooterPL+ '</p>' +
+        '<p lang="en">' + aboutUsFooterEN + '</p>' +
+      '</div>' +
+    '</div>'
+  );
+}
\ No newline at end of file
diff --git a/js/ace/ace.js b/js/ace/ace.js
new file mode 100644
index 0000000..65ffc16
--- /dev/null
+++ b/js/ace/ace.js
@@ -0,0 +1,11 @@
+(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use strict";var r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className||"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,i,s){s=s||document;if(i&&t.hasCssString(i,s))return null;var o;s.createStyleSheet?(o=s.createStyleSheet(),o.cssText=n,i&&(o.owningElement.id=i)):(o=s.createElementNS?s.createElementNS(r,"style"):s.createElement("style"),o.appendChild(s.createTextNode(n)),i&&(o.id=i),t.getDocumentHead(s).appendChild(o))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight};if(typeof document=="undefined")return;window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,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","-13":"NumpadEnter",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:".",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t,n){var o=s(t);if(!i.isMac&&u){if(u[91]||u[92])o|=8;if(u.altGr){if((3&o)==3)return;u.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)u[n]==1&&(a=t.timeStamp);else if(n===18&&o===3&&f===2){var l=t.timestamp-a;l<50&&(u.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),o&8&&(n===91||n===93)&&(n=-1);if(!o&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,o,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&o&8){e(t,o,n);if(t.defaultPrevented)return;o&=-9}return!!o||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,o,n):!1}var r=e("./keys"),i=e("./useragent");t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}),i.isOldIE&&t.addListener(e,"dblclick",function(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)})};var s=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[s(e)]};var u=null,a=0;t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var s=null;r(e,"keydown",function(e){s=e.keyCode}),r(e,"keypress",function(e){return o(n,e,s)})}else{var a=null;r(e,"keydown",function(e){u[e.keyCode]=(u[e.keyCode]||0)+1;var t=o(n,e,e.keyCode);return a=e.defaultPrevented,t}),r(e,"keypress",function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),r(e,"keyup",function(e){u[e.keyCode]=null}),u||(u=Object.create(null),r(window,"focus",function(e){u=Object.create(null)}))}};if(window.postMessage&&!i.isOldIE){var f=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+f;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement("textarea");n.className="ace_text-input",i.isTouchPad&&n.setAttribute("x-palm-disable-auto-cap",!0),n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",i.isOldIE&&(n.style.top="-1000px"),e.insertBefore(n,e.firstChild);var f="",l=!1,c=!1,h=!1,p="",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,"blur",function(e){t.onBlur(e),v=!1}),r.addListener(n,"focus",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){n.style.position="fixed",n.style.top="-1000px",n.focus(),setTimeout(function(){n.style.position=""},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart("character",e),n.moveEnd("character",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,"propertychange",x);var N={13:1,27:1};r.addListener(n,"keyup",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,"keydown",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t){var n=e.clipboardData||window.clipboardData;if(!n||u)return;var r=a?"Text":"text/plain";return t?n.setData(r,t)!==!1:n.getData(r)},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s=="string"?(s&&t.onPaste(s),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value="",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",C),r.addListener(n,"input",O),r.addListener(n,"cut",D),r.addListener(n,"copy",P),r.addListener(n,"paste",H),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),t.selection.isEmpty()||(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\x01/g,"");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.lastValue=e;if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var i=setTimeout(function(){i=null;var e=n.value.replace(/\x01/g,"");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return i&&clearTimeout(i),n=n.replace(/\x01/g,""),n==r.lastValue?"":(r.lastValue&&i&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range)},I=o.delayedCall(j,50);r.addListener(n,"compositionstart",B),i.isGecko?r.addListener(n,"text",function(){I.schedule()}):(r.addListener(n,"keyup",function(){I.schedule()}),r.addListener(n,"keydown",function(){I.schedule()})),r.addListener(n,"compositionend",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(n,"contextmenu",U)};t.TextInput=f}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,o&&r.selection.moveToPosition(n),r.$blockScrolling--,r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=n.$cells[t.session.documentToScreenRow(r,0)].element,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.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(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function f(r){a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;if(!u.document)return"";var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),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_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){(!document.hasFocus||!document.hasFocus())&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener(u,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(r.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),r.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),i.isIE&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n))),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",function(t){return e.focus(),r.preventDefault(t)}),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){var t=this.$callKeyboardHandlers(-1,e);t||this.$editor.commands.exec("insertstring",this.$editor,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),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(e,t){this.anchor.setPosition(e,t),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(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},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(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+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 e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(" ").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e.call(null,this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e.isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next!="string"?s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState):s.next.indexOf(t)!==0&&(s.next=t+s.next)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u];!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var f=a.next||a.push;if(f&&Array.isArray(f)){var l=a.stateName;l||(l=a.token,typeof l!="string"&&(l=l[0]||""),r[l]&&(l+=n++)),r[l]=f,a.next=l,i(l)}else f=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var c in a.rules)r[c]?r[c].push&&r[c].push.apply(r[c],a.rules[c]):r[c]=a.rules[c];if(a.include||typeof a=="string")var h=a.include||a,p=r[h];else Array.isArray(a)&&(p=a);if(p){var d=[u,1].concat(p);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--,p=null}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";function r(e){var n=/\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,"\\u$&")}t.packages={},r({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"})}),ace.define("ace/token_iterator",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)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;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-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 e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour").Behaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i,this.$behaviour=new s};(function(){this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!="string"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(l.prototype),t.Mode=l}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc;while(n.lines[t])t++;var s=t,o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||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.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.range,n=t.start.row,r=t.end.row-n;if(r===0)this.lines[n]=null;else if(e.action=="removeText"||e.action=="removeLines")this.lines.splice(n,r+1,null),this.states.splice(n,r+1,null);else{var i=Array(r+1);i.unshift(n,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(n,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push("  "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.call(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.data.range;if(e.data.action[0]=="i")var n=t.start,r=t.end;else var r=t.start,n=t.end;var i=n.row,s=r.row,o=s-i,u=-n.column+r.column,a=this.ranges;for(var f=0,l=a.length;f<l;f++){var c=a[f];if(c.end.row<i)continue;if(c.start.row>i)break;c.start.row==i&&c.start.column>=n.column&&(c.start.column!=n.column||!this.$insertRight)&&(c.start.column+=u,c.start.row+=o);if(c.end.row==i&&c.end.column>=n.column){if(c.end.column==n.column&&this.$insertRight)continue;c.end.column==n.column&&u>0&&f<l-1&&c.end.column>c.start.column&&c.end.column==a[f+1].start.column&&(c.end.column-=u),c.end.column+=u,c.end.row+=o}}if(o!=0&&f<l)for(;f<l;f++){var c=a[f];c.start.row+=o,c.end.row+=o}}}).call(s.prototype),t.RangeList=s}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e("../range").Range,i=e("../range_list").RangeList,s=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._emit("changeFold",{data:o,action:"add"}),o}throw new Error("The range has to be at least 2 characters width")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._emit("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\..*/,"\\."));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._emit("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s){t.children||t.all?this.removeFold(s):this.expandFold(s);return}var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range)){this.removeFold(s);return}}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.data,n=t.range,r=n.start.row,i=n.end.row-r;if(i===0)this.foldWidgets[r]=null;else if(t.action=="removeText"||t.action=="removeLines")this.foldWidgets.splice(r,i+1,null);else{var s=Array(i+1);s.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,s)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end|start|begin)\b/,"")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:end|start|begin)\b/,"")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),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(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./config"),o=e("./lib/event_emitter").EventEmitter,u=e("./selection").Selection,a=e("./mode/text").Mode,f=e("./range").Range,l=e("./document").Document,c=e("./background_tokenizer").BackgroundTokenizer,h=e("./search_highlight").SearchHighlight,p=function(e,t){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);if(typeof e!="object"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal("session",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-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 t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){var t=e.data;this.$modified=!0,this.$resetRowCache(t.range.start.row);var n=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!t.ignore&&(this.$deltasDoc.push(t),n&&n.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:n}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(t),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.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()?i.stringRepeat(" ",this.getTabSize()):"	"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group=="doc"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){var n=e.action==="insertText"||e.action==="insertLines";return t?!n:n}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.range.start,i.range.end),u=!0):(s=f.fromPoints(i.range.start,i.range.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.range.start,s.compare(o.row,o.column)==-1&&s.setStart(i.range.start),o=i.range.end,s.compare(o.row,o.column)==1&&s.setEnd(i.range.end),u=!0):(o=i.range.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.range.start,i.range.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.insert({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)=="	"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeLines(e,t);return this.doc.insertLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n,r=e.data.action,i=e.data.range.start.row,s=e.data.range.end.row,o=e.data.range.start,u=e.data.range.end,a=null;r.indexOf("Lines")!=-1?(r=="insertLines"?s=i+e.data.lines.length:s=i,n=e.data.lines?e.data.lines.length:s-i):n=s-i,this.$updating=!0;if(n!=0)if(r.indexOf("remove")!=-1){this[t?"$wrapData":"$rowLengthCache"].splice(i,n);var f=this.$foldData;a=this.getFoldsInRange(e.data.range),this.removeFolds(a);var l=this.getFoldLine(u.row),c=0;if(l){l.addRemoveChars(u.row,u.column,o.column-u.column),l.shiftRow(-n);var h=this.getFoldLine(i);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=u.row&&l.shiftRow(-n)}s=i}else{var p=Array(n);p.unshift(i,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(i),c=0;if(l){var v=l.range.compareInside(o.row,o.column);v==0?(l=l.split(o.row,o.column),l&&(l.shiftRow(n),l.addRemoveChars(s,0,u.column-o.column))):v==-1&&(l.addRemoveChars(i,0,u.column-o.column),l.shiftRow(n)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i&&l.shiftRow(n)}}else{n=Math.abs(e.data.range.start.column-e.data.range.end.column),r.indexOf("remove")!=-1&&(a=this.getFoldsInRange(e.data.range),this.removeFolds(a),n=-n);var l=this.getFoldLine(i);l&&l.addRemoveChars(i,o.column,n)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(i,s):this.$updateRowLengthCache(i,s),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r){function c(t){var n=e.slice(o,t),r=n.length;n.join("").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),a+=r,i.push(a),o=t}if(e.length==0)return[];var i=[],s=e.length,o=0,a=0,f=this.$wrapAsCode;while(s-o>r){var h=o+r;if(e[h-1]>=p&&e[h]>=p){c(h);continue}if(e[h]==n||e[h]==u){for(h;h!=o-1;h--)if(e[h]==n)break;if(h>o){c(h);continue}h=o+r;for(h;h<e.length;h++)if(e[h]!=u)break;if(h==e.length)break;c(h);continue}var d=Math.max(h-(f?10:r-(r>>2)),o-1);while(h>d&&e[h]<n)h--;if(f){while(h>d&&e[h]<n)h--;while(h>d&&e[h]==l)h--}else while(h>d&&e[h]<p)h--;if(h>d){c(++h);continue}h=o+r,e[h]==t&&h--,c(h)}return i},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}if(this.$useWrapMode){var v=this.$wrapData[r];if(v){var m=Math.floor(e-o);s=v[m],m>0&&v.length&&(i=v[m-1]||v[v.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);if(this.$useWrapMode){var v=this.$wrapData[i];if(v){var m=0;while(d.length>=v[m])r++,m++;d=d.substring(v[m-1]||0,d.length)}}return{row:r,column:this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n="\\b"+n+"\\b");var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==""?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?"end":"start"]:e.selection.getRange()),s.start&&(s=s[r!=n?"end":"start"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&(e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;t?!r[e]||this.$singleCommand?r[e]=t:(Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],n||t.isDefault?r[e].unshift(t):r[e].push(t)):delete r[e]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};return e.$keyChain&&r>0&&(e.$keyChain=""),{command:o}}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._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(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","Ctrl-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"}]}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","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","ace/token_iterator"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?"mac":"win",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._signal("editor",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling&&this.$blockScrolling--;if(t&&t.scrollIntoView){switch(t.scrollIntoView){case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}t.scrollIntoView=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;var t=this.session;if(t){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 n=this.session.getSelection();n.removeEventListener("changeCursor",this.$onCursorChange),n.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.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=e.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.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length);t.$tagHighlight&&l.compareRange(t.$backMarkers[t.$tagHighlight].range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=e.data,n=t.range,r;n.start.row==n.end.row&&t.action!="insertLines"&&t.action!="removeLines"?r=n.end.row:r=Infinity,this.renderer.updateLines(n.start.row,r,this.session.$useWrapMode),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.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||(g.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},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.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e){if(this.$readOnly)return;var t={text:e};this._signal("paste",t),e=t.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(e);else{var n=e.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,e);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}this.renderer.scrollCursorIntoView()},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e=="	"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),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 e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l="	"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"	")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows(),t;e.first===0||e.last+1<this.session.getLength()?t=new p(e.first,0,e.last+1,0):t=new p(e.first-1,this.session.getLine(e.first-1).length,e.last,this.session.getLine(e.last).length),this.session.remove(t),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},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(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.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(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s&&s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},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._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",s),this.renderer.removeEventListener("afterRender",u),this.renderer.removeEventListener("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(t,e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0}}).call(r.prototype),t.UndoManager=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.data,n=t.range,r=n.start.row,i=n.end.row-r;if(i!==0)if(t.action=="removeText"||t.action=="removeLines")this.$annotations.splice(r,i+1,null);else{var s=new Array(i+1);s.unshift(r,1),this.$annotations.splice.apply(this.$annotations,s)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&v<s.end.row?m+=" ace_closed":m+=" ace_open",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+"px";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+"px";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,n,i,s){var o=t.start.row,u=new r(o,t.start.column,o,this.session.getScreenLastRowColumn(o));this.drawSingleLineMarker(e,u,n+" ace_start",i,1,s),o=t.end.row,u=new r(o,0,o,t.end.column),this.drawSingleLineMarker(e,u,n,i,0,s);for(o=t.start.row+1;o<t.end.row;o++)u.start.row=o,u.end.row=o,u.end.column=this.session.getScreenLastRowColumn(o),this.drawSingleLineMarker(e,u,n,i,1,s)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"",e.push("<div class='",n," ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",a,"px;",i,"'></div>"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",f,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<0)return;u=this.$getTop(t.start.row+1,r),e.push("<div class='",n,"' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",f,"px;",s||"","'></div>")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(s.prototype),t.Marker=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2192",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+this.TAB_CHAR+s.stringRepeat("\u00a0",n-1)+"</span>"):t.push(s.stringRepeat("\u00a0",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=this.TAB_CHAR+s.stringRepeat("\u00a0",this.tabSize-1)}else var u=s.stringRepeat("\u00a0",this.tabSize),a=u;this.$tabStrings[" "]="<span class='"+r+i+"'>"+u+"</span>",this.$tabStrings["	"]="<span class='"+r+o+"'>"+a+"</span>"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(i),"px'>"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("</div>"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\xad\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,u=function(e,n,r,o,u){if(n)return i.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(i.SPACE_CHAR,e.length)+"</span>":s.stringRepeat("\u00a0",e.length);if(e=="&")return"&#38;";if(e=="<")return"&#60;";if(e=="	"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,"<span class='"+f+"' style='width:"+i.config.characterWidth*2+"px'>"+l+"</span>"}return r?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]=="	"?(e.push(s.stringRepeat(this.$tabStrings["	"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a<t.length;a++){var f=t[a],l=f.value;if(a==0&&this.displayIndentGuides){i=l.length,l=this.renderIndentGuide(e,l,o);if(!l)continue;i-=l.length}if(i+l.length<o)u=this.$renderToken(e,u,f,l),i+=l.length;else{while(i+l.length>=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},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(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i="opacity"in this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateVisibility.bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=(e?this.$updateOpacity:this.$updateVisibility).bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(a,u),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(f,u),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e,t){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&this.$pollSizeChangesTimer},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.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,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;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;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {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;border-left: 2px solid}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {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;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_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;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.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: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);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);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.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 {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 {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-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;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}';i.importCssString(m,"ace_editor");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container,500),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._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,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},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(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&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)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0),r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){this.$maxLines&&this.lineHeight>1&&this.$autosize();var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.scrollTop%this.lineHeight,o=t.scrollerHeight+this.lineHeight,u=this.$getLongestLine(),a=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-u-2*this.$padding<0),f=this.$horizScroll!==a;f&&(this.$horizScroll=a,this.scrollBarH.setVisible(a));var l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l,this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,i-t.scrollerHeight+this.scrollMargin.bottom))),this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,u+2*this.$padding-t.scrollerWidth+this.scrollMargin.right)));var c=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop),h=this.$vScroll!==c;h&&(this.$vScroll=c,this.scrollBarV.setVisible(c));var p=Math.ceil(o/this.lineHeight)-1,d=Math.max(0,Math.round((this.scrollTop-s)/this.lineHeight)),v=d+p,m,g,y=this.lineHeight;d=e.screenToDocumentRow(d,0);var b=e.getFoldLine(d);b&&(d=b.start.row),m=e.documentToScreenRow(d,0),g=e.getRowLength(d)*y,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),o=t.scrollerHeight+e.getRowLength(v)*y+g,s=this.scrollTop-m*y;var w=0;this.layerConfig.width!=u&&(w=this.CHANGE_H_SCROLL);if(f||h)w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),h&&(u=this.$getLongestLine());return this.layerConfig={width:u,padding:this.$padding,firstRow:d,firstRowScreen:m,lastRow:v,lineHeight:y,characterWidth:this.characterWidth,minHeight:o,maxHeight:i,offset:s,gutterOffset:Math.max(0,Math.ceil((s+t.height-t.scrollerHeight)/y)),height:this.$size.scrollerHeight},w},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*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(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),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(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},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(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&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(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue?this.deltaQueue.push(e.data):(this.deltaQueue=[e.data],setTimeout(this.$sendDeltaQueue,0))},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>20&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session,i=this.$pos;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(i.row,i.column),this.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new r(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(i){e.removeMarker(n.markerId),n.markerId=e.addMarker(new r(i.value.row,i.value.column,i.value.row,i.value.column+t.length),t.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){var t=e.data,n=t.range;if(n.start.row!==n.end.row)return;if(n.start.row!==this.pos.row)return;if(this.$updating)return;this.$updating=!0;var i=t.action==="insertText"?n.end.column-n.start.column:n.start.column-n.end.column;if(n.start.column>=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var s=n.start.column-this.pos.column;this.length+=i;if(!this.session.$fromUndo){if(t.action==="insertText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column<u.column&&(a.column+=i),this.doc.insert(a,t.text)}else if(t.action==="removeText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column<u.column&&(a.column+=i),this.doc.remove(new r(a.row,a.column,a.row,a.column-i))}n.start.column===this.pos.column&&t.action==="insertText"?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-i);for(var e=0;e<this.others.length;e++){var t=this.others[e],r={row:t.row,column:t.column-i};t.row===n.start.row&&n.start.column<t.column&&(r.column+=i),t.setPosition(r.row,r.column)}}.bind(this),0):n.start.column===this.pos.column&&t.action==="removeText"&&setTimeout(function(){for(var e=0;e<this.others.length;e++){var t=this.others[e];t.row===n.start.row&&n.start.column<t.column&&t.setPosition(t.row,t.column-i)}}.bind(this),0)}this.pos._emit("change",{value:this.pos});for(var o=0;o<this.others.length;o++)this.others[o]._emit("change",{value:this.others[o]})}this.$updating=!1},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},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 e=0;e<this.others.length;e++)this.others[e].detach();this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)throw Error("Canceling placeholders only supported with undo manager attached to session.");var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S="add":n&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0],l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readonly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readonly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readonly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readonly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readonly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readonly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readonly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readonly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readonly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),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","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey)?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.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(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.doc.removeLines(u,f);p=this.$reAlignText(p,l),this.session.doc.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.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 {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: 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_heading {color: rgb(12, 7, 255);}.ace-tm .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 r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.data,r=n.range,i=r.start.row,s=r.end.row-i;if(s!==0)if(n.action=="removeText"||n.action=="removeLines"){var o=t.splice(i+1,s);o.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var u=new Array(s);u.unshift(i,0),t.splice.apply(t,u),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){e&&(t=!1,e.row=n)}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength())),this.session.lineWidgets[e.row]=e;var t=this.editor.renderer;return e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),e},this.removeLineWidget=function(e){e._inDocument=!1,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}this.session.lineWidgets&&(this.session.lineWidgets[e.row]=undefined),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];o._inDocument||(o._inDocument=!0,t.container.appendChild(o.el)),o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.lineWidgets&&n.lineWidgets[o];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div")},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","")}),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/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else o=r.getInnerText(e),e.innerHTML="";var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u});
+            (function() {
+                ace.require(["ace/ace"], function(a) {
+                    a && a.config.init(true);
+                    if (!window.ace)
+                        window.ace = a;
+                    for (var key in a) if (a.hasOwnProperty(key))
+                        window.ace[key] = a[key];
+                });
+            })();
+        
\ No newline at end of file
diff --git a/js/ace/ext-beautify.js b/js/ace/ext-beautify.js
new file mode 100644
index 0000000..659262c
--- /dev/null
+++ b/js/ace/ext-beautify.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/beautify/php_rules",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";var r=e("ace/token_iterator").TokenIterator;t.newLines=[{type:"support.php_tag",value:"<?php"},{type:"support.php_tag",value:"<?"},{type:"support.php_tag",value:"?>"},{type:"paren.lparen",value:"{",indent:!0},{type:"paren.rparen",breakBefore:!0,value:"}",indent:!1},{type:"paren.rparen",breakBefore:!0,value:"})",indent:!1,dontBreak:!0},{type:"comment"},{type:"text",value:";"},{type:"text",value:":",context:"php"},{type:"keyword",value:"case",indent:!0,dontBreak:!0},{type:"keyword",value:"default",indent:!0,dontBreak:!0},{type:"keyword",value:"break",indent:!1,dontBreak:!0},{type:"punctuation.doctype.end",value:">"},{type:"meta.tag.punctuation.end",value:">"},{type:"meta.tag.punctuation.begin",value:"<",blockTag:!0,indent:!0,dontBreak:!0},{type:"meta.tag.punctuation.begin",value:"</",indent:!1,breakBefore:!0,dontBreak:!0},{type:"punctuation.operator",value:";"}],t.spaces=[{type:"xml-pe",prepend:!0},{type:"entity.other.attribute-name",prepend:!0},{type:"storage.type",value:"var",append:!0},{type:"storage.type",value:"function",append:!0},{type:"keyword.operator",value:"="},{type:"keyword",value:"as",prepend:!0,append:!0},{type:"keyword",value:"function",append:!0},{type:"support.function",next:/[^\(]/,append:!0},{type:"keyword",value:"or",append:!0,prepend:!0},{type:"keyword",value:"and",append:!0,prepend:!0},{type:"keyword",value:"case",append:!0},{type:"keyword.operator",value:"||",append:!0,prepend:!0},{type:"keyword.operator",value:"&&",append:!0,prepend:!0}],t.singleTags=["!doctype","area","base","br","hr","input","img","link","meta"],t.transform=function(e,n,r){var i=e.getCurrentToken(),s=t.newLines,o=t.spaces,u=t.singleTags,a="",f=0,l=!1,c,h,p={},d,v={},m=!1,g="";while(i!==null){console.log(i);if(!i){i=e.stepForward();continue}i.type=="support.php_tag"&&i.value!="?>"?r="php":i.type=="support.php_tag"&&i.value=="?>"?r="html":i.type=="meta.tag.name.style"&&r!="css"?r="css":i.type=="meta.tag.name.style"&&r=="css"?r="html":i.type=="meta.tag.name.script"&&r!="js"?r="js":i.type=="meta.tag.name.script"&&r=="js"&&(r="html"),v=e.stepForward(),v&&v.type.indexOf("meta.tag.name")==0&&(d=v.value),p.type=="support.php_tag"&&p.value=="<?="&&(l=!0),i.type=="meta.tag.name"&&(i.value=i.value.toLowerCase()),i.type=="text"&&(i.value=i.value.trim());if(!i.value){i=v;continue}g=i.value;for(var y in o)i.type==o[y].type&&(!o[y].value||i.value==o[y].value)&&v&&(!o[y].next||o[y].next.test(v.value))&&(o[y].prepend&&(g=" "+i.value),o[y].append&&(g+=" "));i.type.indexOf("meta.tag.name")==0&&(c=i.value),m=!1;for(y in s)if(i.type==s[y].type&&(!s[y].value||i.value==s[y].value)&&(!s[y].blockTag||u.indexOf(d)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!1&&f--;if(s[y].breakBefore&&(!s[y].prev||s[y].prev.test(p.value))){a+="\n",m=!0;for(y=0;y<f;y++)a+="	"}break}if(l===!1)for(y in s)if(p.type==s[y].type&&(!s[y].value||p.value==s[y].value)&&(!s[y].blockTag||u.indexOf(c)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!0&&f++;if(!s[y].dontBreak&&!m){a+="\n";for(y=0;y<f;y++)a+="	"}break}a+=g,p.type=="support.php_tag"&&p.value=="?>"&&(l=!1),h=c,p=i,i=v;if(i===null)break}return a}}),ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator","ace/ext/beautify/php_rules"],function(e,t,n){"use strict";var r=e("ace/token_iterator").TokenIterator,i=e("./beautify/php_rules").transform;t.beautify=function(e){var t=new r(e,0,0),n=t.getCurrentToken(),s=e.$modeId.split("/").pop(),o=i(t,s);e.doc.setValue(o)},t.commands=[{name:"beautify",exec:function(e){t.beautify(e.session)},bindKey:"Ctrl-Shift-B"}]});
+                (function() {
+                    ace.require(["ace/ext/beautify"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-chromevox.js b/js/ace/ext-chromevox.js
new file mode 100644
index 0000000..2101484
--- /dev/null
+++ b/js/ace/ext-chromevox.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/chromevox",["require","exports","module","ace/editor","ace/config"],function(e,t,n){function gt(){return typeof cvox!="undefined"&&cvox&&cvox.Api}function wt(e){if(gt())mt(e);else{yt++;if(yt>=bt)return;window.setTimeout(wt,500,e)}}var r={};r.SpeechProperty,r.Cursor,r.Token,r.Annotation;var i={rate:.8,pitch:.4,volume:.9},s={rate:1,pitch:.5,volume:.9},o={rate:.8,pitch:.8,volume:.9},u={rate:.8,pitch:.3,volume:.9},a={rate:.8,pitch:.7,volume:.9},f={rate:.8,pitch:.8,volume:.9},l={punctuationEcho:"none",relativePitch:-0.6},c="ALERT_NONMODAL",h="ALERT_MODAL",p="INVALID_KEYPRESS",d="insertMode",v="start",m=[{substr:";",newSubstr:" semicolon "},{substr:":",newSubstr:" colon "}],g={SPEAK_ANNOT:"annots",SPEAK_ALL_ANNOTS:"all_annots",TOGGLE_LOCATION:"toggle_location",SPEAK_MODE:"mode",SPEAK_ROW_COL:"row_col",TOGGLE_DISPLACEMENT:"toggle_displacement",FOCUS_TEXT:"focus_text"},y="CONTROL + SHIFT ";r.editor=null;var b=null,w={},E=!1,S=!1,x=!1,T=null,N={},C={},k=function(e){return y+String.fromCharCode(e)},L=function(){var e=r.editor.keyBinding.getKeyboardHandler();return e.$id==="ace/keyboard/vim"},A=function(e){return r.editor.getSession().getTokenAt(e.row,e.column+1)},O=function(e){return r.editor.getSession().getLine(e.row)},M=function(e){w[e.row]&&cvox.Api.playEarcon(c),E?(cvox.Api.stop(),W(e),R(A(e)),I(e.row,1)):I(e.row,0)},_=function(e){var t=O(e),n=t.substr(e.column-1);e.column===0&&(n=" "+t);var r=/^\W(\w+)/,i=r.exec(n);return i!==null},D={constant:{prop:i},entity:{prop:o},keyword:{prop:u},storage:{prop:a},variable:{prop:f},meta:{prop:s,replace:[{substr:"</",newSubstr:" closing tag "},{substr:"/>",newSubstr:" close tag "},{substr:"<",newSubstr:" tag start "},{substr:">",newSubstr:" tag end "}]}},P={prop:P},H=function(e,t){var n=e;for(var r=0;r<t.length;r++){var i=t[r],s=new RegExp(i.substr,"g");n=n.replace(s,i.newSubstr)}return n},B=function(e,t,n){var r={};r.value="",r.type=e[t].type;for(var i=t;i<n;i++)r.value+=e[i].value;return r},j=function(e){if(e.length<=1)return e;var t=[],n=0;for(var r=1;r<e.length;r++){var i=e[n],s=e[r];U(i)!==U(s)&&(t.push(B(e,n,r)),n=r)}return t.push(B(e,n,e.length)),t},F=function(e){var t=r.editor.getSession().getLine(e),n=/^\s*$/;return n.exec(t)!==null},I=function(e,t){var n=r.editor.getSession().getTokens(e);if(n.length===0||F(e)){cvox.Api.playEarcon("EDITABLE_TEXT");return}n=j(n);var i=n[0];n=n.filter(function(e){return e!==i}),z(i,t),n.forEach(R)},q=function(e){z(e,0)},R=function(e){z(e,1)},U=function(e){if(!e||!e.type)return;var t=e.type.split(".");if(t.length===0)return;var n=t[0],r=D[n];return r?r:P},z=function(e,t){var n=U(e),r=H(e.value,m);n.replace&&(r=H(r,n.replace)),cvox.Api.speak(r,t,n.prop)},W=function(e){var t=O(e);cvox.Api.speak(t[e.column],1)},X=function(e,t){var n=O(t),r=n.substring(e.column,t.column);r=r.replace(/ /g," space "),cvox.Api.speak(r)},V=function(e,t){if(Math.abs(e.column-t.column)!==1){var n=O(t).length;if(t.column===0||t.column===n){I(t.row,0);return}if(_(t)){cvox.Api.stop(),R(A(t));return}}W(t)},$=function(e,t){r.editor.selection.isEmpty()?S?X(e,t):V(e,t):(X(e,t),cvox.Api.speak("selected",1))},J=function(e){if(x){x=!1;return}var t=r.editor.selection.getCursor();t.row!==b.row?M(t):$(b,t),b=t},K=function(e){r.editor.selection.isEmpty()&&cvox.Api.speak("unselected")},Q=function(e){var t=e.data;switch(t.action){case"removeText":cvox.Api.speak(t.text,0,l),x=!0;break;case"insertText":cvox.Api.speak(t.text,0),x=!0}},G=function(e){var t=e.row,n=e.column;return!w[t]||!w[t][n]},Y=function(e){w={};for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=n.column;w[r]||(w[r]={}),w[r][i]=n}},Z=function(e){var t=r.editor.getSession().getAnnotations(),n=t.filter(G);n.length>0&&cvox.Api.playEarcon(c),Y(t)},et=function(e){var t=e.type+" "+e.text+" on "+nt(e.row,e.column);t=t.replace(";","semicolon"),cvox.Api.speak(t,1)},tt=function(e){var t=w[e];for(var n in t)et(t[n])},nt=function(e,t){return"row "+(e+1)+" column "+(t+1)},rt=function(){cvox.Api.speak(nt(b.row,b.column))},it=function(){for(var e in w)tt(e)},st=function(){if(!L())return;switch(r.editor.keyBinding.$data.state){case d:cvox.Api.speak("Insert mode");break;case v:cvox.Api.speak("Command mode")}},ot=function(){E=!E,E?cvox.Api.speak("Speak location on row change enabled."):cvox.Api.speak("Speak location on row change disabled.")},ut=function(){S=!S,S?cvox.Api.speak("Speak displacement on column changes."):cvox.Api.speak("Speak current character or word on column changes.")},at=function(e){if(e.ctrlKey&&e.shiftKey){var t=N[e.keyCode];t&&t.func()}},ft=function(e,t){if(!L())return;var n=t.keyBinding.$data.state;if(n===T)return;switch(n){case d:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!0);break;case v:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!1)}T=n},lt=function(e){var t=e.detail.customCommand,n=C[t];n&&(n.func(),r.editor.focus())},ct=function(){var e=dt.map(function(e){return{desc:e.desc+k(e.keyCode),cmd:e.cmd}}),t=document.querySelector("body");t.setAttribute("contextMenuActions",JSON.stringify(e)),t.addEventListener("ATCustomEvent",lt,!0)},ht=function(e){e.match?I(b.row,0):cvox.Api.playEarcon(p)},pt=function(){r.editor.focus()},dt=[{keyCode:49,func:function(){tt(b.row)},cmd:g.SPEAK_ANNOT,desc:"Speak annotations on line"},{keyCode:50,func:it,cmd:g.SPEAK_ALL_ANNOTS,desc:"Speak all annotations"},{keyCode:51,func:st,cmd:g.SPEAK_MODE,desc:"Speak Vim mode"},{keyCode:52,func:ot,cmd:g.TOGGLE_LOCATION,desc:"Toggle speak row location"},{keyCode:53,func:rt,cmd:g.SPEAK_ROW_COL,desc:"Speak row and column"},{keyCode:54,func:ut,cmd:g.TOGGLE_DISPLACEMENT,desc:"Toggle speak displacement"},{keyCode:55,func:pt,cmd:g.FOCUS_TEXT,desc:"Focus text"}],vt=function(){r.editor=editor,editor.getSession().selection.on("changeCursor",J),editor.getSession().selection.on("changeSelection",K),editor.getSession().on("change",Q),editor.getSession().on("changeAnnotation",Z),editor.on("changeStatus",ft),editor.on("findSearchBox",ht),editor.container.addEventListener("keydown",at),b=editor.selection.getCursor()},mt=function(e){vt(),dt.forEach(function(e){N[e.keyCode]=e,C[e.cmd]=e}),e.on("focus",vt),L()&&cvox.Api.setKeyEcho(!1),ct()},yt=0,bt=15,Et=e("../editor").Editor;e("../config").defineOptions(Et.prototype,"editor",{enableChromevoxEnhancements:{set:function(e){e&&wt(this)},value:!0}})});
+                (function() {
+                    ace.require(["ace/ext/chromevox"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-elastic_tabstops_lite.js b/js/ace/ext-elastic_tabstops_lite.js
new file mode 100644
index 0000000..2d475d2
--- /dev/null
+++ b/js/ace/ext-elastic_tabstops_lite.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"],function(e,t,n){"use strict";var r=function(e){this.$editor=e;var t=this,n=[],r=!1;this.onAfterExec=function(){r=!1,t.processRows(n),n=[]},this.onExec=function(){r=!0},this.onChange=function(e){var t=e.data.range;r&&(n.indexOf(t.start.row)==-1&&n.push(t.start.row),t.end.row!=t.start.row&&n.push(t.end.row))}};(function(){this.processRows=function(e){this.$inChange=!0;var t=[];for(var n=0,r=e.length;n<r;n++){var i=e[n];if(t.indexOf(i)>-1)continue;var s=this.$findCellWidthsForBlock(i),o=this.$setBlockCellWidthsToMax(s.cellWidths),u=s.firstRow;for(var a=0,f=o.length;a<f;a++){var l=o[a];t.push(u),this.$adjustRow(u,l),u++}}this.$inChange=!1},this.$findCellWidthsForBlock=function(e){var t=[],n,r=e;while(r>=0){n=this.$cellWidthsForRow(r);if(n.length==0)break;t.unshift(n),r--}var i=r+1;r=e;var s=this.$editor.session.getLength();while(r<s-1){r++,n=this.$cellWidthsForRow(r);if(n.length==0)break;t.push(n)}return{cellWidths:t,firstRow:i}},this.$cellWidthsForRow=function(e){var t=this.$selectionColumnsForRow(e),n=[-1].concat(this.$tabsForRow(e)),r=n.map(function(e){return 0}).slice(1),i=this.$editor.session.getLine(e);for(var s=0,o=n.length-1;s<o;s++){var u=n[s]+1,a=n[s+1],f=this.$rightmostSelectionInCell(t,a),l=i.substring(u,a);r[s]=Math.max(l.replace(/\s+$/g,"").length,f-u)}return r},this.$selectionColumnsForRow=function(e){var t=[],n=this.$editor.getCursorPosition();return this.$editor.session.getSelection().isEmpty()&&e==n.row&&t.push(n.column),t},this.$setBlockCellWidthsToMax=function(e){var t=!0,n,r,i,s=this.$izip_longest(e);for(var o=0,u=s.length;o<u;o++){var a=s[o];if(!a.push){console.error(a);continue}a.push(NaN);for(var f=0,l=a.length;f<l;f++){var c=a[f];t&&(n=f,i=0,t=!1);if(isNaN(c)){r=f;for(var h=n;h<r;h++)e[h][o]=i;t=!0}i=Math.max(i,c)}}return e},this.$rightmostSelectionInCell=function(e,t){var n=0;if(e.length){var r=[];for(var i=0,s=e.length;i<s;i++)e[i]<=t?r.push(i):r.push(0);n=Math.max.apply(Math,r)}return n},this.$tabsForRow=function(e){var t=[],n=this.$editor.session.getLine(e),r=/\t/g,i;while((i=r.exec(n))!=null)t.push(i.index);return t},this.$adjustRow=function(e,t){var n=this.$tabsForRow(e);if(n.length==0)return;var r=0,i=-1,s=this.$izip(t,n);for(var o=0,u=s.length;o<u;o++){var a=s[o][0],f=s[o][1];i+=1+a,f+=r;var l=i-f;if(l==0)continue;var c=this.$editor.session.getLine(e).substr(0,f),h=c.replace(/\s*$/g,""),p=c.length-h.length;l>0&&(this.$editor.session.getDocument().insertInLine({row:e,column:f+1},Array(l+1).join(" ")+"	"),this.$editor.session.getDocument().removeInLine(e,f,f+1),r+=l),l<0&&p>=-l&&(this.$editor.session.getDocument().removeInLine(e,f+l,f),r+=l)}},this.$izip_longest=function(e){if(!e[0])return[];var t=e[0].length,n=e.length;for(var r=1;r<n;r++){var i=e[r].length;i>t&&(t=i)}var s=[];for(var o=0;o<t;o++){var u=[];for(var r=0;r<n;r++)e[r][o]===""?u.push(NaN):u.push(e[r][o]);s.push(u)}return s},this.$izip=function(e,t){var n=e.length>=t.length?t.length:e.length,r=[];for(var i=0;i<n;i++){var s=[e[i],t[i]];r.push(s)}return r}}).call(r.prototype),t.ElasticTabstopsLite=r;var i=e("../editor").Editor;e("../config").defineOptions(i.prototype,"editor",{useElasticTabstops:{set:function(e){e?(this.elasticTabstops||(this.elasticTabstops=new r(this)),this.commands.on("afterExec",this.elasticTabstops.onAfterExec),this.commands.on("exec",this.elasticTabstops.onExec),this.on("change",this.elasticTabstops.onChange)):this.elasticTabstops&&(this.commands.removeListener("afterExec",this.elasticTabstops.onAfterExec),this.commands.removeListener("exec",this.elasticTabstops.onExec),this.removeListener("change",this.elasticTabstops.onChange))}}})});
+                (function() {
+                    ace.require(["ace/ext/elastic_tabstops_lite"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-emmet.js b/js/ace/ext-emmet.js
new file mode 100644
index 0000000..ded0318
--- /dev/null
+++ b/js/ace/ext-emmet.js
@@ -0,0 +1,5 @@
+ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./lib/lang"),o=e("./range").Range,u=e("./anchor").Anchor,a=e("./keyboard/hash_handler").HashHandler,f=e("./tokenizer").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r=="n"?e="\n":r=="t"?e="\n":"ulULE".indexOf(r)!=-1&&(e={changeCase:r,local:r>"a"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(",")},next:"start"},{regex:"/("+t("/")+"+)/(?:("+t("/")+"*)/)(\\w*):?",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],""},next:"start"},{regex:"`"+t("`")+"*`",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+t("/")+"+)/",token:"regex"},{regex:"",onMatch:function(e,t,n){n.inFormatString=!0},next:"start"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+"__"]||{})[n]}if(/^\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,"");if(!e)return;var r=e.session;switch(t){case"CURRENT_WORD":var i=r.getWordRange();case"SELECTION":case"SELECTED_TEXT":return r.getTextRange(i);case"CURRENT_LINE":return r.getLine(e.getCursorPosition().row);case"PREV_LINE":return r.getLine(e.getCursorPosition().row-1);case"LINE_INDEX":return e.getCursorPosition().column;case"LINE_NUMBER":return e.getCursorPosition().row+1;case"SOFT_TABS":return r.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return r.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||"":this.$getDefaultValue(e,t)||""},this.tmStrFormat=function(e,t,n){var r=t.flag||"",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,""));var s=this.tokenizeTmSnippet(t.fmt,"formatString"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t="E";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="object"){e[r]="";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u=="string"&&(i.changeCase=="u"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t=="U"?e[r]=i.toUpperCase():t=="L"&&(e[r]=i.toLowerCase())}return e.join("")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="string")n.push(i);else{if(typeof i!="object")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r=="object"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column));var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e=="\n"?e+s:typeof e=="string"?e.replace(/\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!="object")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value="");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e=="object"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!="string")&&(r.value=s.join(""))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!="object")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value=="string"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b="";o.forEach(function(e){typeof e=="string"?(e[0]==="\n"?(y=e.length-1,g++):y+=e.length,b+=e):e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";t=t.split("/").pop();if(t==="html"||t==="php"){t==="php"&&!e.session.$mode.inlinePhp&&(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r=="object"&&(r=r[0]),r.substring&&(r.substring(0,3)=="js-"?t="javascript":r.substring(0,4)=="css-"?t="css":r.substring(0,4)=="php-"&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[""],i.matchAfter=i.endRe?i.endRe.exec(n):[""],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:"",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:"",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!="$"&&(e+="$")):(e+=t,e&&e[0]!="^"&&(e="^"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||"_"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=s.escapeRegExp(e.tabTrigger)),e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,"",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,"",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");var t=[],n={},r=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\t/gm,""),t.push(n),n={};else{var o=i[2],u=i[3];if(o=="regex"){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o=="snippet"?(n.tabTrigger=u.match(/^\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e.data.range,n=e.data.action[0]=="r",r=t.start,i=t.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e("./lib/dom").importCssString(".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}"),t.snippetManager=new c;var m=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define("ace/ext/emmet",["require","exports","module","ace/keyboard/hash_handler","ace/editor","ace/snippets","ace/range","resources","resources","range","tabStops","resources","utils","actions","ace/config","ace/config"],function(e,t,n){"use strict";function f(){}var r=e("ace/keyboard/hash_handler").HashHandler,i=e("ace/editor").Editor,s=e("ace/snippets").snippetManager,o=e("ace/range").Range,u,a;f.prototype={setupContext:function(e){this.ace=e,this.indentation=e.session.getTabString(),u||(u=window.emmet),u.require("resources").setVariable("indentation",this.indentation),this.$syntax=null,this.$syntax=this.getSyntax()},getSelectionRange:function(){var e=this.ace.getSelectionRange(),t=this.ace.session.doc;return{start:t.positionToIndex(e.start),end:t.positionToIndex(e.end)}},createSelection:function(e,t){var n=this.ace.session.doc;this.ace.selection.setRange({start:n.indexToPosition(e),end:n.indexToPosition(t)})},getCurrentLineRange:function(){var e=this.ace,t=e.getCursorPosition().row,n=e.session.getLine(t).length,r=e.session.doc.positionToIndex({row:t,column:0});return{start:r,end:r+n}},getCaretPos:function(){var e=this.ace.getCursorPosition();return this.ace.session.doc.positionToIndex(e)},setCaretPos:function(e){var t=this.ace.session.doc.indexToPosition(e);this.ace.selection.moveToPosition(t)},getCurrentLine:function(){var e=this.ace.getCursorPosition().row;return this.ace.session.getLine(e)},replaceContent:function(e,t,n,r){n==null&&(n=t==null?this.getContent().length:t),t==null&&(t=0);var i=this.ace,u=i.session.doc,a=o.fromPoints(u.indexToPosition(t),u.indexToPosition(n));i.session.remove(a),a.end=a.start,e=this.$updateTabstops(e),s.insertSnippet(i,e)},getContent:function(){return this.ace.getValue()},getSyntax:function(){if(this.$syntax)return this.$syntax;var e=this.ace.session.$modeId.split("/").pop();if(e=="html"||e=="php"){var t=this.ace.getCursorPosition(),n=this.ace.session.getState(t.row);typeof n!="string"&&(n=n[0]),n&&(n=n.split("-"),n.length>1?e=n[0]:e=="php"&&(e="html"))}return e},getProfileName:function(){switch(this.getSyntax()){case"css":return"css";case"xml":case"xsl":return"xml";case"html":var e=u.require("resources").getVariable("profile");return e||(e=this.ace.session.getLines(0,2).join("").search(/<!DOCTYPE[^>]+XHTML/i)!=-1?"xhtml":"html"),e}return"xhtml"},prompt:function(e){return prompt(e)},getSelection:function(){return this.ace.session.getTextRange()},getFilePath:function(){return""},$updateTabstops:function(e){var t=1e3,n=0,r=null,i=u.require("range"),s=u.require("tabStops"),o=u.require("resources").getVocabulary("user"),a={tabstop:function(e){var o=parseInt(e.group,10),u=o===0;u?o=++n:o+=t;var f=e.placeholder;f&&(f=s.processText(f,a));var l="${"+o+(f?":"+f:"")+"}";return u&&(r=i.create(e.start,l)),l},escape:function(e){return e=="$"?"\\$":e=="\\"?"\\\\":e}};return e=s.processText(e,a),o.variables.insert_final_tabstop&&!/\$\{0\}$/.test(e)?e+="${0}":r&&(e=u.require("utils").replaceSubstring(e,"${0}",r)),e}};var l={expand_abbreviation:{mac:"ctrl+alt+e",win:"alt+e"},match_pair_outward:{mac:"ctrl+d",win:"ctrl+,"},match_pair_inward:{mac:"ctrl+j",win:"ctrl+shift+0"},matching_pair:{mac:"ctrl+alt+j",win:"alt+j"},next_edit_point:"alt+right",prev_edit_point:"alt+left",toggle_comment:{mac:"command+/",win:"ctrl+/"},split_join_tag:{mac:"shift+command+'",win:"shift+ctrl+`"},remove_tag:{mac:"command+'",win:"shift+ctrl+;"},evaluate_math_expression:{mac:"shift+command+y",win:"shift+ctrl+y"},increment_number_by_1:"ctrl+up",decrement_number_by_1:"ctrl+down",increment_number_by_01:"alt+up",decrement_number_by_01:"alt+down",increment_number_by_10:{mac:"alt+command+up",win:"shift+alt+up"},decrement_number_by_10:{mac:"alt+command+down",win:"shift+alt+down"},select_next_item:{mac:"shift+command+.",win:"shift+ctrl+."},select_previous_item:{mac:"shift+command+,",win:"shift+ctrl+,"},reflect_css_value:{mac:"shift+command+r",win:"shift+ctrl+r"},encode_decode_data_url:{mac:"shift+ctrl+d",win:"ctrl+'"},expand_abbreviation_with_tab:"Tab",wrap_with_abbreviation:{mac:"shift+ctrl+a",win:"shift+ctrl+a"}},c=new f;t.commands=new r,t.runEmmetCommand=function(e){try{c.setupContext(e);if(c.getSyntax()=="php")return!1;var t=u.require("actions");if(this.action=="expand_abbreviation_with_tab"&&!e.selection.isEmpty())return!1;if(this.action=="wrap_with_abbreviation")return setTimeout(function(){t.run("wrap_with_abbreviation",c)},0);var n=e.selection.lead,r=e.session.getTokenAt(n.row,n.column);if(r&&/\btag\b/.test(r.type))return!1;var i=t.run(this.action,c)}catch(s){e._signal("changeStatus",typeof s=="string"?s:s.message),console.log(s),i=!1}return i};for(var h in l)t.commands.addCommand({name:"emmet:"+h,action:h,bindKey:l[h],exec:t.runEmmetCommand,multiSelectAction:"forEach"});t.updateCommands=function(e,n){n?e.keyBinding.addKeyboardHandler(t.commands):e.keyBinding.removeKeyboardHandler(t.commands)},t.isSupportedMode=function(e){return e&&/css|less|scss|sass|stylus|html|php|twig|ejs/.test(e)};var p=function(n,r){var i=r;if(!i)return;var s=t.isSupportedMode(i.session.$modeId);n.enableEmmet===!1&&(s=!1),s&&typeof a=="string"&&e("ace/config").loadModule(a,function(){a=null}),t.updateCommands(i,s)};t.AceEmmetEditor=f,e("ace/config").defineOptions(i.prototype,"editor",{enableEmmet:{set:function(e){this[e?"on":"removeListener"]("changeMode",p),p({enableEmmet:!!e},this)},value:!0}}),t.setCore=function(e){typeof e=="string"?a=e:u=e}});
+                (function() {
+                    ace.require(["ace/ext/emmet"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-error_marker.js b/js/ace/ext-error_marker.js
new file mode 100644
index 0000000..dfefa20
--- /dev/null
+++ b/js/ace/ext-error_marker.js
@@ -0,0 +1,5 @@
+;
+                (function() {
+                    ace.require(["ace/ext/error_marker"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-keybinding_menu.js b/js/ace/ext-keybinding_menu.js
new file mode 100644
index 0000000..f73cf44
--- /dev/null
+++ b/js/ace/ext-keybinding_menu.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../../lib/dom"),i="#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?"top: "+i+";":"",o=o?"bottom: "+o+";":"",s=s?"right: "+s+";":"",u=u?"left: "+u+";":"";var a=document.createElement("div"),f=document.createElement("div");a.style.cssText="margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);",a.addEventListener("click",function(){document.removeEventListener("keydown",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener("keydown",l),f.style.cssText=i+s+o+u,f.addEventListener("click",function(e){e.stopPropagation()});var c=r.createElement("div");c.style.position="relative";var h=r.createElement("div");h.className="ace_closeButton",h.addEventListener("click",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../../lib/keys");n.exports.getEditorKeybordShortcuts=function(e){var t=r.KEY_MODS,n=[],i={};return e.keyBinding.$handlers.forEach(function(e){var t=e.commandKeyBinding;for(var r in t){var s=r.replace(/(^|-)\w/g,function(e){return e.toUpperCase()}),o=t[r];Array.isArray(o)||(o=[o]),o.forEach(function(e){typeof e!="string"&&(e=e.name),i[e]?i[e].key+="|"+s:(i[e]={key:s,command:e},n.push(i[e]))})}}),n}}),ace.define("ace/ext/keybinding_menu",["require","exports","module","ace/editor","ace/ext/menu_tools/overlay_page","ace/ext/menu_tools/get_editor_keyboard_shortcuts"],function(e,t,n){"use strict";function i(t){if(!document.getElementById("kbshortcutmenu")){var n=e("./menu_tools/overlay_page").overlayPage,r=e("./menu_tools/get_editor_keyboard_shortcuts").getEditorKeybordShortcuts,i=r(t),s=document.createElement("div"),o=i.reduce(function(e,t){return e+'<div class="ace_optionsMenuEntry"><span class="ace_optionsMenuCommand">'+t.command+"</span> : "+'<span class="ace_optionsMenuKey">'+t.key+"</span></div>"},"");s.id="kbshortcutmenu",s.innerHTML="<h1>Keyboard Shortcuts</h1>"+o+"</div>",n(t,s,"0","0","0",null)}}var r=e("ace/editor").Editor;n.exports.init=function(e){r.prototype.showKeyboardShortcuts=function(){i(this)},e.commands.addCommands([{name:"showKeyboardShortcuts",bindKey:{win:"Ctrl-Alt-h",mac:"Command-Alt-h"},exec:function(e,t){e.showKeyboardShortcuts()}}])}});
+                (function() {
+                    ace.require(["ace/ext/keybinding_menu"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-language_tools.js b/js/ace/ext-language_tools.js
new file mode 100644
index 0000000..27f59d2
--- /dev/null
+++ b/js/ace/ext-language_tools.js
@@ -0,0 +1,5 @@
+ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./lib/lang"),o=e("./range").Range,u=e("./anchor").Anchor,a=e("./keyboard/hash_handler").HashHandler,f=e("./tokenizer").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r=="n"?e="\n":r=="t"?e="\n":"ulULE".indexOf(r)!=-1&&(e={changeCase:r,local:r>"a"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(",")},next:"start"},{regex:"/("+t("/")+"+)/(?:("+t("/")+"*)/)(\\w*):?",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],""},next:"start"},{regex:"`"+t("`")+"*`",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+t("/")+"+)/",token:"regex"},{regex:"",onMatch:function(e,t,n){n.inFormatString=!0},next:"start"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+"__"]||{})[n]}if(/^\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,"");if(!e)return;var r=e.session;switch(t){case"CURRENT_WORD":var i=r.getWordRange();case"SELECTION":case"SELECTED_TEXT":return r.getTextRange(i);case"CURRENT_LINE":return r.getLine(e.getCursorPosition().row);case"PREV_LINE":return r.getLine(e.getCursorPosition().row-1);case"LINE_INDEX":return e.getCursorPosition().column;case"LINE_NUMBER":return e.getCursorPosition().row+1;case"SOFT_TABS":return r.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return r.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||"":this.$getDefaultValue(e,t)||""},this.tmStrFormat=function(e,t,n){var r=t.flag||"",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,""));var s=this.tokenizeTmSnippet(t.fmt,"formatString"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t="E";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="object"){e[r]="";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u=="string"&&(i.changeCase=="u"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t=="U"?e[r]=i.toUpperCase():t=="L"&&(e[r]=i.toLowerCase())}return e.join("")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="string")n.push(i);else{if(typeof i!="object")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r=="object"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column));var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e=="\n"?e+s:typeof e=="string"?e.replace(/\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!="object")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value="");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e=="object"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!="string")&&(r.value=s.join(""))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!="object")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value=="string"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b="";o.forEach(function(e){typeof e=="string"?(e[0]==="\n"?(y=e.length-1,g++):y+=e.length,b+=e):e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";t=t.split("/").pop();if(t==="html"||t==="php"){t==="php"&&!e.session.$mode.inlinePhp&&(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r=="object"&&(r=r[0]),r.substring&&(r.substring(0,3)=="js-"?t="javascript":r.substring(0,4)=="css-"?t="css":r.substring(0,4)=="php-"&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[""],i.matchAfter=i.endRe?i.endRe.exec(n):[""],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:"",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:"",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!="$"&&(e+="$")):(e+=t,e&&e[0]!="^"&&(e="^"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||"_"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=s.escapeRegExp(e.tabTrigger)),e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,"",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,"",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");var t=[],n={},r=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\t/gm,""),t.push(n),n={};else{var o=i[2],u=i[3];if(o=="regex"){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o=="snippet"?(n.tabTrigger=u.match(/^\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e.data.range,n=e.data.action[0]=="r",r=t.start,i=t.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e("./lib/dom").importCssString(".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}"),t.snippetManager=new c;var m=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/edit_session","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../edit_session").EditSession,i=e("../virtual_renderer").VirtualRenderer,s=e("../editor").Editor,o=e("../range").Range,u=e("../lib/event"),a=e("../lib/lang"),f=e("../lib/dom"),l=function(e){var t=new i(e);t.$maxLines=4;var n=new s(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n},c=function(e){var t=f.createElement("div"),n=new l(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),c.start.row=c.end.row=t.row,e.stop()});var i,s=new o(-1,0,-1,Infinity),c=new o(-1,0,-1,Infinity);c.id=n.session.addMarker(c,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?s.id&&(n.session.removeMarker(s.id),s.id=null):s.id=n.session.addMarker(s,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;s.start.row!=t&&(s.id||n.setRow(t),p(t))}),n.renderer.on("beforeRender",function(){if(i&&s.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;s.id||n.setRow(e),p(e,!0)}}),n.renderer.on("afterRender",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];if(r==t.selectedNode)return;t.selectedNode&&f.removeCssClass(t.selectedNode,"ace_selected"),t.selectedNode=r,r&&f.addCssClass(r,"ace_selected")});var h=function(){p(-1)},p=function(e,t){e!==s.start.row&&(s.start.row=s.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return s.start.row},u.addListener(n.container,"mouseout",h),n.on("hide",h),n.on("changeSelection",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t=="string"?t:t&&t.value||""};var d=n.session.bgTokenizer;return d.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;typeof t=="string"&&(t={value:t}),t.caption||(t.caption=t.value||t.name);var i=-1,s,o;for(var u=0;u<t.caption.length;u++)o=t.caption[u],s=t.matchMask&1<<u?1:0,i!==s?(r.push({type:t.className||""+(s?"completion-highlight":""),value:o}),i=s):r[r.length-1].value+=o;if(t.meta){var a=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth;t.meta.length+t.caption.length<a-2&&r.push({type:"rightAlignedText",value:t.meta})}return r},d.$updateOnChange=r,d.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.$blockScrolling=Infinity,n.isOpen=!1,n.isTopdown=!1,n.data=[],n.setData=function(e){n.data=e||[],n.setValue(a.stringRepeat("\n",e.length),-1),n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return c.start.row},n.setRow=function(e){e=Math.max(-1,Math.min(this.data.length,e)),c.start.row!=e&&(n.selection.clearSelection(),c.start.row=c.end.row=e||0,n.session._emit("changeBackMarker"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal("select"))},n.on("changeSelection",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display="none",this._signal("hide"),n.isOpen=!1},n.show=function(e,t,r){var s=this.container,o=window.innerHeight,u=window.innerWidth,a=this.renderer,f=a.$maxLines*t*1.4,l=e.top+this.$borderSize;l+f>o-t&&!r?(s.style.top="",s.style.bottom=o-l+"px",n.isTopdown=!1):(l+=t,s.style.top=l+"px",s.style.bottom="",n.isTopdown=!0),s.style.display="",this.renderer.$textLayer.checkForSizeChanges();var c=e.left;c+s.offsetWidth>u&&(c=u-s.offsetWidth),s.style.left=c+"px",this._signal("show"),i=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};f.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover {    position: absolute;    z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller {   background: none;   border: none;   box-shadow: none;}.ace_rightAlignedText {    color: gray;    display: inline-block;    position: absolute;    right: 4px;    text-align: right;    z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #000;    text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete {    width: 280px;    z-index: 200000;    background: #fbfbfb;    color: #444;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;}"),t.AcePopup=c}),ace.define("ace/autocomplete/util",["require","exports","module"],function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i}}),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"],function(e,t,n){"use strict";var r=e("./keyboard/hash_handler").HashHandler,i=e("./autocomplete/popup").AcePopup,s=e("./autocomplete/util"),o=e("./lib/event"),u=e("./lib/lang"),a=e("./lib/dom"),f=e("./snippets").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=u.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=u.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new i(document.body||document.documentElement),this.popup.on("click",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;this.popup.setRow(this.autoSelect?0:-1);if(!n){this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var i=r.layerConfig.lineHeight,s=r.$cursorLayer.getPixelPosition(this.base,!0);s.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();s.top+=o.top-r.layerConfig.offset,s.left+=o.left-e.renderer.scrollLeft,s.left+=r.$gutterLayer.gutterWidth,this.popup.show(s,i)}else n&&!t&&this.detach()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement();t!=n&&t.parentNode!=this.popup.container&&t!=this.tooltipNode&&e.relatedTarget!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.popup.setRow(t)},this.insertMatch=function(e){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText){var t=this.editor.selection.getAllRanges();for(var n=0,r;r=t[n];n++)r.start.column-=this.completions.filterText.length,this.editor.session.remove(r)}e.snippet?f.insertSnippet(this.editor,e.snippet):this.editor.execCommand("insertstring",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo("up")},Down:function(e){e.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(e){e.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(e){e.completer.goTo("end")},Esc:function(e){e.completer.detach()},Space:function(e){e.completer.detach(),e.insert(" ")},Return:function(e){return e.completer.insertMatch()},"Shift-Return":function(e){e.completer.insertMatch(!0)},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo("down")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=n.getLine(r.row),o=s.retrievePrecedingIdentifier(i,r.column);this.base=n.doc.createAnchor(r.row,r.column-o.length),this.base.$insertRight=!0;var u=[],a=e.completers.length;return e.completers.forEach(function(i,f){i.getCompletions(e,n,r,o,function(r,i){r||(u=u.concat(i));var o=e.getCursorPosition(),f=n.getLine(o.row);t(null,{prefix:s.retrievePrecedingIdentifier(f,o.column,i[0]&&i[0].identifierRegex),matches:u,finished:--a===0})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on("changeSelection",this.changeListener),e.on("blur",this.blurListener),e.on("mousedown",this.mousedownListener),e.on("mousewheel",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;this.completions.setFilter(n);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==n&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,n,e);return}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var i=function(){if(!n.finished)return;return this.detach()}.bind(this),s=n.prefix,o=n&&n.matches;if(!o||!o.length)return i();if(s.indexOf(n.prefix)!==0||r!=this.gatherCompletionsId)return;this.completions=new c(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(s);var u=this.completions.filtered;if(!u.length)return i();if(u.length==1&&u[0].value==s&&!u[0].snippet)return i();if(this.autoInsert&&u.length==1&&n.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,s,e)}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),typeof r=="string"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=a.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,window.innerWidth-r.right<320?(t.style.right=window.innerWidth-r.left+"px",t.style.left=""):(t.style.left=r.right+1+"px",t.style.right=""),t.style.display="block"},this.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}}).call(l.prototype),l.startCommand={name:"startAutocomplete",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var c=function(e,t,n){this.all=e,this.filtered=e,this.filterText=t||"",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.value||o.caption||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else for(var p=0;p<t.length;p++){var d=u.indexOf(i[p],a+1),v=u.indexOf(r[p],a+1);c=d>=0?v<0||d<v?d:v:v;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h),f|=1<<c,a=c}o.matchMask=f,o.exactMatch=l?0:1,o.score=(o.score||0)-l,n.push(o)}return n}}).call(c.prototype),t.Autocomplete=l,t.FilteredList=c}),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e("../range").Range,i=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n,r),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:"local"}}))}}),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],function(e,t,n){"use strict";function m(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=u.retrievePrecedingIdentifier(n,t.column,e))})}),r||u.retrievePrecedingIdentifier(n,t.column)}var r=e("../snippets").snippetManager,i=e("../autocomplete").Autocomplete,s=e("../config"),o=e("../lib/lang"),u=e("../autocomplete/util"),a=e("../autocomplete/text_completer"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);i(null,o)}},l={getCompletions:function(e,t,n,i,s){var o=r.snippetMap,u=[];r.getActiveScopes(e).forEach(function(e){var t=o[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;u.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+"\u21e5 ":"snippet",type:"snippet"})}},this),s(null,u)},getDocTooltip:function(e){e.type=="snippet"&&!e.docHTML&&(e.docHTML=["<b>",o.escapeHTML(e.caption),"</b>","<hr></hr>",o.escapeHTML(e.snippet)].join(""))}},c=[l,a,f];t.setCompleters=function(e){c=e||[]},t.addCompleter=function(e){c.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=l;var h={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},p=function(e,t){d(t.session.$mode)},d=function(e){var t=e.$id;r.files||(r.files={}),v(t),e.modes&&e.modes.forEach(d)},v=function(e){if(!e||r.files[e])return;var t=e.replace("mode","snippets");r.files[e]={},s.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v("ace/mode/"+e)})))})},g=function(e){var t=e.editor,n=e.args||"",r=t.completer&&t.completer.activated;if(e.command.name==="backspace")r&&!m(t)&&t.completer.detach();else if(e.command.name==="insertstring"){var s=m(t);s&&!r&&(t.completer||(t.completer=new i),t.completer.autoInsert=!1,t.completer.showPopup(t))}},y=e("../editor").Editor;e("../config").defineOptions(y.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.on("afterExec",g)):this.commands.removeListener("afterExec",g)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on("changeMode",p),p(null,this)):(this.commands.removeCommand(h),this.off("changeMode",p))},value:!1}})});
+                (function() {
+                    ace.require(["ace/ext/language_tools"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-linking.js b/js/ace/ext-linking.js
new file mode 100644
index 0000000..69f8791
--- /dev/null
+++ b/js/ace/ext-linking.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"],function(e,t,n){function i(e){var t=e.editor,n=e.getAccelKey();if(n){var t=e.editor,r=e.getDocumentPosition(),i=t.session,s=i.getTokenAt(r.row,r.column);t._emit("linkHover",{position:r,token:s})}}function s(e){var t=e.getAccelKey(),n=e.getButton();if(n==0&&t){var r=e.editor,i=e.getDocumentPosition(),s=r.session,o=s.getTokenAt(i.row,i.column);r._emit("linkClick",{position:i,token:o})}}var r=e("ace/editor").Editor;e("../config").defineOptions(r.prototype,"editor",{enableLinking:{set:function(e){e?(this.on("click",s),this.on("mousemove",i)):(this.off("click",s),this.off("mousemove",i))},value:!1}})});
+                (function() {
+                    ace.require(["ace/ext/linking"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-modelist.js b/js/ace/ext-modelist.js
new file mode 100644
index 0000000..9cd0955
--- /dev/null
+++ b/js/ace/ext-modelist.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/modelist",["require","exports","module"],function(e,t,n){"use strict";function i(e){var t=a.text,n=e.split(/[\/\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode="ace/mode/"+e,this.extensions=n;if(/\^/.test(n))var r=n.replace(/\|(\^)?/g,function(e,t){return"$|"+(t?"^":"^.*\\.")})+"$";else var r="^.*\\.("+n+")$";this.extRe=new RegExp(r,"gi")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:["abap"],ABC:["abc"],ActionScript:["as"],ADA:["ada|adb"],Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],AsciiDoc:["asciidoc"],Assembly_x86:["asm"],AutoHotKey:["ahk"],BatchFile:["bat|cmd"],C9Search:["c9search_results"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp"],Cirru:["cirru|cr"],Clojure:["clj|cljs"],Cobol:["CBL|COB"],coffee:["coffee|cf|cson|^Cakefile"],ColdFusion:["cfm"],CSharp:["cs"],CSS:["css"],Curly:["curly"],D:["d|di"],Dart:["dart"],Diff:["diff|patch"],Dockerfile:["^Dockerfile"],Dot:["dot"],Dummy:["dummy"],DummySyntax:["dummy"],Eiffel:["e"],EJS:["ejs"],Elixir:["ex|exs"],Elm:["elm"],Erlang:["erl|hrl"],Forth:["frt|fs|ldr"],FTL:["ftl"],Gcode:["gcode"],Gherkin:["feature"],Gitignore:["^.gitignore"],Glsl:["glsl|frag|vert"],golang:["go"],Groovy:["groovy"],HAML:["haml"],Handlebars:["hbs|handlebars|tpl|mustache"],Haskell:["hs"],haXe:["hx"],HTML:["html|htm|xhtml"],HTML_Ruby:["erb|rhtml|html.erb"],INI:["ini|conf|cfg|prefs"],Io:["io"],Jack:["jack"],Jade:["jade"],Java:["java"],JavaScript:["js|jsm"],JSON:["json"],JSONiq:["jq"],JSP:["jsp"],JSX:["jsx"],Julia:["jl"],LaTeX:["tex|latex|ltx|bib"],LESS:["less"],Liquid:["liquid"],Lisp:["lisp"],LiveScript:["ls"],LogiQL:["logic|lql"],LSL:["lsl"],Lua:["lua"],LuaPage:["lp"],Lucene:["lucene"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],Markdown:["md|markdown"],Mask:["mask"],MATLAB:["matlab"],MEL:["mel"],MUSHCode:["mc|mush"],MySQL:["mysql"],Nix:["nix"],ObjectiveC:["m|mm"],OCaml:["ml|mli"],Pascal:["pas|p"],Perl:["pl|pm"],pgSQL:["pgsql"],PHP:["php|phtml"],Powershell:["ps1"],Praat:["praat|praatscript|psc|proc"],Prolog:["plg|prolog"],Properties:["properties"],Protobuf:["proto"],Python:["py"],R:["r"],RDoc:["Rd"],RHTML:["Rhtml"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCAD:["scad"],Scala:["scala"],Scheme:["scm|rkt"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SJS:["sjs"],Smarty:["smarty|tpl"],snippets:["snippets"],Soy_Template:["soy"],Space:["space"],SQL:["sql"],Stylus:["styl|stylus"],SVG:["svg"],Tcl:["tcl"],Tex:["tex"],Text:["txt"],Textile:["textile"],Toml:["toml"],Twig:["twig"],Typescript:["ts|typescript|str"],Vala:["vala"],VBScript:["vbs|vb"],Velocity:["vm"],Verilog:["v|vh|sv|svh"],VHDL:["vhd|vhdl"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],XQuery:["xq"],YAML:["yaml|yml"],Django:["html"]},u={ObjectiveC:"Objective-C",CSharp:"C#",golang:"Go",C_Cpp:"C and C++",coffee:"CoffeeScript",HTML_Ruby:"HTML (Ruby)",FTL:"FreeMarker"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g," "),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}});
+                (function() {
+                    ace.require(["ace/ext/modelist"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-old_ie.js b/js/ace/ext-old_ie.js
new file mode 100644
index 0000000..6db9b37
--- /dev/null
+++ b/js/ace/ext-old_ie.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o=".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;padding: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}",u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");r.importCssString(o,"ace_searchbox");var f='<div class="ace_search right">    <button type="button" action="hide" class="ace_searchbtn_close"></button>    <div class="ace_search_form">        <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>        <button type="button" action="findNext" class="ace_searchbtn next"></button>        <button type="button" action="findPrev" class="ace_searchbtn prev"></button>        <button type="button" action="findAll" class="ace_searchbtn" title="Alt-Enter">All</button>    </div>    <div class="ace_replace_form">        <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>        <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button>        <button type="button" action="replaceAll" class="ace_replacebtn">All</button>    </div>    <div class="ace_search_options">        <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>        <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>        <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>    </div></div>'.replace(/>\s+/g,">"),l=function(e,t,n){var i=r.createElement("div");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f|Ctrl-H|Command-Option-F":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e[t?"replaceInput":"searchInput"].focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t){var n=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),i=!n&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}}),ace.define("ace/ext/old_ie",["require","exports","module","ace/lib/useragent","ace/tokenizer","ace/ext/searchbox","ace/mode/text"],function(require,exports,module){"use strict";function patch(obj,name,regexp,replacement){eval("obj['"+name+"']="+obj[name].toString().replace(regexp,replacement))}var MAX_TOKEN_COUNT=1e3,useragent=require("../lib/useragent"),TokenizerModule=require("../tokenizer");useragent.isIE&&useragent.isIE<10&&window.top.document.compatMode==="BackCompat"&&(useragent.isOldIE=!0);if(typeof document!="undefined"&&!document.documentElement.querySelector){useragent.isOldIE=!0;var qs=function(e,t){if(t.charAt(0)==".")var n=t.slice(1);else var r=t.match(/(\w+)=(\w+)/),i=r&&r[1],s=r&&r[2];for(var o=0;o<e.all.length;o++){var u=e.all[o];if(n){if(u.className.indexOf(n)!=-1)return u}else if(i&&u.getAttribute(i)==s)return u}},sb=require("./searchbox").SearchBox.prototype;patch(sb,"$initElements",/([^\s=]*).querySelector\((".*?")\)/g,"qs($1, $2)")}var compliantExecNpcg=/()??/.exec("")[1]===undefined;if(compliantExecNpcg)return;var proto=TokenizerModule.Tokenizer.prototype;TokenizerModule.Tokenizer_orig=TokenizerModule.Tokenizer,proto.getLineTokens_orig=proto.getLineTokens,patch(TokenizerModule,"Tokenizer","ruleRegExps.push(adjustedregex);\n",function(e){return e+'        if (state[i].next && RegExp(adjustedregex).test(""))\n            rule._qre = RegExp(adjustedregex, "g");\n        '}),TokenizerModule.Tokenizer.prototype=proto,patch(proto,"getLineTokens",/if \(match\[i \+ 1\] === undefined\)\s*continue;/,"if (!match[i + 1]) {\n        if (value)continue;\n        var qre = state[mapping[i]]._qre;\n        if (!qre) continue;\n        qre.lastIndex = lastIndex;\n        if (!qre.exec(line) || qre.lastIndex != lastIndex)\n            continue;\n    }"),patch(require("../mode/text").Mode.prototype,"getTokenizer",/Tokenizer/,"TokenizerModule.Tokenizer"),useragent.isOldIE=!0});
+                (function() {
+                    ace.require(["ace/ext/old_ie"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-searchbox.js b/js/ace/ext-searchbox.js
new file mode 100644
index 0000000..964646b
--- /dev/null
+++ b/js/ace/ext-searchbox.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o=".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;padding: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}",u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");r.importCssString(o,"ace_searchbox");var f='<div class="ace_search right">    <button type="button" action="hide" class="ace_searchbtn_close"></button>    <div class="ace_search_form">        <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>        <button type="button" action="findNext" class="ace_searchbtn next"></button>        <button type="button" action="findPrev" class="ace_searchbtn prev"></button>        <button type="button" action="findAll" class="ace_searchbtn" title="Alt-Enter">All</button>    </div>    <div class="ace_replace_form">        <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>        <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button>        <button type="button" action="replaceAll" class="ace_replacebtn">All</button>    </div>    <div class="ace_search_options">        <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>        <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>        <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>    </div></div>'.replace(/>\s+/g,">"),l=function(e,t,n){var i=r.createElement("div");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f|Ctrl-H|Command-Option-F":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e[t?"replaceInput":"searchInput"].focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t){var n=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),i=!n&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",i),this.editor._emit("findSearchBox",{match:!i}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}});
+                (function() {
+                    ace.require(["ace/ext/searchbox"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-settings_menu.js b/js/ace/ext-settings_menu.js
new file mode 100644
index 0000000..d128f01
--- /dev/null
+++ b/js/ace/ext-settings_menu.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/menu_tools/element_generator",["require","exports","module"],function(e,t,n){"use strict";n.exports.createOption=function(t){var n,r=document.createElement("option");for(n in t)t.hasOwnProperty(n)&&(n==="selected"?r.setAttribute(n,t[n]):r[n]=t[n]);return r},n.exports.createCheckbox=function(t,n,r){var i=document.createElement("input");return i.setAttribute("type","checkbox"),i.setAttribute("id",t),i.setAttribute("name",t),i.setAttribute("value",n),i.setAttribute("class",r),n&&i.setAttribute("checked","checked"),i},n.exports.createInput=function(t,n,r){var i=document.createElement("input");return i.setAttribute("type","text"),i.setAttribute("id",t),i.setAttribute("name",t),i.setAttribute("value",n),i.setAttribute("class",r),i},n.exports.createLabel=function(t,n){var r=document.createElement("label");return r.setAttribute("for",n),r.textContent=t,r},n.exports.createSelection=function(t,r,i){var s=document.createElement("select");return s.setAttribute("id",t),s.setAttribute("name",t),s.setAttribute("class",i),r.forEach(function(e){s.appendChild(n.exports.createOption(e))}),s}}),ace.define("ace/ext/modelist",["require","exports","module"],function(e,t,n){"use strict";function i(e){var t=a.text,n=e.split(/[\/\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode="ace/mode/"+e,this.extensions=n;if(/\^/.test(n))var r=n.replace(/\|(\^)?/g,function(e,t){return"$|"+(t?"^":"^.*\\.")})+"$";else var r="^.*\\.("+n+")$";this.extRe=new RegExp(r,"gi")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:["abap"],ABC:["abc"],ActionScript:["as"],ADA:["ada|adb"],Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],AsciiDoc:["asciidoc"],Assembly_x86:["asm"],AutoHotKey:["ahk"],BatchFile:["bat|cmd"],C9Search:["c9search_results"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp"],Cirru:["cirru|cr"],Clojure:["clj|cljs"],Cobol:["CBL|COB"],coffee:["coffee|cf|cson|^Cakefile"],ColdFusion:["cfm"],CSharp:["cs"],CSS:["css"],Curly:["curly"],D:["d|di"],Dart:["dart"],Diff:["diff|patch"],Dockerfile:["^Dockerfile"],Dot:["dot"],Dummy:["dummy"],DummySyntax:["dummy"],Eiffel:["e"],EJS:["ejs"],Elixir:["ex|exs"],Elm:["elm"],Erlang:["erl|hrl"],Forth:["frt|fs|ldr"],FTL:["ftl"],Gcode:["gcode"],Gherkin:["feature"],Gitignore:["^.gitignore"],Glsl:["glsl|frag|vert"],golang:["go"],Groovy:["groovy"],HAML:["haml"],Handlebars:["hbs|handlebars|tpl|mustache"],Haskell:["hs"],haXe:["hx"],HTML:["html|htm|xhtml"],HTML_Ruby:["erb|rhtml|html.erb"],INI:["ini|conf|cfg|prefs"],Io:["io"],Jack:["jack"],Jade:["jade"],Java:["java"],JavaScript:["js|jsm"],JSON:["json"],JSONiq:["jq"],JSP:["jsp"],JSX:["jsx"],Julia:["jl"],LaTeX:["tex|latex|ltx|bib"],LESS:["less"],Liquid:["liquid"],Lisp:["lisp"],LiveScript:["ls"],LogiQL:["logic|lql"],LSL:["lsl"],Lua:["lua"],LuaPage:["lp"],Lucene:["lucene"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],Markdown:["md|markdown"],Mask:["mask"],MATLAB:["matlab"],MEL:["mel"],MUSHCode:["mc|mush"],MySQL:["mysql"],Nix:["nix"],ObjectiveC:["m|mm"],OCaml:["ml|mli"],Pascal:["pas|p"],Perl:["pl|pm"],pgSQL:["pgsql"],PHP:["php|phtml"],Powershell:["ps1"],Praat:["praat|praatscript|psc|proc"],Prolog:["plg|prolog"],Properties:["properties"],Protobuf:["proto"],Python:["py"],R:["r"],RDoc:["Rd"],RHTML:["Rhtml"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCAD:["scad"],Scala:["scala"],Scheme:["scm|rkt"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SJS:["sjs"],Smarty:["smarty|tpl"],snippets:["snippets"],Soy_Template:["soy"],Space:["space"],SQL:["sql"],Stylus:["styl|stylus"],SVG:["svg"],Tcl:["tcl"],Tex:["tex"],Text:["txt"],Textile:["textile"],Toml:["toml"],Twig:["twig"],Typescript:["ts|typescript|str"],Vala:["vala"],VBScript:["vbs|vb"],Velocity:["vm"],Verilog:["v|vh|sv|svh"],VHDL:["vhd|vhdl"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],XQuery:["xq"],YAML:["yaml|yml"],Django:["html"]},u={ObjectiveC:"Objective-C",CSharp:"C#",golang:"Go",C_Cpp:"C and C++",coffee:"CoffeeScript",HTML_Ruby:"HTML (Ruby)",FTL:"FreeMarker"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g," "),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}}),ace.define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"],function(e,t,n){"use strict";e("ace/lib/fixoldbrowsers");var r=[["Chrome"],["Clouds"],["Crimson Editor"],["Dawn"],["Dreamweaver"],["Eclipse"],["GitHub"],["Solarized Light"],["TextMate"],["Tomorrow"],["XCode"],["Kuroir"],["KatzenMilch"],["Ambiance","ambiance","dark"],["Chaos","chaos","dark"],["Clouds Midnight","clouds_midnight","dark"],["Cobalt","cobalt","dark"],["idle Fingers","idle_fingers","dark"],["krTheme","kr_theme","dark"],["Merbivore","merbivore","dark"],["Merbivore Soft","merbivore_soft","dark"],["Mono Industrial","mono_industrial","dark"],["Monokai","monokai","dark"],["Pastel on dark","pastel_on_dark","dark"],["Solarized Dark","solarized_dark","dark"],["Terminal","terminal","dark"],["Tomorrow Night","tomorrow_night","dark"],["Tomorrow Night Blue","tomorrow_night_blue","dark"],["Tomorrow Night Bright","tomorrow_night_bright","dark"],["Tomorrow Night 80s","tomorrow_night_eighties","dark"],["Twilight","twilight","dark"],["Vibrant Ink","vibrant_ink","dark"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,"_").toLowerCase(),r={caption:e[0],theme:"ace/theme/"+n,isDark:e[2]=="dark",name:n};return t.themesByName[n]=r,r})}),ace.define("ace/ext/menu_tools/add_editor_menu_options",["require","exports","module","ace/ext/modelist","ace/ext/themelist"],function(e,t,n){"use strict";n.exports.addEditorMenuOptions=function(n){var r=e("../modelist"),i=e("../themelist");n.menuOptions={setNewLineMode:[{textContent:"unix",value:"unix"},{textContent:"windows",value:"windows"},{textContent:"auto",value:"auto"}],setTheme:[],setMode:[],setKeyboardHandler:[{textContent:"ace",value:""},{textContent:"vim",value:"ace/keyboard/vim"},{textContent:"emacs",value:"ace/keyboard/emacs"},{textContent:"textarea",value:"ace/keyboard/textarea"},{textContent:"sublime",value:"ace/keyboard/sublime"}]},n.menuOptions.setTheme=i.themes.map(function(e){return{textContent:e.caption,value:e.theme}}),n.menuOptions.setMode=r.modes.map(function(e){return{textContent:e.name,value:e.mode}})}}),ace.define("ace/ext/menu_tools/get_set_functions",["require","exports","module"],function(e,t,n){"use strict";n.exports.getSetFunctions=function(t){var n=[],r={editor:t,session:t.session,renderer:t.renderer},i=[],s=["setOption","setUndoManager","setDocument","setValue","setBreakpoints","setScrollTop","setScrollLeft","setSelectionStyle","setWrapLimitRange"];return["renderer","session","editor"].forEach(function(e){var t=r[e],o=e;for(var u in t)s.indexOf(u)===-1&&/^set/.test(u)&&i.indexOf(u)===-1&&(i.push(u),n.push({functionName:u,parentObj:t,parentName:o}))}),n}}),ace.define("ace/ext/menu_tools/generate_settings_menu",["require","exports","module","ace/ext/menu_tools/element_generator","ace/ext/menu_tools/add_editor_menu_options","ace/ext/menu_tools/get_set_functions"],function(e,t,n){"use strict";var r=e("./element_generator"),i=e("./add_editor_menu_options").addEditorMenuOptions,s=e("./get_set_functions").getSetFunctions;n.exports.generateSettingsMenu=function(t){function o(){n.sort(function(e,t){var n=e.getAttribute("contains"),r=t.getAttribute("contains");return n.localeCompare(r)})}function u(){var e=document.createElement("div");e.setAttribute("id","ace_settingsmenu"),n.forEach(function(t){e.appendChild(t)});var t=e.appendChild(document.createElement("div")),r="1.1.8";return t.style.padding="1em",t.textContent="Ace version "+r,e}function a(e,n,i,s){var o,u=document.createElement("div");return u.setAttribute("contains",i),u.setAttribute("class","ace_optionsMenuEntry"),u.setAttribute("style","clear: both;"),u.appendChild(r.createLabel(i.replace(/^set/,"").replace(/([A-Z])/g," $1").trim(),i)),Array.isArray(s)?(o=r.createSelection(i,s,n),o.addEventListener("change",function(n){try{t.menuOptions[n.target.id].forEach(function(e){e.textContent!==n.target.textContent&&delete e.selected}),e[n.target.id](n.target.value)}catch(r){throw new Error(r)}})):typeof s=="boolean"?(o=r.createCheckbox(i,s,n),o.addEventListener("change",function(t){try{e[t.target.id](!!t.target.checked)}catch(n){throw new Error(n)}})):(o=r.createInput(i,s,n),o.addEventListener("change",function(t){try{t.target.value==="true"?e[t.target.id](!0):t.target.value==="false"?e[t.target.id](!1):e[t.target.id](t.target.value)}catch(n){throw new Error(n)}})),o.style.cssText="float:right;",u.appendChild(o),u}function f(e,n,r,i){var s=t.menuOptions[e],o=n[i]();return typeof o=="object"&&(o=o.$id),s.forEach(function(e){e.value===o&&(e.selected="selected")}),a(n,r,e,s)}function l(e){var r=e.functionName,i=e.parentObj,s=e.parentName,o,u=r.replace(/^set/,"get");if(t.menuOptions[r]!==undefined)n.push(f(r,i,s,u));else if(typeof i[u]=="function")try{o=i[u](),typeof o=="object"&&(o=o.$id),n.push(a(i,s,r,o))}catch(l){}}var n=[];return i(t),s(t).forEach(function(e){l(e)}),o(),u()}}),ace.define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../../lib/dom"),i="#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?"top: "+i+";":"",o=o?"bottom: "+o+";":"",s=s?"right: "+s+";":"",u=u?"left: "+u+";":"";var a=document.createElement("div"),f=document.createElement("div");a.style.cssText="margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);",a.addEventListener("click",function(){document.removeEventListener("keydown",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener("keydown",l),f.style.cssText=i+s+o+u,f.addEventListener("click",function(e){e.stopPropagation()});var c=r.createElement("div");c.style.position="relative";var h=r.createElement("div");h.className="ace_closeButton",h.addEventListener("click",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define("ace/ext/settings_menu",["require","exports","module","ace/ext/menu_tools/generate_settings_menu","ace/ext/menu_tools/overlay_page","ace/editor"],function(e,t,n){"use strict";function s(e){var t=document.getElementById("ace_settingsmenu");t||i(e,r(e),"0","0","0")}var r=e("./menu_tools/generate_settings_menu").generateSettingsMenu,i=e("./menu_tools/overlay_page").overlayPage;n.exports.init=function(t){var n=e("ace/editor").Editor;n.prototype.showSettingsMenu=function(){s(this)}}});
+                (function() {
+                    ace.require(["ace/ext/settings_menu"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-spellcheck.js b/js/ace/ext-spellcheck.js
new file mode 100644
index 0000000..15c0f86
--- /dev/null
+++ b/js/ace/ext-spellcheck.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event");t.contextMenuHandler=function(e){var t=e.target,n=t.textInput.getElement();if(!t.selection.isEmpty())return;var i=t.getCursorPosition(),s=t.session.getWordRange(i.row,i.column),o=t.session.getTextRange(s);t.session.tokenRe.lastIndex=0;if(!t.session.tokenRe.test(o))return;var u="",a=o+" "+u;n.value=a,n.setSelectionRange(o.length,o.length+1),n.setSelectionRange(0,0),n.setSelectionRange(0,o.length);var f=!1;r.addListener(n,"keydown",function l(){r.removeListener(n,"keydown",l),f=!0}),t.textInput.setInputHandler(function(e){console.log(e,a,n.selectionStart,n.selectionEnd);if(e==a)return"";if(e.lastIndexOf(a,0)===0)return e.slice(a.length);if(e.substr(n.selectionEnd)==a)return e.slice(0,-a.length);if(e.slice(-2)==u){var r=e.slice(0,-2);if(r.slice(-1)==" ")return f?r.substring(0,n.selectionEnd):(r=r.slice(0,-1),t.session.replace(s,r),"")}return e})};var i=e("../editor").Editor;e("../config").defineOptions(i.prototype,"editor",{spellcheck:{set:function(e){var n=this.textInput.getElement();n.spellcheck=!!e,e?this.on("nativecontextmenu",t.contextMenuHandler):this.removeListener("nativecontextmenu",t.contextMenuHandler)},value:!0}})});
+                (function() {
+                    ace.require(["ace/ext/spellcheck"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-split.js b/js/ace/ext-split.js
new file mode 100644
index 0000000..31b3ee7
--- /dev/null
+++ b/js/ace/ext-split.js
@@ -0,0 +1,5 @@
+ace.define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"],function(e,t,n){"use strict";function l(e,t){this.$u=e,this.$doc=t}var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./editor").Editor,u=e("./virtual_renderer").VirtualRenderer,a=e("./edit_session").EditSession,f=function(e,t,n){this.BELOW=1,this.BESIDE=0,this.$container=e,this.$theme=t,this.$splits=0,this.$editorCSS="",this.$editors=[],this.$orientation=this.BESIDE,this.setSplits(n||1),this.$cEditor=this.$editors[0],this.on("focus",function(e){this.$cEditor=e}.bind(this))};(function(){r.implement(this,s),this.$createEditor=function(){var e=document.createElement("div");e.className=this.$editorCSS,e.style.cssText="position: absolute; top:0px; bottom:0px",this.$container.appendChild(e);var t=new o(new u(e,this.$theme));return t.on("focus",function(){this._emit("focus",t)}.bind(this)),this.$editors.push(t),t.setFontSize(this.$fontSize),t},this.setSplits=function(e){var t;if(e<1)throw"The number of splits have to be > 0!";if(e==this.$splits)return;if(e>this.$splits){while(this.$splits<this.$editors.length&&this.$splits<e)t=this.$editors[this.$splits],this.$container.appendChild(t.container),t.setFontSize(this.$fontSize),this.$splits++;while(this.$splits<e)this.$createEditor(),this.$splits++}else while(this.$splits>e)t=this.$editors[this.$splits-1],this.$container.removeChild(t.container),this.$splits--;this.resize()},this.getSplits=function(){return this.$splits},this.getEditor=function(e){return this.$editors[e]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(e){this.$editors.forEach(function(t){t.setTheme(e)})},this.setKeyboardHandler=function(e){this.$editors.forEach(function(t){t.setKeyboardHandler(e)})},this.forEach=function(e,t){this.$editors.forEach(e,t)},this.$fontSize="",this.setFontSize=function(e){this.$fontSize=e,this.forEach(function(t){t.setFontSize(e)})},this.$cloneSession=function(e){var t=new a(e.getDocument(),e.getMode()),n=e.getUndoManager();if(n){var r=new l(n,t);t.setUndoManager(r)}return t.$informUndoManager=i.delayedCall(function(){t.$deltas=[]}),t.setTabSize(e.getTabSize()),t.setUseSoftTabs(e.getUseSoftTabs()),t.setOverwrite(e.getOverwrite()),t.setBreakpoints(e.getBreakpoints()),t.setUseWrapMode(e.getUseWrapMode()),t.setUseWorker(e.getUseWorker()),t.setWrapLimitRange(e.$wrapLimitRange.min,e.$wrapLimitRange.max),t.$foldData=e.$cloneFoldData(),t},this.setSession=function(e,t){var n;t==null?n=this.$cEditor:n=this.$editors[t];var r=this.$editors.some(function(t){return t.session===e});return r&&(e=this.$cloneSession(e)),n.setSession(e),e},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(e){if(this.$orientation==e)return;this.$orientation=e,this.resize()},this.resize=function(){var e=this.$container.clientWidth,t=this.$container.clientHeight,n;if(this.$orientation==this.BESIDE){var r=e/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=r+"px",n.container.style.top="0px",n.container.style.left=i*r+"px",n.container.style.height=t+"px",n.resize()}else{var s=t/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=e+"px",n.container.style.top=i*s+"px",n.container.style.left="0px",n.container.style.height=s+"px",n.resize()}}}).call(f.prototype),function(){this.execute=function(e){this.$u.execute(e)},this.undo=function(){var e=this.$u.undo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.redo=function(){var e=this.$u.redo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.reset=function(){this.$u.reset()},this.hasUndo=function(){return this.$u.hasUndo()},this.hasRedo=function(){return this.$u.hasRedo()}}.call(l.prototype),t.Split=f}),ace.define("ace/ext/split",["require","exports","module","ace/split"],function(e,t,n){"use strict";n.exports=e("../split")});
+                (function() {
+                    ace.require(["ace/ext/split"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-static_highlight.js b/js/ace/ext-static_highlight.js
new file mode 100644
index 0000000..0afe8dc
--- /dev/null
+++ b/js/ace/ext-static_highlight.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text","ace/config","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../edit_session").EditSession,i=e("../layer/text").Text,s=".ace_static_highlight {font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;font-size: 12px;}.ace_static_highlight .ace_gutter {width: 25px !important;float: left;text-align: right;padding: 0 3px 0 0;margin-right: 3px;position: static !important;}.ace_static_highlight .ace_line { clear: both; }.ace_static_highlight .ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;}.ace_static_highlight .ace_gutter-cell:before {content: counter(ace_line, decimal);counter-increment: ace_line;}.ace_static_highlight {counter-reset: ace_line;}",o=e("../config"),u=e("../lib/dom"),a=function(e,t,n){var r=e.className.match(/lang-(\w+)/),i=t.mode||r&&"ace/mode/"+r[1];if(!i)return!1;var s=t.theme||"ace/theme/textmate",o="",f=[];if(e.firstElementChild){var l=0;for(var c=0;c<e.childNodes.length;c++){var h=e.childNodes[c];h.nodeType==3?(l+=h.data.length,o+=h.data):f.push(l,h)}}else o=u.getInnerText(e),t.trim&&(o=o.trim());a.render(o,i,s,t.firstLineNumber,!t.showGutter,function(t){u.importCssString(t.css,"ace_highlight"),e.innerHTML=t.html;var r=e.firstChild.firstChild;for(var i=0;i<f.length;i+=2){var s=t.session.doc.indexToPosition(f[i]),o=f[i+1],a=r.children[s.row];a&&a.appendChild(o)}n&&n()})};a.render=function(e,t,n,i,s,u){function h(){var r=a.renderSync(e,t,n,i,s);return u?u(r):r}var f=1,l=r.prototype.$modes;typeof n=="string"&&(f++,o.loadModule(["theme",n],function(e){n=e,--f||h()}));var c;return t&&typeof t=="object"&&!t.getTokenizer&&(c=t,t=c.path),typeof t=="string"&&(f++,o.loadModule(["mode",t],function(e){if(!l[t]||c)l[t]=new e.Mode(c);t=l[t],--f||h()})),--f||h()},a.renderSync=function(e,t,n,o,u){o=parseInt(o||1,10);var a=new r("");a.setUseWorker(!1),a.setMode(t);var f=new i(document.createElement("div"));f.setSession(a),f.config={characterWidth:10,lineHeight:20},a.setValue(e);var l=[],c=a.getLength();for(var h=0;h<c;h++)l.push("<div class='ace_line'>"),u||l.push("<span class='ace_gutter ace_gutter-cell' unselectable='on'></span>"),f.$renderLine(l,h,!0,!1),l.push("\n</div>");var p="<div class='"+n.cssClass+"'>"+"<div class='ace_static_highlight' style='counter-reset:ace_line "+(o-1)+"'>"+l.join("")+"</div>"+"</div>";return f.destroy(),{css:s+n.cssText,html:p,session:a}},n.exports=a,n.exports.highlight=a});
+                (function() {
+                    ace.require(["ace/ext/static_highlight"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-statusbar.js b/js/ace/ext-statusbar.js
new file mode 100644
index 0000000..398ca3c
--- /dev/null
+++ b/js/ace/ext-statusbar.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("ace/lib/dom"),i=e("ace/lib/lang"),s=function(e,t){this.element=r.createElement("div"),this.element.className="ace_status-indicator",this.element.style.cssText="display: inline-block;",t.appendChild(this.element);var n=i.delayedCall(function(){this.updateStatus(e)}.bind(this));e.on("changeStatus",function(){n.schedule(100)}),e.on("changeSelection",function(){n.schedule(100)})};(function(){this.updateStatus=function(e){function n(e,n){e&&t.push(e,n||"|")}var t=[];n(e.keyBinding.getStatusText(e)),e.commands.recording&&n("REC");var r=e.selection.lead;n(r.row+":"+r.column," ");if(!e.selection.isEmpty()){var i=e.getSelectionRange();n("("+(i.end.row-i.start.row)+":"+(i.end.column-i.start.column)+")")}t.pop(),this.element.textContent=t.join("")}}).call(s.prototype),t.StatusBar=s});
+                (function() {
+                    ace.require(["ace/ext/statusbar"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-textarea.js b/js/ace/ext-textarea.js
new file mode 100644
index 0000000..2e131d4
--- /dev/null
+++ b/js/ace/ext-textarea.js
@@ -0,0 +1,5 @@
+ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.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 {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: 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_heading {color: rgb(12, 7, 255);}.ace-tm .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 r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),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/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else o=r.getInnerText(e),e.innerHTML="";var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u}),ace.define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace","ace/theme/textmate"],function(e,t,n){"use strict";function a(e,t){for(var n in t)e.style[n]=t[n]}function f(e,t){if(e.type!="textarea")throw new Error("Textarea required!");var n=e.parentNode,i=document.createElement("div"),s=function(){var t="position:relative;";["margin-top","margin-left","margin-right","margin-bottom"].forEach(function(n){t+=n+":"+u(e,i,n)+";"});var n=u(e,i,"width")||e.clientWidth+"px",r=u(e,i,"height")||e.clientHeight+"px";t+="height:"+r+";width:"+n+";",t+="display:inline-block;",i.setAttribute("style",t)};r.addListener(window,"resize",s),s(),n.insertBefore(i,e.nextSibling);while(n!==document){if(n.tagName.toUpperCase()==="FORM"){var o=n.onsubmit;n.onsubmit=function(n){e.value=t(),o&&o.call(this,n)};break}n=n.parentNode}return i}function l(t,n,r){s.loadScript(t,function(){e([n],r)})}function c(e,t,n,r,i,s){function a(e){return e==="true"||e==1}var o=e.getSession(),u=e.renderer;return s=s||l,e.setDisplaySettings=function(t){t==null&&(t=n.style.display=="none"),t?(n.style.display="block",n.hideButton.focus(),e.on("focus",function r(){e.removeListener("focus",r),n.style.display="none"})):e.focus()},e.$setOption=e.setOption,e.$getOption=e.getOption,e.setOption=function(t,n){switch(t){case"mode":e.$setOption("mode","ace/mode/"+n);break;case"theme":e.$setOption("theme","ace/theme/"+n);break;case"keybindings":switch(n){case"vim":e.setKeyboardHandler("ace/keyboard/vim");break;case"emacs":e.setKeyboardHandler("ace/keyboard/emacs");break;default:e.setKeyboardHandler(null)}break;case"softWrap":case"fontSize":e.$setOption(t,n);break;default:e.$setOption(t,a(n))}},e.getOption=function(t){switch(t){case"mode":return e.$getOption("mode").substr("ace/mode/".length);case"theme":return e.$getOption("theme").substr("ace/theme/".length);case"keybindings":var n=e.getKeyboardHandler();switch(n&&n.$id){case"ace/keyboard/vim":return"vim";case"ace/keyboard/emacs":return"emacs";default:return"ace"}break;default:return e.$getOption(t)}},e.setOptions(i),e}function h(e,n,i){function f(e,t,n,r){if(!n){e.push("<input type='checkbox' title='",t,"' ",r+""=="true"?"checked='true'":"","'></input>");return}e.push("<select title='"+t+"'>");for(var i in n)e.push("<option value='"+i+"' "),r==i&&e.push(" selected "),e.push(">",n[i],"</option>");e.push("</select>")}var s=null,o={mode:"Mode:",wrap:"Soft Wrap:",theme:"Theme:",fontSize:"Font Size:",showGutter:"Display Gutter:",keybindings:"Keyboard",showPrintMargin:"Show Print Margin:",useSoftTabs:"Use Soft Tabs:",showInvisibles:"Show Invisibles"},u={mode:{text:"Plain",javascript:"JavaScript",xml:"XML",html:"HTML",css:"CSS",scss:"SCSS",python:"Python",php:"PHP",java:"Java",ruby:"Ruby",c_cpp:"C/C++",coffee:"CoffeeScript",json:"json",perl:"Perl",clojure:"Clojure",ocaml:"OCaml",csharp:"C#",haxe:"haXe",svg:"SVG",textile:"Textile",groovy:"Groovy",liquid:"Liquid",Scala:"Scala"},theme:{clouds:"Clouds",clouds_midnight:"Clouds Midnight",cobalt:"Cobalt",crimson_editor:"Crimson Editor",dawn:"Dawn",eclipse:"Eclipse",idle_fingers:"Idle Fingers",kr_theme:"Kr Theme",merbivore:"Merbivore",merbivore_soft:"Merbivore Soft",mono_industrial:"Mono Industrial",monokai:"Monokai",pastel_on_dark:"Pastel On Dark",solarized_dark:"Solarized Dark",solarized_light:"Solarized Light",textmate:"Textmate",twilight:"Twilight",vibrant_ink:"Vibrant Ink"},showGutter:s,fontSize:{"10px":"10px","11px":"11px","12px":"12px","14px":"14px","16px":"16px"},wrap:{off:"Off",40:"40",80:"80",free:"Free"},keybindings:{ace:"ace",vim:"vim",emacs:"emacs"},showPrintMargin:s,useSoftTabs:s,showInvisibles:s},a=[];a.push("<table><tr><th>Setting</th><th>Value</th></tr>");for(var l in t.defaultOptions)a.push("<tr><td>",o[l],"</td>"),a.push("<td>"),f(a,l,u[l],i.getOption(l)),a.push("</td></tr>");a.push("</table>"),e.innerHTML=a.join("");var c=function(e){var t=e.currentTarget;i.setOption(t.title,t.value)},h=function(e){var t=e.currentTarget;i.setOption(t.title,t.checked)},p=e.getElementsByTagName("select");for(var d=0;d<p.length;d++)p[d].onchange=c;var v=e.getElementsByTagName("input");for(var d=0;d<v.length;d++)v[d].onclick=h;var m=document.createElement("input");m.type="button",m.value="Hide",r.addListener(m,"click",function(){i.setDisplaySettings(!1)}),e.appendChild(m),e.hideButton=m}var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/net"),o=e("../ace");e("../theme/textmate"),n.exports=t=o;var u=function(e,t,n){var r=e.style[n];r||(window.getComputedStyle?r=window.getComputedStyle(e,"").getPropertyValue(n):r=e.currentStyle[n]);if(!r||r=="auto"||r=="intrinsic")r=t.style[n];return r};t.transformTextarea=function(e,n){var s,u=f(e,function(){return s.getValue()});e.style.display="none",u.style.background="white";var p=document.createElement("div");a(p,{top:"0px",left:"0px",right:"0px",bottom:"0px",border:"1px solid gray",position:"absolute"}),u.appendChild(p);var d=document.createElement("div");a(d,{position:"absolute",right:"0px",bottom:"0px",background:"red",cursor:"nw-resize",borderStyle:"solid",borderWidth:"9px 8px 10px 9px",width:"2px",borderColor:"lightblue gray gray lightblue",zIndex:101});var v=document.createElement("div"),m={top:"0px",left:"20%",right:"0px",bottom:"0px",position:"absolute",padding:"5px",zIndex:100,color:"white",display:"none",overflow:"auto",fontSize:"14px",boxShadow:"-5px 2px 3px gray"};i.isOldIE?m.backgroundColor="#333":m.backgroundColor="rgba(0, 0, 0, 0.6)",a(v,m),u.appendChild(v),n=n||t.defaultOptions;var g=o.edit(p);s=g.getSession(),s.setValue(e.value||e.innerHTML),g.focus(),u.appendChild(d),c(g,p,v,o,n,l),h(v,d,g);var y="";return r.addListener(d,"mousemove",function(e){var t=this.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;n+r<(t.width+t.height)/2?(this.style.cursor="pointer",y="toggle"):(y="resize",this.style.cursor="nw-resize")}),r.addListener(d,"mousedown",function(e){if(y=="toggle"){g.setDisplaySettings();return}u.style.zIndex=1e5;var t=u.getBoundingClientRect(),n=t.width+t.left-e.clientX,i=t.height+t.top-e.clientY;r.capture(d,function(e){u.style.width=e.clientX-t.left+n+"px",u.style.height=e.clientY-t.top+i+"px",g.resize()},function(){})}),g},t.defaultOptions={mode:"javascript",theme:"textmate",wrap:"off",fontSize:"12px",showGutter:"false",keybindings:"ace",showPrintMargin:"false",useSoftTabs:"true",showInvisibles:"false"}});
+                (function() {
+                    ace.require(["ace/ext/textarea"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-themelist.js b/js/ace/ext-themelist.js
new file mode 100644
index 0000000..18b731d
--- /dev/null
+++ b/js/ace/ext-themelist.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"],function(e,t,n){"use strict";e("ace/lib/fixoldbrowsers");var r=[["Chrome"],["Clouds"],["Crimson Editor"],["Dawn"],["Dreamweaver"],["Eclipse"],["GitHub"],["Solarized Light"],["TextMate"],["Tomorrow"],["XCode"],["Kuroir"],["KatzenMilch"],["Ambiance","ambiance","dark"],["Chaos","chaos","dark"],["Clouds Midnight","clouds_midnight","dark"],["Cobalt","cobalt","dark"],["idle Fingers","idle_fingers","dark"],["krTheme","kr_theme","dark"],["Merbivore","merbivore","dark"],["Merbivore Soft","merbivore_soft","dark"],["Mono Industrial","mono_industrial","dark"],["Monokai","monokai","dark"],["Pastel on dark","pastel_on_dark","dark"],["Solarized Dark","solarized_dark","dark"],["Terminal","terminal","dark"],["Tomorrow Night","tomorrow_night","dark"],["Tomorrow Night Blue","tomorrow_night_blue","dark"],["Tomorrow Night Bright","tomorrow_night_bright","dark"],["Tomorrow Night 80s","tomorrow_night_eighties","dark"],["Twilight","twilight","dark"],["Vibrant Ink","vibrant_ink","dark"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,"_").toLowerCase(),r={caption:e[0],theme:"ace/theme/"+n,isDark:e[2]=="dark",name:n};return t.themesByName[n]=r,r})});
+                (function() {
+                    ace.require(["ace/ext/themelist"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/ext-whitespace.js b/js/ace/ext-whitespace.js
new file mode 100644
index 0000000..d1ac267
--- /dev/null
+++ b/js/ace/ext-whitespace.js
@@ -0,0 +1,5 @@
+ace.define("ace/ext/whitespace",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang");t.$detectIndentation=function(e,t){function c(e){var t=0;for(var r=e;r<n.length;r+=e)t+=n[r]||0;return t}var n=[],r=[],i=0,s=0,o=Math.min(e.length,1e3);for(var u=0;u<o;u++){var a=e[u];if(!/^\s*[^*+\-\s]/.test(a))continue;a[0]=="	"&&i++;var f=a.match(/^ */)[0].length;if(f&&a[f]!="	"){var l=f-s;l>0&&!(s%l)&&!(f%l)&&(r[l]=(r[l]||0)+1),n[f]=(n[f]||0)+1}s=f;while(u<o&&a[a.length-1]=="\\")a=e[u++]}var h=r.reduce(function(e,t){return e+t},0),p={score:0,length:0},d=0;for(var u=1;u<12;u++){var v=c(u);u==1?(d=v,v=n[1]?.9:.8,n.length||(v=0)):v/=d,r[u]&&(v+=r[u]/h),v>p.score&&(p={score:v,length:u})}if(p.score&&p.score>1.4)var m=p.length;if(i>d+1)return{ch:"	",length:m};if(d>i+1)return{ch:" ",length:m}},t.detectIndentation=function(e){var n=e.getLines(0,1e3),r=t.$detectIndentation(n)||{};return r.ch&&e.setUseSoftTabs(r.ch==" "),r.length&&e.setTabSize(r.length),r},t.trimTrailingSpace=function(e,t){var n=e.getDocument(),r=n.getAllLines(),i=t?-1:0;for(var s=0,o=r.length;s<o;s++){var u=r[s],a=u.search(/\s+$/);a>i&&n.removeInLine(s,a,u.length)}},t.convertIndentation=function(e,t,n){var i=e.getTabString()[0],s=e.getTabSize();n||(n=s),t||(t=i);var o=t=="	"?t:r.stringRepeat(t,n),u=e.doc,a=u.getAllLines(),f={},l={};for(var c=0,h=a.length;c<h;c++){var p=a[c],d=p.match(/^\s*/)[0];if(d){var v=e.$getStringScreenWidth(d)[0],m=Math.floor(v/s),g=v%s,y=f[m]||(f[m]=r.stringRepeat(o,m));y+=l[g]||(l[g]=r.stringRepeat(" ",g)),y!=d&&(u.removeInLine(c,0,d.length),u.insertInLine({row:c,column:0},y))}}e.setTabSize(n),e.setUseSoftTabs(t==" ")},t.$parseStringArg=function(e){var t={};/t/.test(e)?t.ch="	":/s/.test(e)&&(t.ch=" ");var n=e.match(/\d+/);return n&&(t.length=parseInt(n[0],10)),t},t.$parseArg=function(e){return e?typeof e=="string"?t.$parseStringArg(e):typeof e.text=="string"?t.$parseStringArg(e.text):e:{}},t.commands=[{name:"detectIndentation",exec:function(e){t.detectIndentation(e.session)}},{name:"trimTrailingSpace",exec:function(e){t.trimTrailingSpace(e.session)}},{name:"convertIndentation",exec:function(e,n){var r=t.$parseArg(n);t.convertIndentation(e.session,r.ch,r.length)}},{name:"setIndentation",exec:function(e,n){var r=t.$parseArg(n);r.length&&e.session.setTabSize(r.length),r.ch&&e.session.setUseSoftTabs(r.ch==" ")}}]});
+                (function() {
+                    ace.require(["ace/ext/whitespace"], function() {});
+                })();
+            
\ No newline at end of file
diff --git a/js/ace/keybinding-emacs.js b/js/ace/keybinding-emacs.js
new file mode 100644
index 0000000..091df98
--- /dev/null
+++ b/js/ace/keybinding-emacs.js
@@ -0,0 +1 @@
+ace.define("ace/occur",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/edit_session","ace/search_highlight","ace/lib/dom"],function(e,t,n){"use strict";function a(){}var r=e("./lib/oop"),i=e("./range").Range,s=e("./search").Search,o=e("./edit_session").EditSession,u=e("./search_highlight").SearchHighlight;r.inherits(a,s),function(){this.enter=function(e,t){if(!t.needle)return!1;var n=e.getCursorPosition();this.displayOccurContent(e,t);var r=this.originalToOccurPosition(e.session,n);return e.moveCursorToPosition(r),!0},this.exit=function(e,t){var n=t.translatePosition&&e.getCursorPosition(),r=n&&this.occurToOriginalPosition(e.session,n);return this.displayOriginalContent(e),r&&e.moveCursorToPosition(r),!0},this.highlight=function(e,t){var n=e.$occurHighlight=e.$occurHighlight||e.addDynamicMarker(new u(null,"ace_occur-highlight","text"));n.setRegexp(t),e._emit("changeBackMarker")},this.displayOccurContent=function(e,t){this.$originalSession=e.session;var n=this.matchingLines(e.session,t),r=n.map(function(e){return e.content}),i=new o(r.join("\n"));i.$occur=this,i.$occurMatchingLines=n,e.setSession(i),this.$useEmacsStyleLineStart=this.$originalSession.$useEmacsStyleLineStart,i.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart,this.highlight(i,t.re),i._emit("changeBackMarker")},this.displayOriginalContent=function(e){e.setSession(this.$originalSession),this.$originalSession.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart},this.originalToOccurPosition=function(e,t){var n=e.$occurMatchingLines,r={row:0,column:0};if(!n)return r;for(var i=0;i<n.length;i++)if(n[i].row===t.row)return{row:i,column:t.column};return r},this.occurToOriginalPosition=function(e,t){var n=e.$occurMatchingLines;return!n||!n[t.row]?t:{row:n[t.row].row,column:t.column}},this.matchingLines=function(e,t){t=r.mixin({},t);if(!e||!t.needle)return[];var n=new s;return n.set(t),n.findAll(e).reduce(function(t,n){var r=n.start.row,i=t[t.length-1];return i&&i.row===r?t:t.concat({row:r,content:e.getLine(r)})},[])}}.call(a.prototype);var f=e("./lib/dom");f.importCssString(".ace_occur-highlight {\n    border-radius: 4px;\n    background-color: rgba(87, 255, 8, 0.25);\n    position: absolute;\n    z-index: 4;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    box-shadow: 0 0 4px rgb(91, 255, 50);\n}\n.ace_dark .ace_occur-highlight {\n    background-color: rgb(80, 140, 85);\n    box-shadow: 0 0 4px rgb(60, 120, 70);\n}\n","incremental-occur-highlighting"),t.Occur=a}),ace.define("ace/commands/occur_commands",["require","exports","module","ace/config","ace/occur","ace/keyboard/hash_handler","ace/lib/oop"],function(e,t,n){function f(){}var r=e("../config"),i=e("../occur").Occur,s={name:"occur",exec:function(e,t){var n=!!e.session.$occur,r=(new i).enter(e,t);r&&!n&&f.installIn(e)},readOnly:!0},o=[{name:"occurexit",bindKey:"esc|Ctrl-G",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0},{name:"occuraccept",bindKey:"enter",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{translatePosition:!0}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0}],u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/oop");a.inherits(f,u),function(){this.isOccurHandler=!0,this.attach=function(e){u.call(this,o,e.commands.platform),this.$editor=e};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){var s=e.call(this,t,n,r,i);return s&&s.command?s:undefined}}.call(f.prototype),f.installIn=function(e){var t=new this;e.keyBinding.addKeyboardHandler(t),e.commands.addCommands(o)},f.uninstallFrom=function(e){e.commands.removeCommands(o);var t=e.getKeyboardHandler();t.isOccurHandler&&e.keyBinding.removeKeyboardHandler(t)},t.occurStartCommand=s}),ace.define("ace/commands/incremental_search_commands",["require","exports","module","ace/config","ace/lib/oop","ace/keyboard/hash_handler","ace/commands/occur_commands"],function(e,t,n){function u(e){this.$iSearch=e}var r=e("../config"),i=e("../lib/oop"),s=e("../keyboard/hash_handler").HashHandler,o=e("./occur_commands").occurStartCommand;t.iSearchStartCommands=[{name:"iSearch",bindKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(e,t){r.loadModule(["core","ace/incremental_search"],function(n){var r=n.iSearch=n.iSearch||new n.IncrementalSearch;r.activate(e,t.backwards),t.jumpToFirstMatch&&r.next(t)})},readOnly:!0},{name:"iSearchBackwards",exec:function(e,t){e.execCommand("iSearch",{backwards:!0})},readOnly:!0},{name:"iSearchAndGo",bindKey:{win:"Ctrl-K",mac:"Command-G"},exec:function(e,t){e.execCommand("iSearch",{jumpToFirstMatch:!0,useCurrentOrPrevSearch:!0})},readOnly:!0},{name:"iSearchBackwardsAndGo",bindKey:{win:"Ctrl-Shift-K",mac:"Command-Shift-G"},exec:function(e){e.execCommand("iSearch",{jumpToFirstMatch:!0,backwards:!0,useCurrentOrPrevSearch:!0})},readOnly:!0}],t.iSearchCommands=[{name:"restartSearch",bindKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(e){e.cancelSearch(!0)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"searchForward",bindKey:{win:"Ctrl-S|Ctrl-K",mac:"Ctrl-S|Command-G"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,e.next(t)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"searchBackward",bindKey:{win:"Ctrl-R|Ctrl-Shift-K",mac:"Ctrl-R|Command-Shift-G"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,t.backwards=!0,e.next(t)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"extendSearchTerm",exec:function(e,t){e.addString(t)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"extendSearchTermSpace",bindKey:"space",exec:function(e){e.addString(" ")},readOnly:!0,isIncrementalSearchCommand:!0},{name:"shrinkSearchTerm",bindKey:"backspace",exec:function(e){e.removeChar()},readOnly:!0,isIncrementalSearchCommand:!0},{name:"confirmSearch",bindKey:"return",exec:function(e){e.deactivate()},readOnly:!0,isIncrementalSearchCommand:!0},{name:"cancelSearch",bindKey:"esc|Ctrl-G",exec:function(e){e.deactivate(!0)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"occurisearch",bindKey:"Ctrl-O",exec:function(e){var t=i.mixin({},e.$options);e.deactivate(),o.exec(e.$editor,t)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"yankNextWord",bindKey:"Ctrl-w",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorWordRight()}),r=t.session.getTextRange(n);e.addString(r)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"yankNextChar",bindKey:"Ctrl-Alt-y",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorRight()}),r=t.session.getTextRange(n);e.addString(r)},readOnly:!0,isIncrementalSearchCommand:!0},{name:"recenterTopBottom",bindKey:"Ctrl-l",exec:function(e){e.$editor.execCommand("recenterTopBottom")},readOnly:!0,isIncrementalSearchCommand:!0},{name:"selectAllMatches",bindKey:"Ctrl-space",exec:function(e){var t=e.$editor,n=t.session.$isearchHighlight,r=n&&n.cache?n.cache.reduce(function(e,t){return e.concat(t?t:[])},[]):[];e.deactivate(!1),r.forEach(t.selection.addRange.bind(t.selection))},readOnly:!0,isIncrementalSearchCommand:!0},{name:"searchAsRegExp",bindKey:"Alt-r",exec:function(e){e.convertNeedleToRegExp()},readOnly:!0,isIncrementalSearchCommand:!0}],i.inherits(u,s),function(){this.attach=function(e){var n=this.$iSearch;s.call(this,t.iSearchCommands,e.commands.platform),this.$commandExecHandler=e.commands.addEventListener("exec",function(e){return e.command.isIncrementalSearchCommand?(e.stopPropagation(),e.preventDefault(),e.command.exec(n,e.args||{})):undefined})},this.detach=function(e){if(!this.$commandExecHandler)return;e.commands.removeEventListener("exec",this.$commandExecHandler),delete this.$commandExecHandler};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){if((n===1||n===8)&&r==="v"||n===1&&r==="y")return null;var s=e.call(this,t,n,r,i);if(s.command)return s;if(n==-1){var o=this.commands.extendSearchTerm;if(o)return{command:o,args:r}}return{command:"null",passEvent:n==0||n==4}}}.call(u.prototype),t.IncrementalSearchKeyboardHandler=u}),ace.define("ace/incremental_search",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/search_highlight","ace/commands/incremental_search_commands","ace/lib/dom","ace/commands/command_manager","ace/editor","ace/config"],function(e,t,n){"use strict";function f(){this.$options={wrap:!1,skipCurrent:!1},this.$keyboardHandler=new a(this)}function l(e){return e instanceof RegExp}function c(e){var t=String(e),n=t.indexOf("/"),r=t.lastIndexOf("/");return{expression:t.slice(n+1,r),flags:t.slice(r+1)}}function h(e,t){try{return new RegExp(e,t)}catch(n){return e}}function p(e){return h(e.expression,e.flags)}var r=e("./lib/oop"),i=e("./range").Range,s=e("./search").Search,o=e("./search_highlight").SearchHighlight,u=e("./commands/incremental_search_commands"),a=u.IncrementalSearchKeyboardHandler;r.inherits(f,s),function(){this.activate=function(e,t){this.$editor=e,this.$startPos=this.$currentPos=e.getCursorPosition(),this.$options.needle="",this.$options.backwards=t,e.keyBinding.addKeyboardHandler(this.$keyboardHandler),this.$originalEditorOnPaste=e.onPaste,e.onPaste=this.onPaste.bind(this),this.$mousedownHandler=e.addEventListener("mousedown",this.onMouseDown.bind(this)),this.selectionFix(e),this.statusMessage(!0)},this.deactivate=function(e){this.cancelSearch(e);var t=this.$editor;t.keyBinding.removeKeyboardHandler(this.$keyboardHandler),this.$mousedownHandler&&(t.removeEventListener("mousedown",this.$mousedownHandler),delete this.$mousedownHandler),t.onPaste=this.$originalEditorOnPaste,this.message("")},this.selectionFix=function(e){e.selection.isEmpty()&&!e.session.$emacsMark&&e.clearSelection()},this.highlight=function(e){var t=this.$editor.session,n=t.$isearchHighlight=t.$isearchHighlight||t.addDynamicMarker(new o(null,"ace_isearch-result","text"));n.setRegexp(e),t._emit("changeBackMarker")},this.cancelSearch=function(e){var t=this.$editor;return this.$prevNeedle=this.$options.needle,this.$options.needle="",e?(t.moveCursorToPosition(this.$startPos),this.$currentPos=this.$startPos):t.pushEmacsMark&&t.pushEmacsMark(this.$startPos,!1),this.highlight(null),i.fromPoints(this.$currentPos,this.$currentPos)},this.highlightAndFindWithNeedle=function(e,t){if(!this.$editor)return null;var n=this.$options;t&&(n.needle=t.call(this,n.needle||"")||"");if(n.needle.length===0)return this.statusMessage(!0),this.cancelSearch(!0);n.start=this.$currentPos;var r=this.$editor.session,s=this.find(r),o=this.$editor.emacsMark?!!this.$editor.emacsMark():!this.$editor.selection.isEmpty();return s&&(n.backwards&&(s=i.fromPoints(s.end,s.start)),this.$editor.selection.setRange(i.fromPoints(o?this.$startPos:s.end,s.end)),e&&(this.$currentPos=s.end),this.highlight(n.re)),this.statusMessage(s),s},this.addString=function(e){return this.highlightAndFindWithNeedle(!1,function(t){if(!l(t))return t+e;var n=c(t);return n.expression+=e,p(n)})},this.removeChar=function(e){return this.highlightAndFindWithNeedle(!1,function(e){if(!l(e))return e.substring(0,e.length-1);var t=c(e);return t.expression=t.expression.substring(0,t.expression.length-1),p(t)})},this.next=function(e){return e=e||{},this.$options.backwards=!!e.backwards,this.$currentPos=this.$editor.getCursorPosition(),this.highlightAndFindWithNeedle(!0,function(t){return e.useCurrentOrPrevSearch&&t.length===0?this.$prevNeedle||"":t})},this.onMouseDown=function(e){return this.deactivate(),!0},this.onPaste=function(e){this.addString(e)},this.convertNeedleToRegExp=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?e:h(e,"ig")})},this.convertNeedleToString=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?c(e).expression:e})},this.statusMessage=function(e){var t=this.$options,n="";n+=t.backwards?"reverse-":"",n+="isearch: "+t.needle,n+=e?"":" (not found)",this.message(n)},this.message=function(e){this.$editor.showCommandLine?(this.$editor.showCommandLine(e),this.$editor.focus()):console.log(e)}}.call(f.prototype),t.IncrementalSearch=f;var d=e("./lib/dom");d.importCssString&&d.importCssString(".ace_marker-layer .ace_isearch-result {  position: absolute;  z-index: 6;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}div.ace_isearch-result {  border-radius: 4px;  background-color: rgba(255, 200, 0, 0.5);  box-shadow: 0 0 4px rgb(255, 200, 0);}.ace_dark div.ace_isearch-result {  background-color: rgb(100, 110, 160);  box-shadow: 0 0 4px rgb(80, 90, 140);}","incremental-search-highlighting");var v=e("./commands/command_manager");(function(){this.setupIncrementalSearch=function(e,t){if(this.usesIncrementalSearch==t)return;this.usesIncrementalSearch=t;var n=u.iSearchStartCommands,r=t?"addCommands":"removeCommands";this[r](n)}}).call(v.CommandManager.prototype);var m=e("./editor").Editor;e("./config").defineOptions(m.prototype,"editor",{useIncrementalSearch:{set:function(e){this.keyBinding.$handlers.forEach(function(t){t.setupIncrementalSearch&&t.setupIncrementalSearch(this,e)}),this._emit("incrementalSearchSettingChanged",{isEnabled:e})}}})}),ace.define("ace/keyboard/emacs",["require","exports","module","ace/lib/dom","ace/incremental_search","ace/commands/incremental_search_commands","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom");e("../incremental_search");var i=e("../commands/incremental_search_commands"),s=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.floor((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(i,r)},o=e("./hash_handler").HashHandler;t.handler=new o,t.handler.isEmacs=!0,t.handler.$id="ace/keyboard/emacs";var u=!1,a,f;t.handler.attach=function(e){u||(u=!0,r.importCssString("            .emacs-mode .ace_cursor{                border: 1px rgba(50,250,50,0.8) solid!important;                -moz-box-sizing: border-box!important;                -webkit-box-sizing: border-box!important;                box-sizing: border-box!important;                background-color: rgba(0,250,0,0.9);                opacity: 0.5;            }            .emacs-mode .ace_hidden-cursors .ace_cursor{                opacity: 1;                background-color: transparent;            }            .emacs-mode .ace_overwrite-cursors .ace_cursor {                opacity: 1;                background-color: transparent;                border-width: 0 0 2px 2px !important;            }            .emacs-mode .ace_text-layer {                z-index: 4            }            .emacs-mode .ace_cursor-layer {                z-index: 2            }","emacsMode")),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.$emacsMark=null,e.session.$emacsMarkRing=e.session.$emacsMarkRing||[],e.emacsMark=function(){return this.session.$emacsMark},e.setEmacsMark=function(e){this.session.$emacsMark=e},e.pushEmacsMark=function(e,t){var n=this.session.$emacsMark;n&&this.session.$emacsMarkRing.push(n),!e||t?this.setEmacsMark(e):this.session.$emacsMarkRing.push(e)},e.popEmacsMark=function(){var e=this.emacsMark();return e?(this.setEmacsMark(null),e):this.session.$emacsMarkRing.pop()},e.getLastEmacsMark=function(e){return this.session.$emacsMark||this.session.$emacsMarkRing.slice(-1)[0]},e.emacsMarkForSelection=function(e){var t=this.selection,n=this.multiSelect?this.multiSelect.getAllRanges().length:1,r=t.index||0,i=this.session.$emacsMarkRing,s=i.length-(n-r),o=i[s]||t.anchor;return e&&i.splice(s,1,"row"in e&&"column"in e?e:undefined),o},e.on("click",c),e.on("changeSession",l),e.renderer.screenToTextCoordinates=s,e.setStyle("emacs-mode"),e.commands.addCommands(v),t.handler.platform=e.commands.platform,e.$emacsModeHandler=this,e.addEventListener("copy",this.onCopy),e.addEventListener("paste",this.onPaste)},t.handler.detach=function(e){delete e.renderer.screenToTextCoordinates,e.session.$selectLongWords=a,e.session.$useEmacsStyleLineStart=f,e.removeEventListener("click",c),e.removeEventListener("changeSession",l),e.unsetStyle("emacs-mode"),e.commands.removeCommands(v),e.removeEventListener("copy",this.onCopy),e.removeEventListener("paste",this.onPaste),e.$emacsModeHandler=null};var l=function(e){e.oldSession&&(e.oldSession.$selectLongWords=a,e.oldSession.$useEmacsStyleLineStart=f),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.hasOwnProperty("$emacsMark")||(e.session.$emacsMark=null),e.session.hasOwnProperty("$emacsMarkRing")||(e.session.$emacsMarkRing=[])},c=function(e){e.editor.session.$emacsMark=null},h=e("../lib/keys").KEY_MODS,p={C:"ctrl",S:"shift",M:"alt",CMD:"command"},d=["C-S-M-CMD","S-M-CMD","C-M-CMD","C-S-CMD","C-S-M","M-CMD","S-CMD","S-M","C-CMD","C-M","C-S","CMD","M","S","C"];d.forEach(function(e){var t=0;e.split("-").forEach(function(e){t|=h[p[e]]}),p[t]=e.toLowerCase()+"-"}),t.handler.onCopy=function(e,n){if(n.$handlesEmacsOnCopy)return;n.$handlesEmacsOnCopy=!0,t.handler.commands.killRingSave.exec(n),n.$handlesEmacsOnCopy=!1},t.handler.onPaste=function(e,t){t.pushEmacsMark(t.getCursorPosition())},t.handler.bindKey=function(e,t){typeof e=="object"&&(e=e[this.platform]);if(!e)return;var n=this.commandKeyBinding;e.split("|").forEach(function(e){e=e.toLowerCase(),n[e]=t;var r=e.split(" ").slice(0,-1);r.reduce(function(e,t,n){var r=e[n-1]?e[n-1]+" ":"";return e.concat([r+t])},[]).forEach(function(e){n[e]||(n[e]="null")})},this)},t.handler.getStatusText=function(e,t){var n="";return t.count&&(n+=t.count),t.keyChain&&(n+=" "+t.keyChain),n},t.handler.handleKeyboard=function(e,t,n,r){if(r===-1)return undefined;var i=e.editor;i._signal("changeStatus");if(t==-1){i.pushEmacsMark();if(e.count){var s=(new Array(e.count+1)).join(n);return e.count=null,{command:"insertstring",args:s}}}var o=p[t];if(o=="c-"||e.count){var u=parseInt(n[n.length-1]);if(typeof u=="number"&&!isNaN(u))return e.count=Math.max(e.count,0)||0,e.count=10*e.count+u,{command:"null"}}o&&(n=o+n),e.keyChain&&(n=e.keyChain+=" "+n);var a=this.commandKeyBinding[n];e.keyChain=a=="null"?n:"";if(!a)return undefined;if(a==="null")return{command:"null"};if(a==="universalArgument")return e.count=-4,{command:"null"};var f;typeof a!="string"&&(f=a.args,a.command&&(a=a.command),a==="goorselect"&&(a=i.emacsMark()?f[1]:f[0],f=null));if(typeof a=="string"){(a==="insertstring"||a==="splitline"||a==="togglecomment")&&i.pushEmacsMark(),a=this.commands[a]||i.commands.commands[a];if(!a)return undefined}!a.readOnly&&!a.isYank&&(e.lastCommand=null),!a.readOnly&&i.emacsMark()&&i.setEmacsMark(null);if(e.count){var u=e.count;e.count=0;if(!a||!a.handlesCount)return{args:f,command:{exec:function(e,t){for(var n=0;n<u;n++)a.exec(e,t)},multiSelectAction:a.multiSelectAction}};f||(f={}),typeof f=="object"&&(f.count=u)}return{command:a,args:f}},t.emacsKeys={"Up|C-p":{command:"goorselect",args:["golineup","selectup"]},"Down|C-n":{command:"goorselect",args:["golinedown","selectdown"]},"Left|C-b":{command:"goorselect",args:["gotoleft","selectleft"]},"Right|C-f":{command:"goorselect",args:["gotoright","selectright"]},"C-Left|M-b":{command:"goorselect",args:["gotowordleft","selectwordleft"]},"C-Right|M-f":{command:"goorselect",args:["gotowordright","selectwordright"]},"Home|C-a":{command:"goorselect",args:["gotolinestart","selecttolinestart"]},"End|C-e":{command:"goorselect",args:["gotolineend","selecttolineend"]},"C-Home|S-M-,":{command:"goorselect",args:["gotostart","selecttostart"]},"C-End|S-M-.":{command:"goorselect",args:["gotoend","selecttoend"]},"S-Up|S-C-p":"selectup","S-Down|S-C-n":"selectdown","S-Left|S-C-b":"selectleft","S-Right|S-C-f":"selectright","S-C-Left|S-M-b":"selectwordleft","S-C-Right|S-M-f":"selectwordright","S-Home|S-C-a":"selecttolinestart","S-End|S-C-e":"selecttolineend","S-C-Home":"selecttostart","S-C-End":"selecttoend","C-l":"recenterTopBottom","M-s":"centerselection","M-g":"gotoline","C-x C-p":"selectall","C-Down":{command:"goorselect",args:["gotopagedown","selectpagedown"]},"C-Up":{command:"goorselect",args:["gotopageup","selectpageup"]},"PageDown|C-v":{command:"goorselect",args:["gotopagedown","selectpagedown"]},"PageUp|M-v":{command:"goorselect",args:["gotopageup","selectpageup"]},"S-C-Down":"selectpagedown","S-C-Up":"selectpageup","C-s":"iSearch","C-r":"iSearchBackwards","M-C-s":"findnext","M-C-r":"findprevious","S-M-5":"replace",Backspace:"backspace","Delete|C-d":"del","Return|C-m":{command:"insertstring",args:"\n"},"C-o":"splitline","M-d|C-Delete":{command:"killWord",args:"right"},"C-Backspace|M-Backspace|M-Delete":{command:"killWord",args:"left"},"C-k":"killLine","C-y|S-Delete":"yank","M-y":"yankRotate","C-g":"keyboardQuit","C-w|C-S-W":"killRegion","M-w":"killRingSave","C-Space":"setMark","C-x C-x":"exchangePointAndMark","C-t":"transposeletters","M-u":"touppercase","M-l":"tolowercase","M-/":"autocomplete","C-u":"universalArgument","M-;":"togglecomment","C-/|C-x u|S-C--|C-z":"undo","S-C-/|S-C-x u|C--|S-C-z":"redo","C-x r":"selectRectangularRegion","M-x":{command:"focusCommandLine",args:"M-x "}},t.handler.bindKeys(t.emacsKeys),t.handler.addCommands({recenterTopBottom:function(e){var t=e.renderer,n=t.$cursorLayer.getPixelPosition(),r=t.$size.scrollerHeight-t.lineHeight,i=t.scrollTop;Math.abs(n.top-i)<2?i=n.top-r:Math.abs(n.top-i-r*.5)<2?i=n.top:i=n.top-r*.5,e.session.setScrollTop(i)},selectRectangularRegion:function(e){e.multiSelect.toggleBlockSelection()},setMark:{exec:function(e,t){function u(){var t=e.popEmacsMark();t&&e.moveCursorToPosition(t)}if(t&&t.count){e.inMultiSelectMode?e.forEachSelection(u):u(),u();return}var n=e.emacsMark(),r=e.selection.getAllRanges(),i=r.map(function(e){return{row:e.start.row,column:e.start.column}}),s=!0,o=r.every(function(e){return e.isEmpty()});if(s&&(n||!o)){e.inMultiSelectMode?e.forEachSelection({exec:e.clearSelection.bind(e)}):e.clearSelection(),n&&e.pushEmacsMark(null);return}if(!n){i.forEach(function(t){e.pushEmacsMark(t)}),e.setEmacsMark(i[i.length-1]);return}},readOnly:!0,handlesCount:!0},exchangePointAndMark:{exec:function(t,n){var r=t.selection;if(!n.count&&!r.isEmpty()){r.setSelectionRange(r.getRange(),!r.isBackwards());return}if(n.count){var i={row:r.lead.row,column:r.lead.column};r.clearSelection(),r.moveCursorToPosition(t.emacsMarkForSelection(i))}else r.selectToPosition(t.emacsMarkForSelection())},readOnly:!0,handlesCount:!0,multiSelectAction:"forEach"},killWord:{exec:function(e,n){e.clearSelection(),n=="left"?e.selection.selectWordLeft():e.selection.selectWordRight();var r=e.getSelectionRange(),i=e.session.getTextRange(r);t.killRing.add(i),e.session.remove(r),e.clearSelection()},multiSelectAction:"forEach"},killLine:function(e){e.pushEmacsMark(null);var n=e.getCursorPosition();n.column===0&&e.session.doc.getLine(n.row).length===0?e.selection.selectLine():(e.clearSelection(),e.selection.selectLineEnd());var r=e.getSelectionRange(),i=e.session.getTextRange(r);t.killRing.add(i),e.session.remove(r),e.clearSelection()},yank:function(e){e.onPaste(t.killRing.get()||""),e.keyBinding.$data.lastCommand="yank"},yankRotate:function(e){if(e.keyBinding.$data.lastCommand!="yank")return;e.undo(),e.session.$emacsMarkRing.pop(),e.onPaste(t.killRing.rotate()),e.keyBinding.$data.lastCommand="yank"},killRegion:{exec:function(e){t.killRing.add(e.getCopyText()),e.commands.byName.cut.exec(e)},readOnly:!0,multiSelectAction:"forEach"},killRingSave:{exec:function(e){e.$handlesEmacsOnCopy=!0;var n=e.session.$emacsMarkRing.slice(),r=[];t.killRing.add(e.getCopyText()),setTimeout(function(){function t(){var t=e.selection,n=t.getRange(),i=t.isBackwards()?n.end:n.start;r.push({row:i.row,column:i.column}),t.clearSelection()}e.$handlesEmacsOnCopy=!1,e.inMultiSelectMode?e.forEachSelection({exec:t}):t(),e.session.$emacsMarkRing=n.concat(r.reverse())},0)},readOnly:!0},keyboardQuit:function(e){e.selection.clearSelection(),e.setEmacsMark(null),e.keyBinding.$data.count=null},focusCommandLine:function(e,t){e.showCommandLine&&e.showCommandLine(t)}}),t.handler.addCommands(i.iSearchStartCommands);var v=t.handler.commands;v.yank.isYank=!0,v.yankRotate.isYank=!0,t.killRing={$data:[],add:function(e){e&&this.$data.push(e),this.$data.length>30&&this.$data.shift()},get:function(e){return e=e||1,this.$data.slice(this.$data.length-e,this.$data.length).reverse().join("\n")},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}})
\ No newline at end of file
diff --git a/js/ace/keybinding-vim.js b/js/ace/keybinding-vim.js
new file mode 100644
index 0000000..1156755
--- /dev/null
+++ b/js/ace/keybinding-vim.js
@@ -0,0 +1 @@
+ace.define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/dom","ace/lib/oop","ace/lib/keys","ace/lib/event","ace/search","ace/lib/useragent","ace/search_highlight","ace/commands/multi_select_commands","ace/mode/text","ace/multi_select"],function(e,t,n){"use strict";function r(){function t(e){return typeof e!="object"?e+"":"line"in e?e.line+":"+e.ch:"anchor"in e?t(e.anchor)+"->"+t(e.head):Array.isArray(e)?"["+e.map(function(e){return t(e)})+"]":JSON.stringify(e)}var e="";for(var n=0;n<arguments.length;n++){var r=arguments[n],i=t(r);e+=i+"  "}console.log(e)}function m(e){return{row:e.line,column:e.ch}}function g(e){return new w(e.row,e.column)}function S(e){e.setOption("disableInput",!0),e.setOption("showCursorWhenSelecting",!1),v.signal(e,"vim-mode-change",{mode:"normal"}),e.on("cursorActivity",Rn),et(e),v.on(e.getInputField(),"paste",O(e))}function x(e){e.setOption("disableInput",!1),e.off("cursorActivity",Rn),v.off(e.getInputField(),"paste",O(e)),e.state.vim=null}function T(e,t){this==v.keyMap.vim&&v.rmClass(e.getWrapperElement(),"cm-fat-cursor"),(!t||t.attach!=N)&&x(e,!1)}function N(e,t){this==v.keyMap.vim&&v.addClass(e.getWrapperElement(),"cm-fat-cursor"),(!t||t.attach!=N)&&S(e)}function C(e,t){if(!t)return undefined;var n=A(e);if(!n)return!1;var r=v.Vim.findKey(t,n);return typeof r=="function"&&v.signal(t,"vim-keypress",n),r}function A(e){if(e.charAt(0)=="'")return e.charAt(1);var t=e.split("-");/-$/.test(e)&&t.splice(-2,2,"-");var n=t[t.length-1];if(t.length==1&&t[0].length==1)return!1;if(t.length==2&&t[0]=="Shift"&&n.length==1)return!1;var r=!1;for(var i=0;i<t.length;i++){var s=t[i];s in k?t[i]=k[s]:r=!0,s in L&&(t[i]=L[s])}return r?(W(n)&&(t[t.length-1]=n.toLowerCase()),"<"+t.join("-")+">"):!1}function O(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(gt(e.getCursor(),0,1)),dt.enterInsertMode(e,{},t))}),t.onPasteFn}function P(e,t){var n=[];for(var r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}function q(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function R(e){return/^[a-z]$/.test(e)}function U(e){return"()[]{}".indexOf(e)!=-1}function z(e){return M.test(e)}function W(e){return/^[A-Z]$/.test(e)}function X(e){return/^\s*$/.test(e)}function V(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function J(e,t,n){if(t===undefined)throw Error("defaultValue is required");n||(n="string"),$[e]={type:n,defaultValue:t},K(e,t)}function K(e,t,n){var r=$[e];if(!r)throw Error("Unknown option: "+e);if(r.type=="boolean"){if(t&&t!==!0)throw Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}r.value=r.type=="boolean"?!!t:t}function Q(e){var t=$[e];if(!t)throw Error("Unknown option: "+e);return t.value}function Z(){this.latestRegister=undefined,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=undefined,this.lastInsertModeChanges=Y()}function et(e){return e.state.vim||(e.state.vim={inputState:new st,lastEditInputState:undefined,lastEditActionCommand:undefined,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:undefined,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{}}),e.state.vim}function nt(){tt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:undefined,jumpList:G(),macroModeState:new Z,lastChararacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new at({}),searchHistoryController:new ft({}),exCommandHistoryController:new ft({})};for(var e in $){var t=$[e];t.value=t.defaultValue}}function st(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function ot(e,t){e.state.vim.inputState=new st,v.signal(e,"vim-command-done",t)}function ut(e,t,n){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function at(e){this.registers=e,this.unnamedRegister=e['"']=new ut,e["."]=new ut,e[":"]=new ut,e["/"]=new ut}function ft(){this.historyBuffer=[],this.iterator,this.initialPrefix=null}function ht(e,t){var n=[];for(var r=0;r<t;r++)n.push(e);return n}function vt(e,t,n){var r=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=At(e,r)-1;i=n?i+1:i;var s=Math.min(Math.max(0,t.ch),i);return w(r,s)}function mt(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function gt(e,t,n){return typeof t=="object"&&(n=t.ch,t=t.line),w(e.line+t,e.ch+n)}function yt(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function bt(e,t,n,r){var i,s=[],o=[];for(var u=0;u<t.length;u++){var a=t[u];if(n=="insert"&&a.context!="insert"||a.context&&a.context!=n||r.operator&&a.type=="action"||!(i=wt(e,a.keys)))continue;i=="partial"&&s.push(a),i=="full"&&o.push(a)}return{partial:s.length&&s,full:o.length&&o}}function wt(e,t){if(t.slice(-11)=="<character>"){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?"full":i.indexOf(r)==0?"partial":!1}return e==t?"full":t.indexOf(e)==0?"partial":!1}function Et(e){var t=/^.*(<[\w\-]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case"<CR>":n="\n";break;case"<Space>":n=" ";break;default:}return n}function St(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function xt(e){return w(e.line,e.ch)}function Tt(e,t){return e.ch==t.ch&&e.line==t.line}function Nt(e,t){return e.line<t.line?!0:e.line==t.line&&e.ch<t.ch?!0:!1}function Ct(e,t){return arguments.length>2&&(t=Ct.apply(undefined,Array.prototype.slice.call(arguments,1))),Nt(e,t)?e:t}function kt(e,t){return arguments.length>2&&(t=kt.apply(undefined,Array.prototype.slice.call(arguments,1))),Nt(e,t)?t:e}function Lt(e,t,n){var r=Nt(e,t),i=Nt(t,n);return r&&i}function At(e,t){return e.getLine(t).length}function Ot(e){return e.split("").reverse().join("")}function Mt(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function _t(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function Dt(e,t,n){var r=At(e,t),i=(new Array(n-r+1)).join(" ");e.setCursor(w(t,r)),e.replaceRange(i,e.getCursor())}function Pt(e,t){var n=[],r=e.listSelections(),i=xt(e.clipPos(t)),s=!Tt(t,i),o=e.getCursor("head"),u=Bt(r,o),a=Tt(r[u].head,r[u].anchor),f=r.length-1,l=f-u>u?f:0,c=r[l].anchor,h=Math.min(c.line,i.line),p=Math.max(c.line,i.line),d=c.ch,v=i.ch,m=r[l].head.ch-d,g=v-d;m>0&&g<=0?(d++,s||v--):m<0&&g>=0?(d--,a||v++):m<0&&g==-1&&(d--,v++);for(var y=h;y<=p;y++){var b={anchor:new w(y,d),head:new w(y,v)};n.push(b)}return u=i.line==p?n.length-1:0,e.setSelections(n),t.ch=v,c.ch=d,c}function Ht(e,t,n){var r=[];for(var i=0;i<n;i++){var s=gt(t,i,0);r.push({anchor:s,head:s})}e.setSelections(r,0)}function Bt(e,t,n){for(var r=0;r<e.length;r++){var i=n!="head"&&Tt(e[r].anchor,t),s=n!="anchor"&&Tt(e[r].head,t);if(i||s)return r}return-1}function jt(e,t){var n=t.lastSelection,r=function(){var t=e.listSelections(),n=t[0],r=t[t.length-1],i=Nt(n.anchor,n.head)?n.anchor:n.head,s=Nt(r.anchor,r.head)?r.head:r.anchor;return[i,s]},i=function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var s=i.width,o=i.height;r=w(t.line+o,t.ch+s);var u=[];for(var a=t.line;a<r.line;a++){var f=w(a,t.ch),l=w(a,r.ch),c={anchor:f,head:l};u.push(c)}e.setSelections(u)}else{var h=n.anchorMark.find(),p=n.headMark.find(),d=p.line-h.line,v=p.ch-h.ch;r={line:r.line+d,ch:d?r.ch:v+r.ch},n.visualLine&&(t=w(t.line,0),r=w(r.line,At(e,r.line))),e.setSelection(t,r)}return[t,r]};return t.visualMode?r():i()}function Ft(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:xt(n),head:xt(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function It(e,t,n){var r=e.state.vim.sel,i=r.head,s=r.anchor,o;return Nt(n,t)&&(o=n,n=t,t=o),Nt(i,s)?(i=Ct(t,i),s=kt(s,n)):(s=Ct(t,s),i=kt(i,n),i=gt(i,0,-1),i.ch==-1&&i.line!=e.firstLine()&&(i=w(i.line-1,At(e,i.line-1)))),[s,i]}function qt(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?"line":r.visualBlock?"block":"char",i=Rt(e,t,n);e.setSelections(i.ranges,i.primary),Un(e)}function Rt(e,t,n,r){var i=xt(t.head),s=xt(t.anchor);if(n=="char"){var o=!r&&!Nt(t.head,t.anchor)?1:0,u=Nt(t.head,t.anchor)?1:0;return i=gt(t.head,0,o),s=gt(t.anchor,0,u),{ranges:[{anchor:s,head:i}],primary:0}}if(n=="line"){if(!Nt(t.head,t.anchor)){s.ch=0;var a=e.lastLine();i.line>a&&(i.line=a),i.ch=At(e,i.line)}else i.ch=0,s.ch=At(e,s.line);return{ranges:[{anchor:s,head:i}],primary:0}}if(n=="block"){var f=Math.min(s.line,i.line),l=Math.min(s.ch,i.ch),c=Math.max(s.line,i.line),h=Math.max(s.ch,i.ch)+1,p=c-f+1,d=i.line==f?0:p-1,v=[];for(var m=0;m<p;m++)v.push({anchor:w(f+m,l),head:w(f+m,h)});return{ranges:v,primary:d}}}function Ut(e){var t=e.getCursor("head");return e.getSelection().length==1&&(t=Ct(t,e.getCursor("anchor"))),t}function zt(e,t){var n=e.state.vim;t!==!1&&e.setCursor(vt(e,n.sel.head)),Ft(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,v.signal(e,"vim-mode-change",{mode:"normal"}),n.fakeCursor&&n.fakeCursor.clear()}function Wt(e,t,n){var r=e.getRange(t,n);if(/\n\s*$/.test(r)){var i=r.split("\n");i.pop();var s;for(var s=i.pop();i.length>0&&s&&X(s);s=i.pop())n.line--,n.ch=0;s?(n.line--,n.ch=At(e,n.line)):n.ch=0}}function Xt(e,t,n){t.ch=0,n.ch=0,n.line++}function Vt(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function $t(e,t,n,r,i){var s=Ut(e),o=e.getLine(s.line),u=s.ch,a=o.substring(u),f;i?f=a.search(/\w/):f=a.search(/\S/);if(f==-1)return null;u+=f,a=o.substring(u);var l=o.substring(0,u),c;r?c=/^\S+/:/\w/.test(o.charAt(u))?c=/^\w+/:c=/^[^\w\s]+/;var h=c.exec(a),p=u,d=u+h[0].length,v=Ot(l),m=c.exec(v);m&&(p-=m[0].length);if(t){var g=o.substring(d),y=g.match(/^\s*/)[0].length;if(y>0)d+=y;else{var b=v.length-p,E=v.substring(b),S=E.match(/^\s*/)[0].length;p-=S}}return{start:w(s.line,p),end:w(s.line,d)}}function Jt(e,t,n){Tt(t,n)||tt.jumpList.add(e,t,n)}function Kt(e,t){tt.lastChararacterSearch.increment=e,tt.lastChararacterSearch.forward=t.forward,tt.lastChararacterSearch.selectedCharacter=t.selectedCharacter}function Yt(e,t,n,r){var i=xt(e.getCursor()),s=n?1:-1,o=n?e.lineCount():-1,u=i.ch,a=i.line,f=e.getLine(a),l={lineText:f,nextCh:f.charAt(u),lastCh:null,index:u,symb:r,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[r],forward:n,depth:0,curMoveThrough:!1},c=Qt[r];if(!c)return i;var h=Gt[c].init,p=Gt[c].isComplete;h&&h(l);while(a!==o&&t){l.index+=s,l.nextCh=l.lineText.charAt(l.index);if(!l.nextCh){a+=s,l.lineText=e.getLine(a)||"";if(s>0)l.index=0;else{var d=l.lineText.length;l.index=d>0?d-1:0}l.nextCh=l.lineText.charAt(l.index)}p(l)&&(i.line=a,i.ch=l.index,t--)}return l.nextCh||l.curMoveThrough?w(a,l.index):i}function Zt(e,t,n,r,i){var s=t.line,o=t.ch,u=e.getLine(s),a=n?1:-1,f=r?D:_;if(i&&u==""){s+=a,u=e.getLine(s);if(!q(e,s))return null;o=n?0:u.length}for(;;){if(i&&u=="")return{from:0,to:0,line:s};var l=a>0?u.length:-1,c=l,h=l;while(o!=l){var p=!1;for(var d=0;d<f.length&&!p;++d)if(f[d].test(u.charAt(o))){c=o;while(o!=l&&f[d].test(u.charAt(o)))o+=a;h=o,p=c!=h;if(c==t.ch&&s==t.line&&h==c+a)continue;return{from:Math.min(c,h+1),to:Math.max(c,h),line:s}}p||(o+=a)}s+=a;if(!q(e,s))return null;u=e.getLine(s),o=a>0?0:u.length}throw new Error("The impossible happened.")}function en(e,t,n,r,i,s){var o=xt(t),u=[];(r&&!i||!r&&i)&&n++;var a=!r||!i;for(var f=0;f<n;f++){var l=Zt(e,t,r,s,a);if(!l){var c=At(e,e.lastLine());u.push(r?{line:e.lastLine(),from:c,to:c}:{line:0,from:0,to:0});break}u.push(l),t=w(l.line,r?l.to-1:l.from)}var h=u.length!=n,p=u[0],d=u.pop();return r&&!i?(!h&&(p.from!=o.ch||p.line!=o.line)&&(d=u.pop()),w(d.line,d.from)):r&&i?w(d.line,d.to-1):!r&&i?(!h&&(p.to!=o.ch||p.line!=o.line)&&(d=u.pop()),w(d.line,d.to)):w(d.line,d.from)}function tn(e,t,n,r){var i=e.getCursor(),s=i.ch,o;for(var u=0;u<t;u++){var a=e.getLine(i.line);o=sn(s,a,r,n,!0);if(o==-1)return null;s=o}return w(e.getCursor().line,o)}function nn(e,t){var n=e.getCursor().line;return vt(e,w(n,t-1))}function rn(e,t,n,r){if(!V(n,F))return;t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r)}function sn(e,t,n,r,i){var s;return r?(s=t.indexOf(n,e+1),s!=-1&&!i&&(s-=1)):(s=t.lastIndexOf(n,e-1),s!=-1&&!i&&(s+=1)),s}function on(e,t,n,r,i){function c(t){return!/\S/.test(e.getLine(t))}function h(e,t,n){return n?c(e)!=c(e+t):!c(e)&&c(e+t)}var s=t.line,o=e.firstLine(),u=e.lastLine(),a,f,l=s;if(r){while(o<=l&&l<=u&&n>0)h(l,r)&&n--,l+=r;return new w(l,0)}var p=e.state.vim;if(p.visualLine&&h(s,1,!0)){var d=p.sel.anchor;h(d.line,-1,!0)&&(!i||d.line!=s)&&(s+=1)}var v=c(s);for(l=s;l<=u&&n;l++)h(l,1,!0)&&(!i||c(l)!=v)&&n--;f=new w(l,0),l>u&&!v?v=!0:i=!1;for(l=s;l>o;l--)if(!i||c(l)==v||l==s)if(h(l,-1,!0))break;return a=new w(l,0),{start:a,end:f}}function un(e,t,n,r){var i=t,s,o,u={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],a={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[n],f=e.getLine(i.line).charAt(i.ch),l=f===a?1:0;s=e.scanForBracket(w(i.line,i.ch+l),-1,null,{bracketRegex:u}),o=e.scanForBracket(w(i.line,i.ch+l),1,null,{bracketRegex:u});if(!s||!o)return{start:i,end:i};s=s.pos,o=o.pos;if(s.line==o.line&&s.ch>o.ch||s.line>o.line){var c=s;s=o,o=c}return r?o.ch+=1:s.ch+=1,{start:s,end:o}}function an(e,t,n,r){var i=xt(t),s=e.getLine(i.line),o=s.split(""),u,a,f,l,c=o.indexOf(n);i.ch<c?i.ch=c:c<i.ch&&o[i.ch]==n&&(a=i.ch,--i.ch);if(o[i.ch]==n&&!a)u=i.ch+1;else for(f=i.ch;f>-1&&!u;f--)o[f]==n&&(u=f+1);if(u&&!a)for(f=u,l=o.length;f<l&&!a;f++)o[f]==n&&(a=f);return!u||!a?{start:i,end:i}:(r&&(--u,++a),{start:w(i.line,u),end:w(i.line,a)})}function fn(){}function ln(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new fn)}function cn(e,t,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp}):r(prompt(n,""))}function hn(e){var t=pn(e)||[];if(!t.length)return[];var n=[];if(t[0]!==0)return;for(var r=0;r<t.length;r++)typeof t[r]=="number"&&n.push(e.substring(t[r]+1,t[r+1]));return n}function pn(e){var t=!1,n=[];for(var r=0;r<e.length;r++){var i=e.charAt(r);!t&&i=="/"&&n.push(r),t=!t&&i=="\\"}return n}function dn(e){var t="|(){",n="}",r=!1,i=[];for(var s=-1;s<e.length;s++){var o=e.charAt(s)||"",u=e.charAt(s+1)||"",a=u&&t.indexOf(u)!=-1;r?((o!=="\\"||!a)&&i.push(o),r=!1):o==="\\"?(r=!0,u&&n.indexOf(u)!=-1&&(a=!0),(!a||u==="\\")&&i.push(o)):(i.push(o),a&&u!=="\\"&&i.push("\\"))}return i.join("")}function vn(e){var t=!1,n=[];for(var r=-1;r<e.length;r++){var i=e.charAt(r)||"",s=e.charAt(r+1)||"";t?(n.push(i),t=!1):i==="\\"?(t=!0,z(s)||s==="$"?n.push("$"):s!=="/"&&s!=="\\"&&n.push("\\")):(i==="$"&&n.push("$"),n.push(i),s==="/"&&n.push("\\"))}return n.join("")}function mn(e){var t=new v.StringStream(e),n=[];while(!t.eol()){while(t.peek()&&t.peek()!="\\")n.push(t.next());t.match("\\/",!0)?n.push("/"):t.match("\\\\",!0)?n.push("\\"):n.push(t.next())}return n.join("")}function gn(e,t,n){var r=tt.registerController.getRegister("/");r.setText(e);if(e instanceof RegExp)return e;var i=pn(e),s,o;if(!i.length)s=e;else{s=e.substring(0,i[0]);var u=e.substring(i[0]);o=u.indexOf("i")!=-1}if(!s)return null;Q("pcre")||(s=dn(s)),n&&(t=/^[^A-Z]*$/.test(s));var a=new RegExp(s,t||o?"i":undefined);return a}function yn(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}function bn(e,t){var n="";return e&&(n+='<span style="font-family: monospace">'+e+"</span>"),n+='<input type="text"/> <span style="color: #888">',t&&(n+='<span style="color: #888">',n+=t,n+="</span>"),n}function En(e,t){var n=(t.prefix||"")+" "+(t.desc||""),r=bn(t.prefix,t.desc);cn(e,r,n,t.onClose,t)}function Sn(e,t){if(e instanceof RegExp&&t instanceof RegExp){var n=["global","multiline","ignoreCase","source"];for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function xn(e,t,n,r){if(!t)return;var i=ln(e),s=gn(t,!!n,!!r);if(!s)return;return Nn(e,s),Sn(s,i.getQuery())?s:(i.setQuery(s),s)}function Tn(e){if(e.source.charAt(0)=="^")var t=!0;return{token:function(n){if(t&&!n.sol()){n.skipToEnd();return}var r=n.match(e,!1);if(r){if(r[0].length==0)return n.next(),"searching";if(!n.sol()){n.backUp(1);if(!e.exec(n.next()+r[0]))return n.next(),null}return n.match(e),"searching"}while(!n.eol()){n.next();if(n.match(e,!1))break}},query:e}}function Nn(e,t){var n=ln(e).getOverlay();if(!n||t!=n.query)n&&e.removeOverlay(n),n=Tn(t),e.addOverlay(n),ln(e).setOverlay(n)}function Cn(e,t,n,r){return r===undefined&&(r=1),e.operation(function(){var i=e.getCursor(),s=e.getSearchCursor(n,i);for(var o=0;o<r;o++){var u=s.find(t);o==0&&u&&Tt(s.from(),i)&&(u=s.find(t));if(!u){s=e.getSearchCursor(n,t?w(e.lastLine()):w(e.firstLine(),0));if(!s.find(t))return}}return s.from()})}function kn(e){e.removeOverlay(ln(e).getOverlay()),ln(e).setOverlay(null)}function Ln(e,t,n){return typeof e!="number"&&(e=e.line),t instanceof Array?V(e,t):n?e>=t&&e<=n:e==t}function An(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function Pn(e,t,n,r,i,s,o,u,a){function c(){e.operation(function(){while(!f)h(),p();d()})}function h(){var t=e.getRange(s.from(),s.to()),n=t.replace(o,u);s.replace(n)}function p(){var t;while(t=s.findNext()&&Ln(s.from(),r,i)){if(!n&&l&&s.from().line==l.line)continue;e.scrollIntoView(s.from(),30),e.setSelection(s.from(),s.to()),l=s.from(),f=!1;return}f=!0}function d(t){t&&t(),e.focus();if(l){e.setCursor(l);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=l.ch}a&&a()}function m(t,n,r){v.e_stop(t);var i=v.keyName(t);switch(i){case"Y":h(),p();break;case"N":p();break;case"A":var s=a;a=undefined,e.operation(c),a=s;break;case"L":h();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":d(r)}return f&&d(r),!0}e.state.vim.exMode=!0;var f=!1,l=s.from();p();if(f){yn(e,"No matches for "+o.source);return}if(!t){c(),a&&a();return}En(e,{prefix:"replace with <strong>"+u+"</strong> (y/n/a/q/l)",onKeyDown:m})}function Hn(e){var t=e.state.vim,n=tt.macroModeState,r=tt.registerController.getRegister("."),i=n.isPlaying,s=n.lastInsertModeChanges,o=[];if(!i){var u=s.inVisualBlock?t.lastSelection.visualBlock.height:1,a=s.changes,o=[],f=0;while(f<a.length)o.push(a[f]),a[f]instanceof Wn?f++:f+=u;s.changes=o,e.off("change",qn),v.off(e.getInputField(),"keydown",Xn)}!i&&t.insertModeRepeat>1&&(Vn(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption("keyMap","vim"),e.setOption("disableInput",!0),e.toggleOverwrite(!1),r.setText(s.changes.join("")),v.signal(e,"vim-mode-change",{mode:"normal"}),n.isRecording&&Fn(n)}function Bn(e,t,n,r){var i=tt.registerController.getRegister(r),s=i.keyBuffer,o=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var u=0;u<s.length;u++){var a=s[u],f,l;while(a){f=/<\w+-.+?>|<\w+>|./.exec(a),l=f[0],a=a.substring(f.index+l.length),v.Vim.handleKey(e,l,"macro");if(t.insertMode){var c=i.insertModeChanges[o++].changes;tt.macroModeState.lastInsertModeChanges.changes=c,$n(e,c,1),Hn(e)}}}n.isPlaying=!1}function jn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=tt.registerController.getRegister(n);r&&r.pushText(t)}function Fn(e){if(e.isPlaying)return;var t=e.latestRegister,n=tt.registerController.getRegister(t);n&&n.pushInsertModeChanges(e.lastInsertModeChanges)}function In(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=tt.registerController.getRegister(n);r&&r.pushSearchQuery(t)}function qn(e,t){var n=tt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)while(t){r.expectCursorActivityForChange=!0;if(t.origin=="+input"||t.origin=="paste"||t.origin===undefined){var i=t.text.join("\n");r.changes.push(i)}t=t.next}}function Rn(e){var t=e.state.vim;if(t.insertMode){var n=tt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.changes=[]}else e.curOp.isVimOp||zn(e,t);t.visualMode&&Un(e)}function Un(e){var t=e.state.vim,n=xt(t.sel.head),r=gt(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:"cm-animate-fat-cursor"})}function zn(e,t){var n=e.getCursor("anchor"),r=e.getCursor("head");t.visualMode&&Tt(r,n)&&At(e,r.line)>r.ch?zt(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,v.signal(e,"vim-mode-change",{mode:"visual"}));if(t.visualMode){var i=Nt(r,n)?0:-1,s=Nt(r,n)?-1:0;r=gt(r,0,i),n=gt(n,0,s),t.sel={anchor:n,head:r},rn(e,t,"<",Ct(r,n)),rn(e,t,">",kt(r,n))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}function Wn(e){this.keyName=e}function Xn(e){function i(){return n.changes.push(new Wn(r)),!0}var t=tt.macroModeState,n=t.lastInsertModeChanges,r=v.keyName(e);(r.indexOf("Delete")!=-1||r.indexOf("Backspace")!=-1)&&v.lookupKey(r,"vim-insert",i)}function Vn(e,t,n,r){function u(){s?lt.processAction(e,t,t.lastEditActionCommand):lt.evalInput(e,t)}function a(n){if(i.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=i.lastInsertModeChanges;$n(e,r.changes,n)}}var i=tt.macroModeState;i.isPlaying=!0;var s=!!t.lastEditActionCommand,o=t.inputState;t.inputState=t.lastEditInputState;if(s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var f=0;f<n;f++)u(),a(1);else r||u(),a(n);t.inputState=o,t.insertMode&&!r&&Hn(e),i.isPlaying=!1}function $n(e,t,n){function r(t){return typeof t=="string"?v.commands[t](e):t(e),!0}var i=e.getCursor("head"),s=tt.macroModeState.lastInsertModeChanges.inVisualBlock;if(s){var o=e.state.vim,u=o.lastSelection,a=yt(u.anchor,u.head);Ht(e,i,a.line+1),n=e.listSelections().length,e.setCursor(i)}for(var f=0;f<n;f++){s&&e.setCursor(gt(i,f,0));for(var l=0;l<t.length;l++){var c=t[l];if(c instanceof Wn)v.lookupKey(c.keyName,"vim-insert",r);else{var h=e.getCursor();e.replaceRange(c,h,h)}}}s&&e.setCursor(gt(i,0,1))}function Kn(e,t,n){t.length>1&&t[0]=="n"&&(t=t.replace("numpad","")),t=Jn[t]||t;var r="";return n.ctrlKey&&(r+="C-"),n.altKey&&(r+="A-"),n.shiftKey&&(r+="S-"),r+=t,r.length>1&&(r="<"+r+">"),r}function Gn(e){var t=new e.constructor;return Object.keys(e).forEach(function(n){var r=e[n];Array.isArray(r)?r=r.slice():r&&typeof r=="object"&&r.constructor!=Object&&(r=Gn(r)),t[n]=r}),e.sel&&(t.sel={head:e.sel.head&&xt(e.sel.head),anchor:e.sel.anchor&&xt(e.sel.anchor)}),t}function Yn(e,t,n){var r=!1,i=E.maybeInitVimState_(e),s=i.visualBlock||i.wasInVisualBlock;i.wasInVisualBlock&&!e.ace.inMultiSelectMode?i.wasInVisualBlock=!1:e.ace.inMultiSelectMode&&i.visualBlock&&(i.wasInVisualBlock=!0);if(t=="<Esc>"&&!i.insertMode&&!i.visualMode&&e.ace.inMultiSelectMode)e.ace.exitMultiSelectMode();else if(s||!e.ace.inMultiSelectMode||e.ace.inVirtualSelectionMode)r=E.handleKey(e,t,n);else{var o=Gn(i);e.operation(function(){e.ace.forEachSelection(function(){var i=e.ace.selection;e.state.vim.lastHPos=i.$desiredColumn==null?i.lead.column:i.$desiredColumn;var s=e.getCursor("head"),u=e.getCursor("anchor"),a=Nt(s,u)?0:-1,f=Nt(s,u)?-1:0;s=gt(s,0,a),u=gt(u,0,f),e.state.vim.sel.head=s,e.state.vim.sel.anchor=u,r=Qn(e,t,n),i.$desiredColumn=e.state.vim.lastHPos==-1?null:e.state.vim.lastHPos,e.virtualSelectionMode()&&(e.state.vim=Gn(o))}),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1)},!0)}return r}function tr(e,t){t.off("beforeEndOperation",tr);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var i=e("../range").Range,s=e("../lib/event_emitter").EventEmitter,o=e("../lib/dom"),u=e("../lib/oop"),a=e("../lib/keys"),f=e("../lib/event"),l=e("../search").Search,c=e("../lib/useragent"),h=e("../search_highlight").SearchHighlight,p=e("../commands/multi_select_commands"),d=e("../mode/text").Mode.prototype.tokenRe;e("../multi_select");var v=function(e){this.ace=e,this.state={},this.marks={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on("change",this.onChange),this.ace.on("changeSelection",this.onSelectionChange),this.ace.on("beforeEndOperation",this.onBeforeEndOperation)};v.Pos=function(e,t){if(!(this instanceof w))return new w(e,t);this.line=e,this.ch=t},v.defineOption=function(e,t,n){},v.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert("\n")}},v.keyMap={},v.addClass=v.rmClass=v.e_stop=function(){},v.keyName=function(e){if(e.key)return e.key;var t=a[e.keyCode]||"";return t.length==1&&(t=t.toUpperCase()),t=f.getModifierString(e).replace(/(^|-)\w/g,function(e){return e.toUpperCase()})+t,t},v.keyMap["default"]=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&t.ace.execCommand(n)!==!1}},v.lookupKey=function nr(e,t,n){typeof t=="string"&&(t=v.keyMap[t]);var r=typeof t=="function"?t(e):t[e];if(r===!1)return"nothing";if(r==="...")return"multi";if(r!=null&&n(r))return"handled";if(t.fallthrough){if(!Array.isArray(t.fallthrough))return nr(e,t.fallthrough,n);for(var i=0;i<t.fallthrough.length;i++){var s=nr(e,t.fallthrough[i],n);if(s)return s}}},v.signal=function(e,t,n){return e._signal(t,n)},v.on=f.addListener,v.off=f.removeListener,v.isWordChar=function(e){return d.lastIndex=0,d.test(e)},function(){u.implement(v.prototype,s),this.destroy=function(){this.ace.off("change",this.onChange),this.ace.off("changeSelection",this.onSelectionChange),this.ace.off("beforeEndOperation",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){var t=e.data;e={start:t.range.start,end:t.range.end,action:t.action,lines:t.lines||[t.text]};if(e.action[0]=="i"){var n={text:e.lines},r=this.curOp=this.curOp||{};r.changeHandlers||(r.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice());if(this.virtualSelectionMode())return;r.lastChange?r.lastChange.next=r.lastChange=n:r.lastChange=r.change=n}this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(p.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation();if(!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:"vim",scrollIntoView:"cursor"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&this.ace.curOp.command.name=="vim"&&(this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal("change",e.change,e),e&&e.cursorActivity&&this.signal("cursorActivity",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+"Handlers"]:(this._eventRegistry||{})[e];if(!r)return;r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){typeof e=="object"&&(t=e.ch,e=e.line),this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.selection.moveTo(e,t)},this.getCursor=function(e){var t=this.ace.selection,n=e=="anchor"?t.isEmpty()?t.lead:t.anchor:e=="head"||!e?t.lead:t.getRange()[e];return g(n)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor("anchor"),head:this.getCursor("head")}]:t.map(function(e){return{anchor:this.clipPos(g(e.cursor==e.end?e.start:e.end)),head:this.clipPos(g(e.cursor))}},this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,r=e.map(function(e){var t=m(e.anchor),n=m(e.head),r=i.comparePoints(t,n)<0?new i.fromPoints(t,n):new i.fromPoints(n,t);return r.cursor=i.comparePoints(r.start,n)?r.end:r.start,r});if(this.ace.inVirtualSelectionMode){this.ace.selection.fromOrientedRange(r[0]);return}t?r[t]&&r.push(r.splice(t,1)[0]):r=r.reverse(),n.toSingleRange(r[0].clone());var s=this.ace.session;for(var o=0;o<r.length;o++){var u=s.$clipRangeToDocument(r[o]);n.addRange(u)}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&n.origin=="*mouse"&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){var t=this.ace.session.$clipPositionToDocument(e.line,e.ch);return g(t)},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t=e.action=="insert",n=e.start,r=e.end,s=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var u in this.marks){var a=this.marks[u],f=i.comparePoints(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:i.comparePoints(a,r);if(l>0){a.row+=s,a.column+=a.row==r.row?o:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return g(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);if(!n||!n.insertLeft)r.$insertRight=!0;return this.marks[r.id]=r,r},this.moveH=function(e,t){if(t=="char"){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if(n=="page"){var i=this.ace.renderer,s=i.layerConfig;t*=Math.floor(s.height/s.lineHeight),n="line"}if(n=="line"){var o=this.ace.session.documentToScreenPosition(e.line,e.ch);r!=null&&(o.column=r),o.row+=t,o.row=Math.min(Math.max(0,o.row),this.ace.session.getScreenLength()-1);var u=this.ace.session.screenToDocumentPosition(o.row,o.column);return g(u)}debugger},this.charCoords=function(e,t){if(t=="div"||!t){var n=this.ace.session.documentToScreenPosition(e.line,e.ch);return{left:n.column,top:n.row}}if(t=="local"){var r=this.ace.renderer,n=this.ace.session.documentToScreenPosition(e.line,e.ch),i=r.layerConfig.lineHeight,s=r.layerConfig.characterWidth,o=i*n.row;return{left:n.column*s,top:o,bottom:o+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if(t=="local"){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),i=Math.max(0,Math.floor(e.left/n.characterWidth)),s=n.session.screenToDocumentPosition(r,i);return g(s)}if(t=="div")throw"not implemented"},this.getSearchCursor=function(e,t,n){var r=!1,i=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,i=!0);var s=new l;t.ch==undefined&&(t.ch=Number.MAX_VALUE);var o={row:t.line,column:t.ch},u=this,a=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){s.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:i,start:a||o});var n=s.find(u.ace.session);return n&&n.isEmpty()&&u.getLine(n.start.row).length==n.start.column&&(s.$options.start=n,n=s.find(u.ace.session)),a=n,a},from:function(){return a&&g(a.start)},to:function(){return a&&g(a.end)},replace:function(e){a&&(a.end=u.ace.session.doc.replace(a,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,t!=null&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),e!=null&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){e&&this.ace.renderer.scrollCursorIntoView(m(e),null,t)},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new i(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){return n||(n=t),this.ace.session.replace(new i(t.line,t.ch,n.line,n.ch),e)},this.replaceSelections=function(e){var t=this.ace.selection;if(this.ace.inVirtualSelectionMode){this.ace.session.replace(t.getRange(),e[0]||"");return}t.inVirtualSelectionMode=!0;var n=t.rangeList.ranges;n.length||(n=[this.ace.multiSelect.getRange()]);for(var r=n.length;r--;)this.ace.session.replace(n[r],e[r]||"");t.inVirtualSelectionMode=!1},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map(function(e){return this.getRange(e.anchor,e.head)},this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.containter};var t={indentWithTabs:"useSoftTabs",indentUnit:"tabSize",firstLineNumber:"firstLineNumber"};this.setOption=function(e,n){this.state[e]=n;switch(e){case"indentWithTabs":e=t[e],n=!n;break;default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e,n){var r=t[e];r&&(n=this.ace.getOption(r));switch(e){case"indentWithTabs":return e=t[e],!n}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new h(null,"ace_highlight-marker","text"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off("change",t.updateOnChange),t.session.off("changeEditor",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){e=e.data.range;var n=e.start.row;n==e.end.row?t.cache[n]=undefined:t.cache.splice(n,t.cache.length)},t.session.on("changeEditor",t.destroy),t.session.on("change",t.updateOnChange)}var r=new RegExp(e.query.source,"gmi");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?"string":""},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(m(e));return{to:t&&g(t)}},this.indentLine=function(e,t){t===!0?this.ace.session.indentRows(e,e,"	"):t===!1&&this.ace.session.outdentRows(new i(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(m(e))},this.posFromIndex=function(e){return g(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,r){var i=r.bracketRegex.source;if(t==1)var s=this.ace.session.$findClosingBracket(i.slice(1,2),m(e),/paren|text/);else var s=this.ace.session.$findOpeningBracket(i.slice(-2,-1),{row:e.line,column:e.ch+1},/paren|text/);return s&&{pos:g(s)}},this.refresh=function(){return this.ace.resize(!0)}}.call(v.prototype);var y=v.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};y.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if(typeof e=="string")var n=t==e;else var n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){var t=this.pos;while(this.eat(e));return this.pos>t},eatSpace:function(){var e=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw"not implemented"},indentation:function(){throw"not implemented"},match:function(e,t,n){if(typeof e!="string"){var s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}var r=function(e){return n?e.toLowerCase():e},i=this.string.substr(this.pos,e.length);if(r(i)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},v.defineExtension=function(e,t){v.prototype[e]=t},o.importCssString(".normal-mode .ace_cursor{  border: 0!important;  background-color: red;  opacity: 0.5;}.ace_dialog {  position: absolute;  left: 0; right: 0;  background: white;  z-index: 15;  padding: .1em .8em;  overflow: hidden;  color: #333;}.ace_dialog-top {  border-bottom: 1px solid #eee;  top: 0;}.ace_dialog-bottom {  border-top: 1px solid #eee;  bottom: 0;}.ace_dialog input {  border: none;  outline: none;  background: transparent;  width: 20em;  color: inherit;  font-family: monospace;}","vimMode"),function(){function e(e,t,n){var r=e.ace.container,i;return i=r.appendChild(document.createElement("div")),n?i.className="ace_dialog ace_dialog-bottom":i.className="ace_dialog ace_dialog-top",typeof t=="string"?i.innerHTML=t:i.appendChild(t),i}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}v.defineExtension("openDialog",function(n,r,i){function a(e){if(typeof e=="string")f.value=e;else{if(o)return;o=!0,s.parentNode.removeChild(s),u.focus(),i.onClose&&i.onClose(s)}}if(this.virtualSelectionMode())return;i||(i={}),t(this,null);var s=e(this,n,i.bottom),o=!1,u=this,f=s.getElementsByTagName("input")[0],l;if(f)i.value&&(f.value=i.value,f.select()),i.onInput&&v.on(f,"input",function(e){i.onInput(e,f.value,a)}),i.onKeyUp&&v.on(f,"keyup",function(e){i.onKeyUp(e,f.value,a)}),v.on(f,"keydown",function(e){if(i&&i.onKeyDown&&i.onKeyDown(e,f.value,a))return;if(e.keyCode==27||i.closeOnEnter!==!1&&e.keyCode==13)f.blur(),v.e_stop(e),a();e.keyCode==13&&r(f.value)}),i.closeOnBlur!==!1&&v.on(f,"blur",a),f.focus();else if(l=s.getElementsByTagName("button")[0])v.on(l,"click",function(){a(),u.focus()}),i.closeOnBlur!==!1&&v.on(l,"blur",a),l.focus();return a}),v.defineExtension("openNotification",function(n,r){function a(){if(s)return;s=!0,clearTimeout(o),i.parentNode.removeChild(i)}if(this.virtualSelectionMode())return;t(this,a);var i=e(this,n,r&&r.bottom),s=!1,o,u=r&&typeof r.duration!="undefined"?r.duration:5e3;return v.on(i,"click",function(e){v.e_preventDefault(e),a()}),u&&(o=setTimeout(a,u)),a})}();var b=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"xi",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"dcc",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],w=v.Pos,E=function(){return it};v.defineOption("vimMode",!1,function(e,t,n){t&&e.getOption("keyMap")!="vim"?e.setOption("keyMap","vim"):!t&&n!=v.Init&&/^vim/.test(e.getOption("keyMap"))&&e.setOption("keyMap","default")});var k={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},L={Enter:"CR",Backspace:"BS",Delete:"Del"},M=/[\d]/,_=[{test:v.isWordChar},{test:function(e){return!v.isWordChar(e)&&!/\s/.test(e)}}],D=[/\S/],H=P(65,26),B=P(97,26),j=P(48,10),F=[].concat(H,B,j,["<",">"]),I=[].concat(H,B,j,["-",'"',".",":","/"]),$={},G=function(){function s(s,o,u){function l(n){var r=++t%e,o=i[r];o&&o.clear(),i[r]=s.setBookmark(n)}var a=t%e,f=i[a];if(f){var c=f.find();c&&!Tt(c,o)&&l(o)}else l(o);l(u),n=t,r=t-e+1,r<0&&(r=0)}function o(s,o){t+=o,t>n?t=n:t<r&&(t=r);var u=i[(e+t)%e];if(u&&!u.find()){var a=o>0?1:-1,f,l=s.getCursor();do{t+=a,u=i[(e+t)%e];if(u&&(f=u.find())&&!Tt(l,f))break}while(t<n&&t>r)}return u}var e=100,t=-1,n=0,r=0,i=new Array(e);return{cachedCursor:undefined,add:s,move:o}},Y=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};Z.prototype={exitMacroRecordMode:function(){var e=tt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=undefined,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=tt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var tt,rt,it={buildKeyMap:function(){},getRegisterController:function(){return tt.registerController},resetVimGlobalState_:nt,getVimGlobalState_:function(){return tt},maybeInitVimState_:et,InsertModeKey:Wn,map:function(e,t,n){Dn.map(e,t,n)},unmap:function(e,t){Dn.unmap(e,t)},setOption:K,getOption:Q,defineOption:J,defineEx:function(e,t,n){if(e.indexOf(t)!==0)throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered');_n[e]=n,Dn.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if(typeof r=="function")return r()},findKey:function(e,t,n){function i(){var r=tt.macroModeState;if(r.isRecording){if(t=="q")return r.exitMacroRecordMode(),ot(e),!0;n!="mapping"&&jn(r,t)}}function s(){if(t=="<Esc>")return ot(e),r.visualMode?zt(e):r.insertMode&&Hn(e),!0}function o(n){var r;while(n)r=/<\w+-.+?>|<\w+>|./.exec(n),t=r[0],n=n.substring(r.index+t.length),v.Vim.handleKey(e,t,"mapping")}function u(){if(s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t,i=t.length==1,o=lt.matchCommand(n,b,r.inputState,"insert");while(n.length>1&&o.type!="full"){var n=r.inputState.keyBuffer=n.slice(1),u=lt.matchCommand(n,b,r.inputState,"insert");u.type!="none"&&(o=u)}if(o.type=="none")return ot(e),!1;if(o.type=="partial")return rt&&window.clearTimeout(rt),rt=window.setTimeout(function(){r.insertMode&&r.inputState.keyBuffer&&ot(e)},Q("insertModeEscKeysTimeout")),!i;rt&&window.clearTimeout(rt);if(i){var a=e.getCursor();e.replaceRange("",gt(a,0,-(n.length-1)),a,"+input")}return ot(e),o.command}function a(){if(i()||s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t;if(/^[1-9]\d*$/.test(n))return!0;var o=/^(\d*)(.*)$/.exec(n);if(!o)return ot(e),!1;var u=r.visualMode?"visual":"normal",a=lt.matchCommand(o[2]||o[1],b,r.inputState,u);if(a.type=="none")return ot(e),!1;if(a.type=="partial")return!0;r.inputState.keyBuffer="";var o=/^(\d*)(.*)$/.exec(n);return o[1]&&o[1]!="0"&&r.inputState.pushRepeatDigit(o[1]),a.command}var r=et(e),f;return r.insertMode?f=u():f=a(),f===!1?undefined:f===!0?function(){}:function(){return e.operation(function(){e.curOp.isVimOp=!0;try{f.type=="keyToKey"?o(f.toKeys):lt.processCommand(e,r,f)}catch(t){throw e.state.vim=undefined,et(e),console.log(t),t}return!0})}},handleEx:function(e,t){Dn.processCommand(e,t)}};st.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},st.prototype.getRepeat=function(){var e=0;if(this.prefixRepeat.length>0||this.motionRepeat.length>0)e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10));return e},ut.prototype={setText:function(e,t,n){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(Y(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},at.prototype={pushText:function(e,t,n,r,i){r&&n.charAt(0)=="\n"&&(n=n.slice(1)+"\n"),r&&n.charAt(n.length-1)!=="\n"&&(n+="\n");var s=this.isValidRegister(e)?this.getRegister(e):null;if(!s){switch(t){case"yank":this.registers[0]=new ut(n,r,i);break;case"delete":case"change":n.indexOf("\n")==-1?this.registers["-"]=new ut(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new ut(n,r))}this.unnamedRegister.setText(n,r,i);return}var o=W(e);o?s.pushText(n,r):s.setText(n,r,i),this.unnamedRegister.setText(s.toString(),r)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new ut),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&V(e,I)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},ft.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;this.initialPrefix===null&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r){var s=n[i];for(var o=0;o<=s.length;o++)if(this.initialPrefix==s.substring(0,o))return this.iterator=i,s}if(i>=n.length)return this.iterator=n.length,this.initialPrefix;if(i<0)return e},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var lt={matchCommand:function(e,t,n,r){var i=bt(e,t,r,n);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};var s;for(var o=0;o<i.full.length;o++){var u=i.full[o];s||(s=u)}return s.keys.slice(-11)=="<character>"&&(n.selectedCharacter=Et(e)),{type:"full",command:s}},processCommand:function(e,t,n){t.inputState.repeatOverride=n.repeatOverride;switch(n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n),ot(e);break;case"ex":case"keyToEx":this.processEx(e,t,n),ot(e);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=mt(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator){r.motion="expandToLine",r.motionArgs={linewise:!0},this.evalInput(e,t);return}ot(e)}r.operator=n.operator,r.operatorArgs=mt(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=mt(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),s=!!i,o=mt(n.actionArgs)||{};r.selectedCharacter&&(o.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),o.repeat=i||1,o.repeatIsExplicit=s,o.registerName=r.registerName,ot(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),dt[n.action](e,o,t)},processSearch:function(e,t,n){function a(r,i,s){tt.searchHistoryController.pushInput(r),tt.searchHistoryController.reset();try{xn(e,r,i,s)}catch(o){yn(e,"Invalid regex: "+r);return}lt.processMotion(e,t,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function f(t){e.scrollTo(u.left,u.top),a(t,!0,!0);var n=tt.macroModeState;n.isRecording&&In(n,t)}function l(t,n,i){var s=v.keyName(t),o;s=="Up"||s=="Down"?(o=s=="Up"?!0:!1,n=tt.searchHistoryController.nextMatch(n,o)||"",i(n)):s!="Left"&&s!="Right"&&s!="Ctrl"&&s!="Alt"&&s!="Shift"&&tt.searchHistoryController.reset();var a;try{a=xn(e,n,!0,!0)}catch(t){}a?e.scrollIntoView(Cn(e,!r,a),30):(kn(e),e.scrollTo(u.left,u.top))}function c(t,n,r){var i=v.keyName(t);if(i=="Esc"||i=="Ctrl-C"||i=="Ctrl-[")tt.searchHistoryController.pushInput(n),tt.searchHistoryController.reset(),xn(e,o),kn(e),e.scrollTo(u.left,u.top),v.e_stop(t),r(),e.focus()}if(!e.getSearchCursor)return;var r=n.searchArgs.forward,i=n.searchArgs.wholeWordOnly;ln(e).setReversed(!r);var s=r?"/":"?",o=ln(e).getQuery(),u=e.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var h=tt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();a(p,!0,!1)}else En(e,{onClose:f,prefix:s,desc:wn,onKeyUp:l,onKeyDown:c});break;case"wordUnderCursor":var d=$t(e,!1,!0,!1,!0),m=!0;d||(d=$t(e,!1,!0,!1,!1),m=!1);if(!d)return;var p=e.getLine(d.start.line).substring(d.start.ch,d.end.ch);m&&i?p="\\b"+p+"\\b":p=_t(p),tt.jumpList.cachedCursor=e.getCursor(),e.setCursor(d.start),a(p,!0,!1)}},processEx:function(e,t,n){function r(t){tt.exCommandHistoryController.pushInput(t),tt.exCommandHistoryController.reset(),Dn.processCommand(e,t)}function i(t,n,r){var i=v.keyName(t),s;if(i=="Esc"||i=="Ctrl-C"||i=="Ctrl-[")tt.exCommandHistoryController.pushInput(n),tt.exCommandHistoryController.reset(),v.e_stop(t),r(),e.focus();i=="Up"||i=="Down"?(s=i=="Up"?!0:!1,n=tt.exCommandHistoryController.nextMatch(n,s)||"",r(n)):i!="Left"&&i!="Right"&&i!="Ctrl"&&i!="Alt"&&i!="Shift"&&tt.exCommandHistoryController.reset()}n.type=="keyToEx"?Dn.processCommand(e,n.exArgs.input):t.visualMode?En(e,{onClose:r,prefix:":",value:"'<,'>",onKeyDown:i}):En(e,{onClose:r,prefix:":",onKeyDown:i})},evalInput:function(e,t){var n=t.inputState,r=n.motion,i=n.motionArgs||{},s=n.operator,o=n.operatorArgs||{},u=n.registerName,a=t.sel,f=xt(t.visualMode?a.head:e.getCursor("head")),l=xt(t.visualMode?a.anchor:e.getCursor("anchor")),c=xt(f),h=xt(l),p,d,v;s&&this.recordLastEdit(t,n),n.repeatOverride!==undefined?v=n.repeatOverride:v=n.getRepeat();if(v>0&&i.explicitRepeat)i.repeatIsExplicit=!0;else if(i.noRepeat||!i.explicitRepeat&&v===0)v=1,i.repeatIsExplicit=!1;n.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter=n.selectedCharacter),i.repeat=v,ot(e);if(r){var m=ct[r](e,f,i,t);t.lastMotion=ct[r];if(!m)return;if(i.toJumplist){var g=tt.jumpList,y=g.cachedCursor;y?(Jt(e,y,m),delete g.cachedCursor):Jt(e,f,m)}m instanceof Array?(d=m[0],p=m[1]):p=m,p||(p=xt(f));if(t.visualMode){if(!t.visualBlock||p.ch!==Infinity)p=vt(e,p,t.visualBlock);d&&(d=vt(e,d,!0)),d=d||h,a.anchor=d,a.head=p,qt(e),rn(e,t,"<",Nt(d,p)?d:p),rn(e,t,">",Nt(d,p)?p:d)}else s||(p=vt(e,p),e.setCursor(p.line,p.ch))}if(s){if(o.lastSel){d=h;var b=o.lastSel,E=Math.abs(b.head.line-b.anchor.line),S=Math.abs(b.head.ch-b.anchor.ch);b.visualLine?p=w(h.line+E,h.ch):b.visualBlock?p=w(h.line+E,h.ch+S):b.head.line==b.anchor.line?p=w(h.line,h.ch+S):p=w(h.line+E,h.ch),t.visualMode=!0,t.visualLine=b.visualLine,t.visualBlock=b.visualBlock,a=t.sel={anchor:d,head:p},qt(e)}else t.visualMode&&(o.lastSel={anchor:xt(a.anchor),head:xt(a.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var x,T,N,C,k;if(t.visualMode){x=Ct(a.head,a.anchor),T=kt(a.head,a.anchor),N=t.visualLine||o.linewise,C=t.visualBlock?"block":N?"line":"char",k=Rt(e,{anchor:x,head:T},C);if(N){var L=k.ranges;if(C=="block")for(var A=0;A<L.length;A++)L[A].head.ch=At(e,L[A].head.line);else C=="line"&&(L[0].head=w(L[0].head.line+1,0))}}else{x=xt(d||h),T=xt(p||c);if(Nt(T,x)){var O=x;x=T,T=O}N=i.linewise||o.linewise,N?Xt(e,x,T):i.forward&&Wt(e,x,T),C="char";var M=!i.inclusive||N;k=Rt(e,{anchor:x,head:T},C,M)}e.setSelections(k.ranges,k.primary),t.lastMotion=null,o.repeat=v,o.registerName=u,o.linewise=N;var _=pt[s](e,o,k.ranges,h,p);t.visualMode&&zt(e),_&&e.setCursor(_)}},recordLastEdit:function(e,t,n){var r=tt.macroModeState;if(r.isPlaying)return;e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1}},ct={moveToTopLine:function(e,t,n){var r=An(e).top+n.repeat-1;return w(r,Vt(e.getLine(r)))},moveToMiddleLine:function(e){var t=An(e),n=Math.floor((t.top+t.bottom)*.5);return w(n,Vt(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=An(e).bottom-n.repeat+1;return w(r,Vt(e.getLine(r)))},expandToLine:function(e,t,n){var r=t;return w(r.line+n.repeat-1,Infinity)},findNext:function(e,t,n){var r=ln(e),i=r.getQuery();if(!i)return;var s=!n.forward;return s=r.isReversed()?!s:s,Nn(e,i),Cn(e,s,i,n.repeat)},goToMark:function(e,t,n,r){var i=r.marks[n.selectedCharacter];if(i){var s=i.find();return n.linewise?{line:s.line,ch:Vt(e.getLine(s.line))}:s}return null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[vt(e,w(i.anchor.line,i.head.ch)),vt(e,w(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){var i=t;for(var s=0;s<n.repeat;s++){var o=i;for(var u in r.marks){if(!R(u))continue;var a=r.marks[u].find(),f=n.forward?Nt(a,o):Nt(o,a);if(f)continue;if(n.linewise&&a.line==o.line)continue;var l=Tt(o,i),c=n.forward?Lt(o,a,i):Lt(i,a,o);if(l||c)i=a}}return n.linewise&&(i=w(i.line,Vt(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,s=n.forward?r.ch+i:r.ch-i;return w(r.line,s)},moveByLines:function(e,t,n,r){var i=t,s=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:s=r.lastHPos;break;default:r.lastHPos=s}var o=n.repeat+(n.repeatOffset||0),u=n.forward?i.line+o:i.line-o,a=e.firstLine(),f=e.lastLine();if(u<a&&i.line==a||u>f&&i.line==f)return;var l=e.ace.session.getFoldAt(u,s);return l&&(n.forward?u=l.end.row+1:u=l.start.row-1),n.toFirstChar&&(s=Vt(e.getLine(u)),r.lastHPos=s),r.lastHSPos=e.charCoords(w(u,s),"div").left,w(u,s)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,"div").left}var s=n.repeat,o=e.findPosV(i,n.forward?s:-s,"line",r.lastHSPos);if(o.hitSide)if(n.forward)var u=e.charCoords(o,"div"),a={top:u.top+8,left:r.lastHSPos},o=e.coordsChar(a,"div");else{var f=e.charCoords(w(e.firstLine(),0),"div");f.left=r.lastHSPos,o=e.coordsChar(f,"div")}return r.lastHPos=o.ch,o},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,"page")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return on(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),s=null,o=n.repeat;o||(o=i.clientHeight/(2*e.defaultTextHeight()));var u=e.charCoords(t,"local");n.repeat=o;var s=ct.moveByDisplayLines(e,t,n,r);if(!s)return null;var a=e.charCoords(s,"local");return e.scrollTo(null,i.top+a.top-u.top),s},moveByWords:function(e,t,n){return en(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=tn(e,r,n.forward,n.selectedCharacter),s=n.forward?-1:1;return Kt(s,n),i?(i.ch+=s,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return Kt(0,n),tn(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var r=n.repeat;return Yt(e,r,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,"div").left,nn(e,i)},moveToEol:function(e,t,n,r){var i=t;r.lastHPos=Infinity;var s=w(i.line+n.repeat-1,Infinity),o=e.clipPos(s);return o.ch--,r.lastHSPos=e.charCoords(o,"div").left,s},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return w(n.line,Vt(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n=t,r=n.line,i=n.ch,s=e.getLine(r),o;do{o=s.charAt(i++);if(o&&U(o)){var u=e.getTokenTypeAt(w(r,i));if(u!=="string"&&u!=="comment")break}}while(o);if(o){var a=e.findMatchingBracket(w(r,i));return a.to}return n},moveToStartOfLine:function(e,t){return w(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption("firstLineNumber")),w(r,Vt(e.getLine(r)))},textObjectManipulation:function(e,t,n,r){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},s={"'":!0,'"':!0},o=n.selectedCharacter;o=="b"?o="(":o=="B"&&(o="{");var u=!n.textObjectInner,a;if(i[o])a=un(e,t,o,u);else if(s[o])a=an(e,t,o,u);else if(o==="W")a=$t(e,u,!0,!0);else if(o==="w")a=$t(e,u,!0,!1);else{if(o!=="p")return null;a=on(e,t,n.repeat,0,u),n.linewise=!0;if(r.visualMode)r.visualLine||(r.visualLine=!0);else{var f=r.inputState.operatorArgs;f&&(f.linewise=!0),a.end.line--}}return e.state.vim.visualMode?It(e,a.start,a.end):[a.start,a.end]},repeatLastCharacterSearch:function(e,t,n){var r=tt.lastChararacterSearch,i=n.repeat,s=n.forward===r.forward,o=(r.increment?1:0)*(s?-1:1);e.moveH(-o,"char"),n.inclusive=s?!0:!1;var u=tn(e,i,s,r.selectedCharacter);return u?(u.ch+=o,u):(e.moveH(o,"char"),t)}},pt={change:function(e,t,n){var r,i,s=e.state.vim;tt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock;if(!s.visualMode){var o=n[0].anchor,u=n[0].head;i=e.getRange(o,u);if(!X(i)){var a=/\s+$/.exec(i);a&&(u=gt(u,0,-a[0].length),i=i.slice(0,-a[0].length))}var f=u.line-1==e.lastLine();e.replaceRange("",o,u),t.linewise&&!f&&(v.commands.newlineAndIndent(e),o.ch=null),r=o}else{i=e.getSelection();var l=ht("",n.length);e.replaceSelections(l),r=Ct(n[0].head,n[0].anchor)}tt.registerController.pushText(t.registerName,"change",i,t.linewise,n.length>1),dt.enterInsertMode(e,{head:r},e.state.vim)},"delete":function(e,t,n){var r,i,s=e.state.vim;if(!s.visualBlock){var o=n[0].anchor,u=n[0].head;t.linewise&&u.line!=e.firstLine()&&o.line==e.lastLine()&&o.line==u.line-1&&(o.line==e.firstLine()?o.ch=0:o=w(o.line-1,At(e,o.line-1))),i=e.getRange(o,u),e.replaceRange("",o,u),r=o,t.linewise&&(r=ct.moveToFirstNonWhiteSpaceCharacter(e,o))}else{i=e.getSelection();var a=ht("",n.length);e.replaceSelections(a),r=n[0].anchor}return tt.registerController.pushText(t.registerName,"delete",i,t.linewise,s.visualBlock),r},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,s=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,o=r.visualMode?t.repeat:1;t.linewise&&s--;for(var u=i;u<=s;u++)for(var a=0;a<o;a++)e.indentLine(u,t.indentRight);return ct.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){var s=e.getSelections(),o=[],u=t.toLower;for(var a=0;a<s.length;a++){var f=s[a],l="";if(u===!0)l=f.toLowerCase();else if(u===!1)l=f.toUpperCase();else for(var c=0;c<f.length;c++){var h=f.charAt(c);l+=W(h)?h.toLowerCase():h.toUpperCase()}o.push(l)}return e.replaceSelections(o),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?ct.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:Ct(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,s=e.getSelection(),o=i.visualMode?Ct(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return tt.registerController.pushText(t.registerName,"yank",s,t.linewise,i.visualBlock),o}},dt={jumpListWalk:function(e,t,n){if(n.visualMode)return;var r=t.repeat,i=t.forward,s=tt.jumpList,o=s.move(e,i?r:-r),u=o?o.find():undefined;u=u?u:e.getCursor(),e.setCursor(u)},scroll:function(e,t,n){if(n.visualMode)return;var r=t.repeat||1,i=e.defaultTextHeight(),s=e.getScrollInfo().top,o=i*r,u=t.forward?s+o:s-o,a=xt(e.getCursor()),f=e.charCoords(a,"local");if(t.forward)u>f.top?(a.line+=(u-f.top)/i,a.line=Math.ceil(a.line),e.setCursor(a),f=e.charCoords(a,"local"),e.scrollTo(null,f.top)):e.scrollTo(null,u);else{var l=u+e.getScrollInfo().clientHeight;l<f.bottom?(a.line-=(f.bottom-l)/i,a.line=Math.floor(a.line),e.setCursor(a),f=e.charCoords(a,"local"),e.scrollTo(null,f.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,u)}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(w(n,0),"local"),i=e.getScrollInfo().clientHeight,s=r.top,o=r.bottom-s;switch(t.position){case"center":s=s-i/2+o;break;case"bottom":s=s-i+o*1.4;break;case"top":s+=o*.4}e.scrollTo(null,s)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,s=tt.macroModeState;r=="@"&&(r=s.latestRegister);while(i--)Bn(e,n,s,r)},enterMacroRecordMode:function(e,t){var n=tt.macroModeState,r=t.selectedCharacter;n.enterMacroRecordMode(e,r)},enterInsertMode:function(e,t,n){if(e.getOption("readOnly"))return;n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,s=t.head||e.getCursor("head"),o=e.listSelections().length;if(r=="eol")s=w(s.line,At(e,s.line));else if(r=="charAfter")s=gt(s,0,1);else if(r=="firstNonBlank")s=ct.moveToFirstNonWhiteSpaceCharacter(e,s);else if(r=="startOfSelectedArea")n.visualBlock?(s=w(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line<i.anchor.line?s=i.head:s=w(i.anchor.line,0);else if(r=="endOfSelectedArea")n.visualBlock?(s=w(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch+1,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line>=i.anchor.line?s=gt(i.head,0,1):s=w(i.anchor.line,0);else if(r=="inplace"&&n.visualMode)return;e.setOption("keyMap","vim-insert"),e.setOption("disableInput",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),v.signal(e,"vim-mode-change",{mode:"replace"})):(e.setOption("keyMap","vim-insert"),v.signal(e,"vim-mode-change",{mode:"insert"})),tt.macroModeState.isPlaying||(e.on("change",qn),v.on(e.getInputField(),"keydown",Xn)),n.visualMode&&zt(e),Ht(e,s,o)},toggleVisualMode:function(e,t,n){var r=t.repeat,i=e.getCursor(),s;n.visualMode?n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,v.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),qt(e)):zt(e):(n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,s=vt(e,w(i.line,i.ch+r-1),!0),n.sel={anchor:i,head:s},v.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""}),qt(e),rn(e,n,"<",Ct(i,s)),rn(e,n,">",kt(i,s)))},reselectLastSelection:function(e,t,n){var r=n.lastSelection;n.visualMode&&Ft(e,n);if(r){var i=r.anchorMark.find(),s=r.headMark.find();if(!i||!s)return;n.sel={anchor:i,head:s},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,qt(e),rn(e,n,"<",Ct(i,s)),rn(e,n,">",kt(i,s)),v.signal(e,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var r,i;if(n.visualMode)r=e.getCursor("anchor"),i=e.getCursor("head"),i.ch=At(e,i.line)-1;else{var s=Math.max(t.repeat,2);r=e.getCursor(),i=vt(e,w(r.line+s-1,Infinity))}var o=0;for(var u=r.line;u<i.line;u++){o=At(e,r.line);var a=w(r.line+1,At(e,r.line+1)),f=e.getRange(r,a);f=f.replace(/\n\s*/g," "),e.replaceRange(f,r,a)}var l=w(r.line,o);e.setCursor(l),n.visualMode&&zt(e)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=xt(e.getCursor());if(r.line===e.firstLine()&&!t.after)e.replaceRange("\n",w(e.firstLine(),0)),e.setCursor(e.firstLine(),0);else{r.line=t.after?r.line:r.line-1,r.ch=At(e,r.line),e.setCursor(r);var i=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;i(e)}this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=xt(e.getCursor()),i=tt.registerController.getRegister(t.registerName),s=i.toString();if(!s)return;if(t.matchIndent){var o=e.getOption("tabSize"),u=function(e){var t=e.split("	").length-1,n=e.split(" ").length-1;return t*o+n*1},a=e.getLine(e.getCursor().line),f=u(a.match(/^\s*/)[0]),l=s.replace(/\n$/,""),c=s!==l,h=u(s.match(/^\s*/)[0]),s=l.replace(/^\s*/gm,function(t){var n=f+(u(t)-h);if(n<0)return"";if(e.getOption("indentWithTabs")){var r=Math.floor(n/o);return Array(r+1).join("	")}return Array(n+1).join(" ")});s+=c?"\n":""}if(t.repeat>1)var s=Array(t.repeat+1).join(s);var p=i.linewise,d=i.blockwise;if(p)n.visualMode?s=n.visualLine?s.slice(0,-1):"\n"+s.slice(0,s.length-1)+"\n":t.after?(s="\n"+s.slice(0,s.length-1),r.ch=At(e,r.line)):r.ch=0;else{if(d){s=s.split("\n");for(var v=0;v<s.length;v++)s[v]=s[v]==""?" ":s[v]}r.ch+=t.after?1:0}var m,g;if(n.visualMode){n.lastPastedText=s;var y,b=jt(e,n),E=b[0],S=b[1],x=e.getSelection(),T=e.listSelections(),N=(new Array(T.length)).join("1").split("1");n.lastSelection&&(y=n.lastSelection.headMark.find()),tt.registerController.unnamedRegister.setText(x),d?(e.replaceSelections(N),S=w(E.line+s.length-1,E.ch),e.setCursor(E),Pt(e,S),e.replaceSelections(s),m=E):n.visualBlock?(e.replaceSelections(N),e.setCursor(E),e.replaceRange(s,E,E),m=E):(e.replaceRange(s,E,S),m=e.posFromIndex(e.indexFromPos(E)+s.length-1)),y&&(n.lastSelection.headMark=e.setBookmark(y)),p&&(m.ch=0)}else if(d){e.setCursor(r);for(var v=0;v<s.length;v++){var C=r.line+v;C>e.lastLine()&&e.replaceRange("\n",w(C,0));var k=At(e,C);k<r.ch&&Dt(e,C,r.ch)}e.setCursor(r),Pt(e,w(r.line+s.length-1,r.ch)),e.replaceSelections(s),m=r}else e.replaceRange(s,r),p&&t.after?m=w(r.line+1,Vt(e.getLine(r.line+1))):p&&!t.after?m=w(r.line,Vt(e.getLine(r.line))):!p&&t.after?(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length-1)):(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length));n.visualMode&&zt(e),e.setCursor(m)},undo:function(e,t){e.operation(function(){St(e,v.commands.undo,t.repeat)(),e.setCursor(e.getCursor("anchor"))})},redo:function(e,t){St(e,v.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){var r=t.selectedCharacter;rn(e,n,r,e.getCursor())},replace:function(e,t,n){var r=t.selectedCharacter,i=e.getCursor(),s,o,u=e.listSelections();if(n.visualMode)i=e.getCursor("start"),o=e.getCursor("end");else{var a=e.getLine(i.line);s=i.ch+t.repeat,s>a.length&&(s=a.length),o=w(i.line,s)}if(r=="\n")n.visualMode||e.replaceRange("",i,o),(v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent)(e);else{var f=e.getRange(i,o);f=f.replace(/[^\n]/g,r);if(n.visualBlock){var l=(new Array(e.getOption("tabSize")+1)).join(" ");f=e.getSelection(),f=f.replace(/\t/g,l).replace(/[^\n]/g,r).split("\n"),e.replaceSelections(f)}else e.replaceRange(f,i,o);n.visualMode?(i=Nt(u[0].anchor,u[0].head)?u[0].anchor:u[0].head,e.setCursor(i),zt(e)):e.setCursor(gt(o,0,-1))}},incrementNumberToken:function(e,t){var n=e.getCursor(),r=e.getLine(n.line),i=/-?\d+/g,s,o,u,a,f;while((s=i.exec(r))!==null){f=s[0],o=s.index,u=o+f.length;if(n.ch<u)break}if(!t.backtrack&&u<=n.ch)return;if(!f)return;var l=t.increase?1:-1,c=parseInt(f)+l*t.repeat,h=w(n.line,o),p=w(n.line,u);a=c.toString(),e.replaceRange(a,h,p),e.setCursor(w(n.line,o+a.length-1))},repeatLastEdit:function(e,t,n){var r=n.lastEditInputState;if(!r)return;var i=t.repeat;i&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=i:i=n.lastEditInputState.repeatOverride||i,Vn(e,n,i,!1)},exitInsertMode:Hn},Qt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},Gt={bracket:{isComplete:function(e){if(e.nextCh===e.symb){e.depth++;if(e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return e.index===0&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t=e.lastCh==="*"&&e.nextCh==="/";return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb=e.symb==="m"?"{":"}",e.reverseSymb=e.symb==="{"?"}":"{"},isComplete:function(e){return e.nextCh===e.symb?!0:!1}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if(e.nextCh==="#"){var t=e.lineText.match(/#(\w+)/)[1];if(t==="endif"){if(e.forward&&e.depth===0)return!0;e.depth++}else if(t==="if"){if(!e.forward&&e.depth===0)return!0;e.depth--}if(t==="else"&&e.depth===0)return!0}return!1}}};J("pcre",!0,"boolean"),fn.prototype={getQuery:function(){return tt.query},setQuery:function(e){tt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return tt.isReversed},setReversed:function(e){tt.isReversed=e}};var wn="(Javascript regexp)",On=[{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"set"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],Mn=function(){this.buildCommandMap_()};Mn.prototype={processCommand:function(e,t,n){var r=e.state.vim,i=tt.registerController.getRegister(":"),s=i.toString();r.visualMode&&zt(e);var o=new v.StringStream(t);i.setText(t);var u=n||{};u.input=t;try{this.parseInput_(e,o,u)}catch(a){throw yn(e,a),a}var f,l;if(!u.commandName)u.line!==undefined&&(l="move");else{f=this.matchCommand_(u.commandName);if(f){l=f.name,f.excludeFromCommandHistory&&i.setText(s),this.parseCommandArgs_(o,u,f);if(f.type=="exToKey"){for(var c=0;c<f.toKeys.length;c++)v.Vim.handleKey(e,f.toKeys[c],"mapping");return}if(f.type=="exToEx"){this.processCommand(e,f.toInput);return}}}if(!l){yn(e,'Not an editor command ":'+t+'"');return}try{_n[l](e,u),(!f||!f.possiblyAsync)&&u.callback&&u.callback()}catch(a){throw yn(e,a),a}},parseInput_:function(e,t,n){t.eatWhile(":"),t.eat("%")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),n.line!==undefined&&t.eat(",")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\w+)/);return r?n.commandName=r[1]:n.commandName=t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case".":return e.getCursor().line;case"$":return e.lastLine();case"'":var r=e.state.vim.marks[t.next()];if(r&&r.find())return r.find().line;throw new Error("Mark not set");default:return t.backUp(1),undefined}},parseCommandArgs_:function(e,t,n){if(e.eol())return;t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\s+/,i=Mt(t.argString).split(r);i.length&&i[0]&&(t.args=i)},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(r.name.indexOf(e)===0)return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<On.length;e++){var t=On[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n){if(e!=":"&&e.charAt(0)==":"){if(n)throw Error("Mode not supported for ex mappings");var r=e.substring(1);t!=":"&&t.charAt(0)==":"?this.commandMap_[r]={name:r,type:"exToEx",toInput:t.substring(1),user:!0}:this.commandMap_[r]={name:r,type:"exToKey",toKeys:t,user:!0}}else if(t!=":"&&t.charAt(0)==":"){var i={keys:e,type:"keyToEx",exArgs:{input:t.substring(1)},user:!0};n&&(i.context=n),b.unshift(i)}else{var i={keys:e,type:"keyToKey",toKeys:t,user:!0};n&&(i.context=n),b.unshift(i)}},unmap:function(e,t){if(e!=":"&&e.charAt(0)==":"){if(t)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user){delete this.commandMap_[n];return}}else{var r=e;for(var i=0;i<b.length;i++)if(r==b[i].keys&&b[i].context===t&&b[i].user){b.splice(i,1);return}}throw Error("No such mapping.")}};var _n={map:function(e,t,n){var r=t.args;if(!r||r.length<2){e&&yn(e,"Invalid mapping: "+t.input);return}Dn.map(r[0],r[1],n)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,n){var r=t.args;if(!r||r.length<1){e&&yn(e,"No such mapping: "+t.input);return}Dn.unmap(r[0],n)},move:function(e,t){lt.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args;if(!n||n.length<1){e&&yn(e,"Invalid mapping: "+t.input);return}var r=n[0].split("="),i=r[0],s=r[1],o=!1;if(i.charAt(i.length-1)=="?"){if(s)throw Error("Trailing characters: "+t.argString);i=i.substring(0,i.length-1),o=!0}s===undefined&&i.substring(0,2)=="no"&&(i=i.substring(2),s=!1);var u=$[i]&&$[i].type=="boolean";u&&s==undefined&&(s=!0);if(!u&&!s||o){var a=Q(i);a===!0||a===!1?yn(e," "+(a?"":"no")+i):yn(e,"  "+i+"="+a)}else K(i,s,e)},registers:function(e,t){var n=t.args,r=tt.registerController.registers,i="----------Registers----------<br><br>";if(!n)for(var s in r){var o=r[s].toString();o.length&&(i+='"'+s+"    "+o+"<br>")}else{var s;n=n.join("");for(var u=0;u<n.length;u++){s=n.charAt(u);if(!tt.registerController.isValidRegister(s))continue;var a=r[s]||new ut;i+='"'+s+"    "+a.toString()+"<br>"}}yn(e,i)},sort:function(e,t){function o(){if(t.argString){var e=new v.StringStream(t.argString);e.eat("!")&&(n=!0);if(e.eol())return;if(!e.eatSpace())return"Invalid arguments";var o=e.match(/[a-z]+/);if(o){o=o[0],r=o.indexOf("i")!=-1,i=o.indexOf("u")!=-1;var u=o.indexOf("d")!=-1&&1,a=o.indexOf("x")!=-1&&1,f=o.indexOf("o")!=-1&&1;if(u+a+f>1)return"Invalid arguments";s=u&&"decimal"||a&&"hex"||f&&"octal"}e.eatSpace()&&e.match(/\/.*\//)&&"patterns not supported"}}function b(e,t){if(n){var i;i=e,e=t,t=i}r&&(e=e.toLowerCase(),t=t.toLowerCase());var o=s&&p.exec(e),u=s&&p.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),d),u=parseInt((u[1]+u[2]).toLowerCase(),d),o-u):e<t?-1:1}var n,r,i,s,u=o();if(u){yn(e,u+": "+t.argString);return}var a=t.line||e.firstLine(),f=t.lineEnd||t.line||e.lastLine();if(a==f)return;var l=w(a,0),c=w(f,At(e,f)),h=e.getRange(l,c).split("\n"),p=s=="decimal"?/(-?)([\d]+)/:s=="hex"?/(-?)(?:0x)?([0-9a-f]+)/i:s=="octal"?/([0-7]+)/:null,d=s=="decimal"?10:s=="hex"?16:s=="octal"?8:null,m=[],g=[];if(s)for(var y=0;y<h.length;y++)p.exec(h[y])?m.push(h[y]):g.push(h[y]);else g=h;m.sort(b),g.sort(b),h=n?m.concat(g):g.concat(m);if(i){var E=h,S;h=[];for(var y=0;y<E.length;y++)E[y]!=S&&h.push(E[y]),S=E[y]}e.replaceRange(h.join("\n"),l,c)},global:function(e,t){var n=t.argString;if(!n){yn(e,"Regular Expression missing from global");return}var r=t.line!==undefined?t.line:e.firstLine(),i=t.lineEnd||t.line||e.lastLine(),s=hn(n),o=n,u;s.length&&(o=s[0],u=s.slice(1,s.length).join("/"));if(o)try{xn(e,o,!0,!0)}catch(a){yn(e,"Invalid regex: "+o);return}var f=ln(e).getQuery(),l=[],c="";for(var h=r;h<=i;h++){var p=f.test(e.getLine(h));p&&(l.push(h+1),c+=e.getLine(h)+"<br>")}if(!u){yn(e,c);return}var d=0,v=function(){if(d<l.length){var t=l[d]+u;Dn.processCommand(e,t,{callback:v})}d++};v()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var n=t.argString,r=n?hn(n):[],i,s="",o,u,a,f=!1,l=!1;if(r.length)i=r[0],s=r[1],s!==undefined&&(Q("pcre")?s=mn(s):s=vn(s),tt.lastSubstituteReplacePart=s),o=r[2]?r[2].split(" "):[];else if(n&&n.length){yn(e,"Substitutions should be of the form :s/pattern/replace/");return}o&&(u=o[0],a=parseInt(o[1]),u&&(u.indexOf("c")!=-1&&(f=!0,u.replace("c","")),u.indexOf("g")!=-1&&(l=!0,u.replace("g","")),i=i+"/"+u));if(i)try{xn(e,i,!0,!0)}catch(c){yn(e,"Invalid regex: "+i);return}s=s||tt.lastSubstituteReplacePart;if(s===undefined){yn(e,"No previous substitute regular expression");return}var h=ln(e),p=h.getQuery(),d=t.line!==undefined?t.line:e.getCursor().line,v=t.lineEnd||d;a&&(d=v,v=d+a-1);var m=vt(e,w(d,0)),g=e.getSearchCursor(p,m);Pn(e,f,l,d,v,g,p,s,t.callback)},redo:v.commands.redo,undo:v.commands.undo,write:function(e){v.commands.save?v.commands.save(e):e.save()},nohlsearch:function(e){kn(e)},delmarks:function(e,t){if(!t.argString||!Mt(t.argString)){yn(e,"Argument required");return}var n=e.state.vim,r=new v.StringStream(Mt(t.argString));while(!r.eol()){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1)){yn(e,"Invalid argument: "+t.argString.substring(i));return}var s=r.next();if(r.match("-",!0)){if(!r.match(/[a-zA-Z]/,!1)){yn(e,"Invalid argument: "+t.argString.substring(i));return}var o=s,u=r.next();if(!(R(o)&&R(u)||W(o)&&W(u))){yn(e,"Invalid argument: "+o+"-");return}var a=o.charCodeAt(0),f=u.charCodeAt(0);if(a>=f){yn(e,"Invalid argument: "+t.argString.substring(i));return}for(var l=0;l<=f-a;l++){var c=String.fromCharCode(a+l);delete n.marks[c]}}else delete n.marks[s]}}},Dn=new Mn;v.keyMap.vim={attach:N,detach:T,call:C},J("insertModeEscKeysTimeout",200,"number"),v.keyMap["vim-insert"]={"Ctrl-N":"autocomplete","Ctrl-P":"autocomplete",Enter:function(e){var t=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;t(e)},fallthrough:["default"],attach:N,detach:T,call:C},v.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:N,detach:T,call:C},nt(),v.Vim=E(),E=v.Vim;var Jn={"return":"CR",backspace:"BS","delete":"Del",esc:"Esc",left:"Left",right:"Right",up:"Up",down:"Down",space:"Space",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown",enter:"CR"},Qn=E.handleKey.bind(E);E.handleKey=function(e,t,n){return e.operation(function(){return Qn(e,t,n)},!0)},t.CodeMirror=v;var Zn=E.maybeInitVimState_;t.handler={$id:"ace/keyboard/vim",drawCursor:function(e,t,n,r,s){var o=this.state.vim||{},u=n.characterWidth,a=n.lineHeight,f=t.top,l=t.left;if(!o.insertMode){var c=r.cursor?i.comparePoints(r.cursor,r.start)<=0:s.selection.isBackwards()||s.selection.isEmpty();!c&&l>u&&(l-=u)}!o.insertMode&&o.status&&(a/=2,f+=a),e.left=l+"px",e.top=f+"px",e.width=u+"px",e.height=a+"px"},handleKeyboard:function(e,t,n,r,i){var s=e.editor,o=s.state.cm,u=Zn(o);if(r==-1)return;if(n=="c"&&t==1){if(!c.isMac&&s.getCopyText())return s.once("copy",function(){s.selection.clearSelection()}),{command:"null",passEvent:!0}}else u.insertMode||c.isMac&&this.handleMacRepeat(e,t,n)&&(t=-1,n=e.inputChar);if(t==-1||t&1||t===0&&n.length>1){var a=u.insertMode,f=Kn(t,n,i||{});u.status==null&&(u.status="");var l=Yn(o,f,"user");u=Zn(o),l&&u.status!=null?u.status+=f:u.status==null&&(u.status=""),o._signal("changeStatus");if(!l&&(t!=-1||a))return;return{command:"null",passEvent:!l}}},attach:function(e){e.state||(e.state={});var t=new v(e);e.state.cm=t,e.$vimModeHandler=this,v.keyMap.vim.attach(t),Zn(t).status=null,t.on("vim-command-done",function(){if(t.virtualSelectionMode())return;Zn(t).status=null,t.ace._signal("changeStatus"),t.ace.session.markUndoGroup()}),t.on("changeStatus",function(){t.ace.renderer.updateCursor(),t.ace._signal("changeStatus")}),t.on("vim-mode-change",function(){if(t.virtualSelectionMode())return;t.ace.renderer.setStyle("normal-mode",!Zn(t).insertMode),t._signal("changeStatus")}),t.ace.renderer.setStyle("normal-mode",!Zn(t).insertMode),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(t),this.updateMacCompositionHandlers(e,!0)},detach:function(e){var t=e.state.cm;v.keyMap.vim.detach(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle("normal-mode",!1),this.updateMacCompositionHandlers(e,!1)},getStatusText:function(e){var t=e.state.cm,n=Zn(t);if(n.insertMode)return"INSERT";var r="";return n.visualMode&&(r+="VISUAL",n.visualLine&&(r+=" LINE"),n.visualBlock&&(r+=" BLOCK")),n.status&&(r+=(r?" ":"")+n.status),r},handleMacRepeat:function(e,t,n){if(t==-1)e.inputChar=n,e.lastEvent="input";else if(e.inputChar&&e.$lastHash==t&&e.$lastKey==n){if(e.lastEvent=="input")e.lastEvent="input1";else if(e.lastEvent=="input1")return!0}else e.$lastHash=t,e.$lastKey=n,e.lastEvent="keypress"},updateMacCompositionHandlers:function(e,t){var n=function(t){var n=e.state.cm,r=Zn(n);if(!r.insertMode){var i=this.textInput.getElement();i.blur(),i.focus(),i.value=t}else this.onCompositionUpdateOrig(t)},r=function(t){var n=e.state.cm,r=Zn(n);r.insertMode||this.onCompositionStartOrig(t)};t?e.onCompositionUpdateOrig||(e.onCompositionUpdateOrig=e.onCompositionUpdate,e.onCompositionUpdate=n,e.onCompositionStartOrig=e.onCompositionStart,e.onCompositionStart=r):e.onCompositionUpdateOrig&&(e.onCompositionUpdate=e.onCompositionUpdateOrig,e.onCompositionUpdateOrig=null,e.onCompositionStart=e.onCompositionStartOrig,e.onCompositionStartOrig=null)}};var er={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return e.getLength().toString().length*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update)},detach:function(e){e.renderer.$gutterLayer.$renderer=null,e.off("changeSelection",this.update)}};E.defineOption({name:"wrap",set:function(e,t){t&&t.ace.setOption("wrap",e)},type:"boolean"},!1),E.defineEx("write","w",function(){console.log(":write is not implemented")}),b.push({keys:"zc",type:"action",action:"fold",actionArgs:{open:!1}},{keys:"zC",type:"action",action:"fold",actionArgs:{open:!1,all:!0}},{keys:"zo",type:"action",action:"fold",actionArgs:{open:!0}},{keys:"zO",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"za",type:"action",action:"fold",actionArgs:{toggle:!0}},{keys:"zA",type:"action",action:"fold",actionArgs:{toggle:!0,all:!0}},{keys:"zf",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"zd",type:"action",action:"fold",actionArgs:{open:!0,all:!0}},{keys:"<C-A-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAbove"}},{keys:"<C-A-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelow"}},{keys:"<C-A-S-k>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorAboveSkipCurrent"}},{keys:"<C-A-S-j>",type:"action",action:"aceCommand",actionArgs:{name:"addCursorBelowSkipCurrent"}},{keys:"<C-A-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreBefore"}},{keys:"<C-A-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectMoreAfter"}},{keys:"<C-A-S-h>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextBefore"}},{keys:"<C-A-S-l>",type:"action",action:"aceCommand",actionArgs:{name:"selectNextAfter"}}),dt.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on("beforeEndOperation",tr):tr(null,e.ace)},dt.fold=function(e,t,n){e.ace.execCommand(["toggleFoldWidget","toggleFoldWidget","foldOther","unfoldall"][(t.all?2:0)+(t.open?1:0)])},t.handler.defaultKeymap=b,t.handler.actions=dt,t.Vim=E,E.map("Y","yy")})
\ No newline at end of file
diff --git a/js/ace/mode-abap.js b/js/ace/mode-abap.js
new file mode 100644
index 0000000..3d46996
--- /dev/null
+++ b/js/ace/mode-abap.js
@@ -0,0 +1 @@
+ace.define("ace/mode/abap_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({"variable.language":"this",keyword:"ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT BACK CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT FETCH FIELDS FORM FORMAT FREE FROM FUNCTION GENERATE GET HIDE IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION LEAVE LIKE LINE LOAD LOCAL LOOP MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY ON OVERLAY OPTIONAL OTHERS PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES UNASSIGN ULINE UNPACK UPDATE WHEN WHILE WINDOW WRITE OCCURS STRUCTURE OBJECT PROPERTY CASTING APPEND RAISING VALUE COLOR CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT ID NUMBER FOR TITLE OUTPUT WITH EXIT USING INTO WHERE GROUP BY HAVING ORDER BY SINGLE APPENDING CORRESPONDING FIELDS OF TABLE LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN","constant.language":"TRUE FALSE NULL SPACE","support.type":"c n i p f d t x string xstring decfloat16 decfloat34","keyword.operator":"abs sign ceil floor trunc frac acos asin atan cos sin tan abapOperator cosh sinh tanh exp log log10 sqrt strlen xstrlen charlen numofchar dbmaxlen lines"},"text",!0," "),t="WITH\\W+(?:HEADER\\W+LINE|FRAME|KEY)|NO\\W+STANDARD\\W+PAGE\\W+HEADING|EXIT\\W+FROM\\W+STEP\\W+LOOP|BEGIN\\W+OF\\W+(?:BLOCK|LINE)|BEGIN\\W+OF|END\\W+OF\\W+(?:BLOCK|LINE)|END\\W+OF|NO\\W+INTERVALS|RESPECTING\\W+BLANKS|SEPARATED\\W+BY|USING\\W+(?:EDIT\\W+MASK)|WHERE\\W+(?:LINE)|RADIOBUTTON\\W+GROUP|REF\\W+TO|(?:PUBLIC|PRIVATE|PROTECTED)(?:\\W+SECTION)?|DELETING\\W+(?:TRAILING|LEADING)(?:ALL\\W+OCCURRENCES)|(?:FIRST|LAST)\\W+OCCURRENCE|INHERITING\\W+FROM|LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|IS\\W+(?:NOT\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)";this.$rules={start:[{token:"string",regex:"`",next:"string"},{token:"string",regex:"'",next:"qstring"},{token:"doc.comment",regex:/^\*.+/},{token:"comment",regex:/".+$/},{token:"invalid",regex:"\\.{2,}"},{token:"keyword.operator",regex:/\W[\-+\%=<>*]\W|\*\*|[~:,\.&$]|->*?|=>/},{token:"paren.lparen",regex:"[\\[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"constant.numeric",regex:"[+-]?\\d+\\b"},{token:"variable.parameter",regex:/sy|pa?\d\d\d\d\|t\d\d\d\.|innnn/},{token:"keyword",regex:t},{token:"variable.parameter",regex:/\w+-\w+(?:-\w+)*/},{token:e,regex:"\\b\\w+\\b"},{caseInsensitive:!0}],qstring:[{token:"constant.language.escape",regex:"''"},{token:"string",regex:"'",next:"start"},{defaultToken:"string"}],string:[{token:"constant.language.escape",regex:"``"},{token:"string",regex:"`",next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.AbapHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/abap",["require","exports","module","ace/mode/abap_highlight_rules","ace/mode/folding/coffee","ace/range","ace/mode/text","ace/lib/oop"],function(e,t,n){"use strict";function a(){this.HighlightRules=r,this.foldingRules=new i}var r=e("./abap_highlight_rules").AbapHighlightRules,i=e("./folding/coffee").FoldMode,s=e("../range").Range,o=e("./text").Mode,u=e("../lib/oop");u.inherits(a,o),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.toggleCommentLines=function(e,t,n,r){var i=new s(0,0,0,0);for(var o=n;o<=r;++o){var u=t.getLine(o);if(hereComment.test(u))continue;commentLine.test(u)?u=u.replace(commentLine,"$1"):u=u.replace(indentation,"$&#"),i.end.row=i.start.row=o,i.end.column=u.length+1,t.replace(i,u)}},this.$id="ace/mode/abap"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-abc.js b/js/ace/mode-abc.js
new file mode 100644
index 0000000..2c841b9
--- /dev/null
+++ b/js/ace/mode-abc.js
@@ -0,0 +1 @@
+ace.define("ace/mode/abc_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["zupfnoter.information.comment.line.percentage","information.keyword","in formation.keyword.embedded"],regex:"(%%%%)(hn\\.[a-z]*)(.*)",comment:"Instruction Comment"},{token:["information.comment.line.percentage","information.keyword.embedded"],regex:"(%%)(.*)",comment:"Instruction Comment"},{token:"comment.line.percentage",regex:"%.*",comment:"Comments"},{token:"barline.keyword.operator",regex:"[\\[:]*[|:][|\\]:]*(?:\\[?[0-9]+)?|\\[[0-9]+",comment:"Bar lines"},{token:["information.keyword.embedded","information.argument.string.unquoted"],regex:"(\\[[A-Za-z]:)([^\\]]*\\])",comment:"embedded Header lines"},{token:["information.keyword","information.argument.string.unquoted"],regex:"^([A-Za-z]:)([^%\\\\]*)",comment:"Header lines"},{token:["text","entity.name.function","string.unquoted","text"],regex:"(\\[)([A-Z]:)(.*?)(\\])",comment:"Inline fields"},{token:["accent.constant.language","pitch.constant.numeric","duration.constant.numeric"],regex:"([\\^=_]*)([A-Ga-gz][,']*)([0-9]*/*[><0-9]*)",comment:"Notes"},{token:"zupfnoter.jumptarget.string.quoted",regex:'[\\"!]\\^\\:.*?[\\"!]',comment:"Zupfnoter jumptarget"},{token:"zupfnoter.goto.string.quoted",regex:'[\\"!]\\^\\@.*?[\\"!]',comment:"Zupfnoter goto"},{token:"zupfnoter.annotation.string.quoted",regex:'[\\"!]\\^\\!.*?[\\"!]',comment:"Zupfnoter annoation"},{token:"zupfnoter.annotationref.string.quoted",regex:'[\\"!]\\^\\#.*?[\\"!]',comment:"Zupfnoter annotation reference"},{token:"chordname.string.quoted",regex:'[\\"!]\\^.*?[\\"!]',comment:"abc chord"},{token:"string.quoted",regex:'[\\"!].*?[\\"!]',comment:"abc annotation"}]},this.normalizeRules()};s.metaData={fileTypes:["abc"],name:"ABC",scopeName:"text.abcnotation"},r.inherits(s,i),t.ABCHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/abc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/abc_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./abc_highlight_rules").ABCHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id="ace/mode/abc"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-actionscript.js b/js/ace/mode-actionscript.js
new file mode 100644
index 0000000..d5c6e4f
--- /dev/null
+++ b/js/ace/mode-actionscript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/actionscript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"support.class.actionscript.2",regex:"\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\b"},{token:"support.function.actionscript.2",regex:"\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\b"},{token:"support.constant.actionscript.2",regex:"\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\b"},{token:"keyword.control.actionscript.2",regex:"\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\b"},{token:"storage.type.actionscript.2",regex:"\\b(?:Boolean|Number|String|Void)\\b"},{token:"constant.language.actionscript.2",regex:"\\b(?:null|undefined|true|false)\\b"},{token:"constant.numeric.actionscript.2",regex:"\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b"},{token:"punctuation.definition.string.begin.actionscript.2",regex:'"',push:[{token:"punctuation.definition.string.end.actionscript.2",regex:'"',next:"pop"},{token:"constant.character.escape.actionscript.2",regex:"\\\\."},{defaultToken:"string.quoted.double.actionscript.2"}]},{token:"punctuation.definition.string.begin.actionscript.2",regex:"'",push:[{token:"punctuation.definition.string.end.actionscript.2",regex:"'",next:"pop"},{token:"constant.character.escape.actionscript.2",regex:"\\\\."},{defaultToken:"string.quoted.single.actionscript.2"}]},{token:"support.constant.actionscript.2",regex:"\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\b"},{token:"punctuation.definition.comment.actionscript.2",regex:"/\\*",push:[{token:"punctuation.definition.comment.actionscript.2",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.actionscript.2"}]},{token:"punctuation.definition.comment.actionscript.2",regex:"//.*$",push_:[{token:"comment.line.double-slash.actionscript.2",regex:"$",next:"pop"},{defaultToken:"comment.line.double-slash.actionscript.2"}]},{token:"keyword.operator.actionscript.2",regex:"\\binstanceof\\b"},{token:"keyword.operator.symbolic.actionscript.2",regex:"[-!%&*+=/?:]"},{token:["meta.preprocessor.actionscript.2","punctuation.definition.preprocessor.actionscript.2","meta.preprocessor.actionscript.2"],regex:"^([ \\t]*)(#)([a-zA-Z]+)"},{token:["storage.type.function.actionscript.2","meta.function.actionscript.2","entity.name.function.actionscript.2","meta.function.actionscript.2","punctuation.definition.parameters.begin.actionscript.2"],regex:"\\b(function)(\\s+)([a-zA-Z_]\\w*)(\\s*)(\\()",push:[{token:"punctuation.definition.parameters.end.actionscript.2",regex:"\\)",next:"pop"},{token:"variable.parameter.function.actionscript.2",regex:"[^,)$]+"},{defaultToken:"meta.function.actionscript.2"}]},{token:["storage.type.class.actionscript.2","meta.class.actionscript.2","entity.name.type.class.actionscript.2","meta.class.actionscript.2","storage.modifier.extends.actionscript.2","meta.class.actionscript.2","entity.other.inherited-class.actionscript.2"],regex:"\\b(class)(\\s+)([a-zA-Z_](?:\\w|\\.)*)(?:(\\s+)(extends)(\\s+)([a-zA-Z_](?:\\w|\\.)*))?"}]},this.normalizeRules()};s.metaData={fileTypes:["as"],keyEquivalent:"^~A",name:"ActionScript",scopeName:"source.actionscript.2"},r.inherits(s,i),t.ActionScriptHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/actionscript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/actionscript_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./actionscript_highlight_rules").ActionScriptHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/actionscript"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-ada.js b/js/ace/mode-ada.js
new file mode 100644
index 0000000..81cdc59
--- /dev/null
+++ b/js/ace/mode-ada.js
@@ -0,0 +1 @@
+ace.define("ace/mode/ada_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|body|private|then|if|procedure|type|case|in|protected|constant|interface|until||is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce|main",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.AdaHighlightRules=s}),ace.define("ace/mode/ada",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ada_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ada_highlight_rules").AdaHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/ada"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-apache_conf.js b/js/ace/mode-apache_conf.js
new file mode 100644
index 0000000..2414fc7
--- /dev/null
+++ b/js/ace/mode-apache_conf.js
@@ -0,0 +1 @@
+ace.define("ace/mode/apache_conf_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["punctuation.definition.comment.apacheconf","comment.line.hash.ini","comment.line.hash.ini"],regex:"^((?:\\s)*)(#)(.*$)"},{token:["punctuation.definition.tag.apacheconf","entity.tag.apacheconf","text","string.value.apacheconf","punctuation.definition.tag.apacheconf"],regex:"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\s)(.+?))?(>)"},{token:["punctuation.definition.tag.apacheconf","entity.tag.apacheconf","punctuation.definition.tag.apacheconf"],regex:"(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(>)"},{token:["keyword.alias.apacheconf","text","string.regexp.apacheconf","text","string.replacement.apacheconf","text"],regex:"(Rewrite(?:Rule|Cond))(\\s+)(.+?)(\\s+)(.+?)($|\\s)"},{token:["keyword.alias.apacheconf","text","entity.status.apacheconf","text","string.regexp.apacheconf","text","string.path.apacheconf","text"],regex:"(RedirectMatch)(?:(\\s+)(\\d\\d\\d|permanent|temp|seeother|gone))?(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?"},{token:["keyword.alias.apacheconf","text","entity.status.apacheconf","text","string.path.apacheconf","text","string.path.apacheconf","text"],regex:"(Redirect)(?:(\\s+)(\\d\\d\\d|permanent|temp|seeother|gone))?(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?"},{token:["keyword.alias.apacheconf","text","string.regexp.apacheconf","text","string.path.apacheconf","text"],regex:"(ScriptAliasMatch|AliasMatch)(\\s+)(.+?)(\\s+)(?:(.+?)(\\s))?"},{token:["keyword.alias.apacheconf","text","string.path.apacheconf","text","string.path.apacheconf","text"],regex:"(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?"},{token:"keyword.core.apacheconf",regex:"\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\b"},{token:"keyword.mpm.apacheconf",regex:"\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b"},{token:"keyword.access.apacheconf",regex:"\\b(?:Allow|Deny|Order)\\b"},{token:"keyword.actions.apacheconf",regex:"\\b(?:Action|Script)\\b"},{token:"keyword.alias.apacheconf",regex:"\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b"},{token:"keyword.auth.apacheconf",regex:"\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\b"},{token:"keyword.auth_anon.apacheconf",regex:"\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b"},{token:"keyword.auth_dbm.apacheconf",regex:"\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b"},{token:"keyword.auth_digest.apacheconf",regex:"\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\b"},{token:"keyword.auth_ldap.apacheconf",regex:"\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b"},{token:"keyword.autoindex.apacheconf",regex:"\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\b"},{token:"keyword.cache.apacheconf",regex:"\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b"},{token:"keyword.cern_meta.apacheconf",regex:"\\b(?:MetaDir|MetaFiles|MetaSuffix)\\b"},{token:"keyword.cgi.apacheconf",regex:"\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b"},{token:"keyword.cgid.apacheconf",regex:"\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b"},{token:"keyword.charset_lite.apacheconf",regex:"\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b"},{token:"keyword.dav.apacheconf",regex:"\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b"},{token:"keyword.deflate.apacheconf",regex:"\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b"},{token:"keyword.dir.apacheconf",regex:"\\b(?:DirectoryIndex|DirectorySlash)\\b"},{token:"keyword.disk_cache.apacheconf",regex:"\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b"},{token:"keyword.dumpio.apacheconf",regex:"\\b(?:DumpIOInput|DumpIOOutput)\\b"},{token:"keyword.env.apacheconf",regex:"\\b(?:PassEnv|SetEnv|UnsetEnv)\\b"},{token:"keyword.expires.apacheconf",regex:"\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\b"},{token:"keyword.ext_filter.apacheconf",regex:"\\b(?:ExtFilterDefine|ExtFilterOptions)\\b"},{token:"keyword.file_cache.apacheconf",regex:"\\b(?:CacheFile|MMapFile)\\b"},{token:"keyword.headers.apacheconf",regex:"\\b(?:Header|RequestHeader)\\b"},{token:"keyword.imap.apacheconf",regex:"\\b(?:ImapBase|ImapDefault|ImapMenu)\\b"},{token:"keyword.include.apacheconf",regex:"\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b"},{token:"keyword.isapi.apacheconf",regex:"\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b"},{token:"keyword.ldap.apacheconf",regex:"\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b"},{token:"keyword.log.apacheconf",regex:"\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b"},{token:"keyword.mem_cache.apacheconf",regex:"\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b"},{token:"keyword.mime.apacheconf",regex:"\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b"},{token:"keyword.misc.apacheconf",regex:"\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b"},{token:"keyword.negotiation.apacheconf",regex:"\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b"},{token:"keyword.nw_ssl.apacheconf",regex:"\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b"},{token:"keyword.proxy.apacheconf",regex:"\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b"},{token:"keyword.rewrite.apacheconf",regex:"\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b"},{token:"keyword.setenvif.apacheconf",regex:"\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b"},{token:"keyword.so.apacheconf",regex:"\\b(?:LoadFile|LoadModule)\\b"},{token:"keyword.ssl.apacheconf",regex:"\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\b"},{token:"keyword.usertrack.apacheconf",regex:"\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b"},{token:"keyword.vhost_alias.apacheconf",regex:"\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b"},{token:["keyword.php.apacheconf","text","entity.property.apacheconf","text","string.value.apacheconf","text"],regex:"\\b(php_value|php_flag)\\b(?:(\\s+)(.+?)(?:(\\s+)(.+?))?)?(\\s)"},{token:["punctuation.variable.apacheconf","variable.env.apacheconf","variable.misc.apacheconf","punctuation.variable.apacheconf"],regex:"(%\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})"},{token:["entity.mime-type.apacheconf","text"],regex:"\\b((?:text|image|application|video|audio)/.+?)(\\s)"},{token:"entity.helper.apacheconf",regex:"\\b(?:from|unset|set|on|off)\\b",caseInsensitive:!0},{token:"constant.integer.apacheconf",regex:"\\b\\d+\\b"},{token:["text","punctuation.definition.flag.apacheconf","string.flag.apacheconf","punctuation.definition.flag.apacheconf","text"],regex:"(\\s)(\\[)(.*?)(\\])(\\s)"}]},this.normalizeRules()};s.metaData={fileTypes:["conf","CONF","htaccess","HTACCESS","htgroups","HTGROUPS","htpasswd","HTPASSWD",".htaccess",".HTACCESS",".htgroups",".HTGROUPS",".htpasswd",".HTPASSWD"],name:"Apache Conf",scopeName:"source.apacheconf"},r.inherits(s,i),t.ApacheConfHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/apache_conf",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/apache_conf_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./apache_conf_highlight_rules").ApacheConfHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.$id="ace/mode/apache_conf"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-applescript.js b/js/ace/mode-applescript.js
new file mode 100644
index 0000000..3191b7b
--- /dev/null
+++ b/js/ace/mode-applescript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/applescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="about|above|after|against|and|around|as|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|try|until|where|while|whose|with|without",t="AppleScript|false|linefeed|return|pi|quote|result|space|tab|true",n="activate|beep|count|delay|launch|log|offset|read|round|run|say|summarize|write",r="alias|application|boolean|class|constant|date|file|integer|list|number|real|record|string|text|character|characters|contents|day|frontmost|id|item|length|month|name|paragraph|paragraphs|rest|reverse|running|time|version|weekday|word|words|year",i=this.createKeywordMapper({"support.function":n,"constant.language":t,"support.type":r,keyword:e},"identifier");this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",regex:"\\(\\*",next:"comment"},{token:"string",regex:'".*?"'},{token:"support.type",regex:"\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\b"},{token:"support.function",regex:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{token:"constant.language",regex:"\\b(text item delimiters|current application|missing value)\\b"},{token:"keyword",regex:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{token:i,regex:"[a-zA-Z][a-zA-Z0-9_]*\\b"}],comment:[{token:"comment",regex:"\\*\\)",next:"start"},{defaultToken:"comment"}]},this.normalizeRules()};r.inherits(s,i),t.AppleScriptHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/applescript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/applescript_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./applescript_highlight_rules").AppleScriptHighlightRules,u=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart="--",this.blockComment={start:"(*",end:"*)"},this.$id="ace/mode/applescript"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-asciidoc.js b/js/ace/mode-asciidoc.js
new file mode 100644
index 0000000..de55f24
--- /dev/null
+++ b/js/ace/mode-asciidoc.js
@@ -0,0 +1 @@
+ace.define("ace/mode/asciidoc_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){function t(e){var t=/\w/.test(e)?"\\b":"(?:\\B|^)";return t+e+"[^"+e+"].*?"+e+"(?![\\w*])"}var e="[a-zA-Z\u00a1-\uffff]+\\b";this.$rules={start:[{token:"empty",regex:/$/},{token:"literal",regex:/^\.{4,}\s*$/,next:"listingBlock"},{token:"literal",regex:/^-{4,}\s*$/,next:"literalBlock"},{token:"string",regex:/^\+{4,}\s*$/,next:"passthroughBlock"},{token:"keyword",regex:/^={4,}\s*$/},{token:"text",regex:/^\s*$/},{token:"empty",regex:"",next:"dissallowDelimitedBlock"}],dissallowDelimitedBlock:[{include:"paragraphEnd"},{token:"comment",regex:"^//.+$"},{token:"keyword",regex:"^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):"},{include:"listStart"},{token:"literal",regex:/^\s+.+$/,next:"indentedBlock"},{token:"empty",regex:"",next:"text"}],paragraphEnd:[{token:"doc.comment",regex:/^\/{4,}\s*$/,next:"commentBlock"},{token:"tableBlock",regex:/^\s*[|!]=+\s*$/,next:"tableBlock"},{token:"keyword",regex:/^(?:--|''')\s*$/,next:"start"},{token:"option",regex:/^\[.*\]\s*$/,next:"start"},{token:"pageBreak",regex:/^>{3,}$/,next:"start"},{token:"literal",regex:/^\.{4,}\s*$/,next:"listingBlock"},{token:"titleUnderline",regex:/^(?:={2,}|-{2,}|~{2,}|\^{2,}|\+{2,})\s*$/,next:"start"},{token:"singleLineTitle",regex:/^={1,5}\s+\S.*$/,next:"start"},{token:"otherBlock",regex:/^(?:\*{2,}|_{2,})\s*$/,next:"start"},{token:"optionalTitle",regex:/^\.[^.\s].+$/,next:"start"}],listStart:[{token:"keyword",regex:/^\s*(?:\d+\.|[a-zA-Z]\.|[ixvmIXVM]+\)|\*{1,5}|-|\.{1,5})\s/,next:"listText"},{token:"meta.tag",regex:/^.+(?::{2,4}|;;)(?: |$)/,next:"listText"},{token:"support.function.list.callout",regex:/^(?:<\d+>|\d+>|>) /,next:"text"},{token:"keyword",regex:/^\+\s*$/,next:"start"}],text:[{token:["link","variable.language"],regex:/((?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+)(\[.*?\])/},{token:"link",regex:/(?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+/},{token:"link",regex:/\b[\w\.\/\-]+@[\w\.\/\-]+\b/},{include:"macros"},{include:"paragraphEnd"},{token:"literal",regex:/\+{3,}/,next:"smallPassthrough"},{token:"escape",regex:/\((?:C|TM|R)\)|\.{3}|->|<-|=>|<=|&#(?:\d+|x[a-fA-F\d]+);|(?: |^)--(?=\s+\S)/},{token:"escape",regex:/\\[_*'`+#]|\\{2}[_*'`+#]{2}/},{token:"keyword",regex:/\s\+$/},{token:"text",regex:e},{token:["keyword","string","keyword"],regex:/(<<[\w\d\-$]+,)(.*?)(>>|$)/},{token:"keyword",regex:/<<[\w\d\-$]+,?|>>/},{token:"constant.character",regex:/\({2,3}.*?\){2,3}/},{token:"keyword",regex:/\[\[.+?\]\]/},{token:"support",regex:/^\[{3}[\w\d =\-]+\]{3}/},{include:"quotes"},{token:"empty",regex:/^\s*$/,next:"start"}],listText:[{include:"listStart"},{include:"text"}],indentedBlock:[{token:"literal",regex:/^[\s\w].+$/,next:"indentedBlock"},{token:"literal",regex:"",next:"start"}],listingBlock:[{token:"literal",regex:/^\.{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"constant.numeric",regex:"<\\d+>"},{token:"literal",regex:"[^<]+"},{token:"literal",regex:"<"}],literalBlock:[{token:"literal",regex:/^-{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"constant.numeric",regex:"<\\d+>"},{token:"literal",regex:"[^<]+"},{token:"literal",regex:"<"}],passthroughBlock:[{token:"literal",regex:/^\+{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"literal",regex:e+"|\\d+"},{include:"macros"},{token:"literal",regex:"."}],smallPassthrough:[{token:"literal",regex:/[+]{3,}/,next:"dissallowDelimitedBlock"},{token:"literal",regex:/^\s*$/,next:"dissallowDelimitedBlock"},{token:"literal",regex:e+"|\\d+"},{include:"macros"}],commentBlock:[{token:"doc.comment",regex:/^\/{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"doc.comment",regex:"^.*$"}],tableBlock:[{token:"tableBlock",regex:/^\s*\|={3,}\s*$/,next:"dissallowDelimitedBlock"},{token:"tableBlock",regex:/^\s*!={3,}\s*$/,next:"innerTableBlock"},{token:"tableBlock",regex:/\|/},{include:"text",noEscape:!0}],innerTableBlock:[{token:"tableBlock",regex:/^\s*!={3,}\s*$/,next:"tableBlock"},{token:"tableBlock",regex:/^\s*|={3,}\s*$/,next:"dissallowDelimitedBlock"},{token:"tableBlock",regex:/\!/}],macros:[{token:"macro",regex:/{[\w\-$]+}/},{token:["text","string","text","constant.character","text"],regex:/({)([\w\-$]+)(:)?(.+)?(})/},{token:["text","markup.list.macro","keyword","string"],regex:/(\w+)(footnote(?:ref)?::?)([^\s\[]+)?(\[.*?\])?/},{token:["markup.list.macro","keyword","string"],regex:/([a-zA-Z\-][\w\.\/\-]*::?)([^\s\[]+)(\[.*?\])?/},{token:["markup.list.macro","keyword"],regex:/([a-zA-Z\-][\w\.\/\-]+::?)(\[.*?\])/},{token:"keyword",regex:/^:.+?:(?= |$)/}],quotes:[{token:"string.italic",regex:/__[^_\s].*?__/},{token:"string.italic",regex:t("_")},{token:"keyword.bold",regex:/\*\*[^*\s].*?\*\*/},{token:"keyword.bold",regex:t("\\*")},{token:"literal",regex:t("\\+")},{token:"literal",regex:/\+\+[^+\s].*?\+\+/},{token:"literal",regex:/\$\$.+?\$\$/},{token:"literal",regex:t("`")},{token:"keyword",regex:t("^")},{token:"keyword",regex:t("~")},{token:"keyword",regex:/##?/},{token:"keyword",regex:/(?:\B|^)``|\b''/}]};var n={macro:"constant.character",tableBlock:"doc.comment",titleUnderline:"markup.heading",singleLineTitle:"markup.heading",pageBreak:"string",option:"string.regexp",otherBlock:"markup.list",literal:"support.function",optionalTitle:"constant.numeric",escape:"constant.language.escape",link:"markup.underline.list"};for(var r in this.$rules){var i=this.$rules[r];for(var s=i.length;s--;){var o=i[s];if(o.include||typeof o=="string"){var u=[s,1].concat(this.$rules[o.include||o]);o.noEscape&&(u=u.filter(function(e){return!e.next})),i.splice.apply(i,u)}else o.token in n&&(o.token=n[o.token])}}};r.inherits(s,i),t.AsciidocHighlightRules=s}),ace.define("ace/mode/folding/asciidoc",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:\|={10,}|[\.\/=\-~^+]{4,}\s*$|={1,5} )/,this.singleLineHeadingRe=/^={1,5}(?=\s+\S)/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="="?this.singleLineHeadingRe.test(r)?"start":e.getLine(n-1).length!=e.getLine(n).length?"":"start":e.bgTokenizer.getState(n)=="dissallowDelimitedBlock"?"end":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type}function d(){var t=f.value.match(p);if(t)return t[0].length;var r=c.indexOf(f.value[0])+1;return r==1&&e.getLine(n-1).length!=e.getLine(n).length?Infinity:r}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;var f,c=["=","-","~","^","+"],h="markup.heading",p=this.singleLineHeadingRe;if(l(n)==h){var v=d();while(++n<o){if(l(n)!=h)continue;var m=d();if(m<=v)break}var g=f&&f.value.match(this.singleLineHeadingRe);a=g?n-1:n-2;if(a>u)while(a>u&&(!l(a)||f.value[0]=="["))a--;if(a>u){var y=e.getLine(a).length;return new s(u,i,a,y)}}else{var b=e.bgTokenizer.getState(n);if(b=="dissallowDelimitedBlock"){while(n-->0)if(e.bgTokenizer.getState(n).lastIndexOf("Block")==-1)break;a=n+1;if(a<u){var y=e.getLine(n).length;return new s(a,5,u,i-5)}}else{while(++n<o)if(e.bgTokenizer.getState(n)=="dissallowDelimitedBlock")break;a=n;if(a>u){var y=e.getLine(n).length;return new s(u,5,a,y-5)}}}}}.call(o.prototype)}),ace.define("ace/mode/asciidoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/asciidoc_highlight_rules","ace/mode/folding/asciidoc"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./asciidoc_highlight_rules").AsciidocHighlightRules,o=e("./folding/asciidoc").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){if(e=="listblock"){var r=/^((?:.+)?)([-+*][ ]+)/.exec(t);return r?(new Array(r[1].length+1)).join(" ")+r[2]:""}return this.$getIndent(t)},this.$id="ace/mode/asciidoc"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-assembly_x86.js b/js/ace/mode-assembly_x86.js
new file mode 100644
index 0000000..06378b6
--- /dev/null
+++ b/js/ace/mode-assembly_x86.js
@@ -0,0 +1 @@
+ace.define("ace/mode/assembly_x86_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"keyword.control.assembly",regex:"\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\b",caseInsensitive:!0},{token:"variable.parameter.register.assembly",regex:"\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\b",caseInsensitive:!0},{token:"constant.character.decimal.assembly",regex:"\\b[0-9]+\\b"},{token:"constant.character.hexadecimal.assembly",regex:"\\b0x[A-F0-9]+\\b",caseInsensitive:!0},{token:"constant.character.hexadecimal.assembly",regex:"\\b[A-F0-9]+h\\b",caseInsensitive:!0},{token:"string.assembly",regex:/'([^\\']|\\.)*'/},{token:"string.assembly",regex:/"([^\\"]|\\.)*"/},{token:"support.function.directive.assembly",regex:"^\\[",push:[{token:"support.function.directive.assembly",regex:"\\]$",next:"pop"},{defaultToken:"support.function.directive.assembly"}]},{token:["support.function.directive.assembly","support.function.directive.assembly","entity.name.function.assembly"],regex:"(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)"},{token:"support.function.directive.assembly",regex:"^endstruc\\b"},{token:["support.function.directive.assembly","entity.name.function.assembly","support.function.directive.assembly","constant.character.assembly"],regex:"^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)"},{token:"support.function.directive.assembly",regex:"^%endmacro"},{token:["text","support.function.directive.assembly","text","entity.name.function.assembly"],regex:"(\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\$\\$|\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)",caseInsensitive:!0},{token:"support.function.directive.assembly",regex:"\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\b",caseInsensitive:!0},{token:"entity.name.function.assembly",regex:"^\\s*%%[\\w.]+?:$"},{token:"entity.name.function.assembly",regex:"^\\s*%\\$[\\w.]+?:$"},{token:"entity.name.function.assembly",regex:"^[\\w.]+?:"},{token:"entity.name.function.assembly",regex:"^[\\w.]+?\\b"},{token:"comment.assembly",regex:";.*$"}]},this.normalizeRules()};s.metaData={fileTypes:["asm"],name:"Assembly x86",scopeName:"source.assembly"},r.inherits(s,i),t.AssemblyX86HighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/assembly_x86",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/assembly_x86_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./assembly_x86_highlight_rules").AssemblyX86HighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=";",this.$id="ace/mode/assembly_x86"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-autohotkey.js b/js/ace/mode-autohotkey.js
new file mode 100644
index 0000000..3e19f89
--- /dev/null
+++ b/js/ace/mode-autohotkey.js
@@ -0,0 +1 @@
+ace.define("ace/mode/autohotkey_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters",t="AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR";this.$rules={start:[{token:"comment.line.ahk",regex:"(?:^| );.*$"},{token:"comment.block.ahk",regex:"/\\*",push:[{token:"comment.block.ahk",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.ahk"}]},{token:"doc.comment.ahk",regex:"#cs",push:[{token:"doc.comment.ahk",regex:"#ce",next:"pop"},{defaultToken:"doc.comment.ahk"}]},{token:"keyword.command.ahk",regex:"(?:\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\b",caseInsensitive:!0},{token:"keyword.control.ahk",regex:"(?:\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\b",caseInsensitive:!0},{token:"support.function.ahk",regex:"(?:\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\b",caseInsensitive:!0},{token:"variable.predefined.ahk",regex:"(?:\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\b",caseInsensitive:!0},{token:"support.constant.ahk",regex:"(?:\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\b",caseInsensitive:!0},{token:"variable.parameter",regex:"(?:\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\b",caseInsensitive:!0},{keywordMap:{"constant.language":e},regex:"\\w+\\b"},{keywordMap:{"variable.function":t},regex:"@\\w+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword.operator.ahk",regex:"=|==|<>|:=|<|>|\\*|\\/|\\+|:|\\?|\\-"},{token:"punctuation.ahk",regex:"#|`|::|,|\\{|\\}|\\(|\\)|\\%"},{token:["punctuation.quote.double","string.quoted.ahk","punctuation.quote.double"],regex:'(")((?:[^"]|"")*)(")'},{token:["label.ahk","punctuation.definition.label.ahk"],regex:"^([^: ]+)(:)(?!:)"}]},this.normalizeRules()};s.metaData={name:"AutoHotKey",scopeName:"source.ahk",fileTypes:["ahk"],foldingStartMarker:"^\\s*/\\*|^(?![^{]*?;|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|;|/\\*(?!.*?\\*/.*\\S))",foldingStopMarker:"^\\s*\\*/|^\\s*\\}"},r.inherits(s,i),t.AutoHotKeyHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/autohotkey",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/autohotkey_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./autohotkey_highlight_rules").AutoHotKeyHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=";",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/autohotkey"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-batchfile.js b/js/ace/mode-batchfile.js
new file mode 100644
index 0000000..df54571
--- /dev/null
+++ b/js/ace/mode-batchfile.js
@@ -0,0 +1 @@
+ace.define("ace/mode/batchfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"keyword.command.dosbatch",regex:"\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\b",caseInsensitive:!0},{token:"keyword.control.statement.dosbatch",regex:"\\b(?:goto|call|exit)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.if.dosbatch",regex:"\\bif\\s+not\\s+(?:exist|defined|errorlevel|cmdextversion)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.dosbatch",regex:"\\b(?:if|else)\\b",caseInsensitive:!0},{token:"keyword.control.repeat.dosbatch",regex:"\\bfor\\b",caseInsensitive:!0},{token:"keyword.operator.dosbatch",regex:"\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\b"},{token:["doc.comment","comment"],regex:"(?:^|\\b)(rem)($|\\s.*$)",caseInsensitive:!0},{token:"comment.line.colons.dosbatch",regex:"::.*$"},{include:"variable"},{token:"punctuation.definition.string.begin.shell",regex:'"',push:[{token:"punctuation.definition.string.end.shell",regex:'"',next:"pop"},{include:"variable"},{defaultToken:"string.quoted.double.dosbatch"}]},{token:"keyword.operator.pipe.dosbatch",regex:"[|]"},{token:"keyword.operator.redirect.shell",regex:"&>|\\d*>&\\d*|\\d*(?:>>|>|<)|\\d*<&|\\d*<>"}],variable:[{token:"constant.numeric",regex:"%%\\w+|%[*\\d]|%\\w+%"},{token:"constant.numeric",regex:"%~\\d+"},{token:["markup.list","constant.other","markup.list"],regex:"(%)(\\w+)(%?)"}]},this.normalizeRules()};s.metaData={name:"Batch File",scopeName:"source.dosbatch",fileTypes:["bat"]},r.inherits(s,i),t.BatchFileHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/batchfile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/batchfile_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./batchfile_highlight_rules").BatchFileHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="::",this.blockComment="",this.$id="ace/mode/batchfile"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-c9search.js b/js/ace/mode-c9search.js
new file mode 100644
index 0000000..508198c
--- /dev/null
+++ b/js/ace/mode-c9search.js
@@ -0,0 +1 @@
+ace.define("ace/mode/c9search_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function o(e,t){try{return new RegExp(e,t)}catch(n){}}var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,u=function(){this.$rules={start:[{tokenNames:["c9searchresults.constant.numeric","c9searchresults.text","c9searchresults.text","c9searchresults.keyword"],regex:"(^\\s+[0-9]+)(:\\s)(.+)",onMatch:function(e,t,n){var r=this.splitRegex.exec(e),i=this.tokenNames,s=[{type:i[0],value:r[1]},{type:i[1],value:r[2]}],o=n[1],u=r[3],a,f=0;if(o&&o.exec){o.lastIndex=0;while(a=o.exec(u)){var l=u.substring(f,a.index);f=o.lastIndex,l&&s.push({type:i[2],value:l});if(a[0])s.push({type:i[3],value:a[0]});else if(!l)break}}return f<u.length&&s.push({type:i[2],value:u.substr(f)}),s}},{token:["string","text"],regex:"(\\S.*)(:$)"},{regex:"Searching for .*$",onMatch:function(e,t,n){var r=e.split("");if(r.length<3)return"text";var s,u,a,f=0,l=[{value:r[f++]+"'",type:"text"},{value:u=r[f++],type:"text"},{value:"'"+r[f++],type:"text"}];r[2]!==" in"&&(a=r[f],l.push({value:"'"+r[f++]+"'",type:"text"},{value:r[f++],type:"text"})),l.push({value:" "+r[f++]+" ",type:"text"}),r[f+1]?(s=r[f+1],l.push({value:"("+r[f+1]+")",type:"text"}),f+=1):f-=1;while(f++<r.length)r[f]&&l.push({value:r[f],type:"text"});a&&(u=a,s=""),u&&(/regex/.test(s)||(u=i.escapeRegExp(u)),/whole/.test(s)&&(u="\\b"+u+"\\b"));var c=u&&o("("+u+")",/ sensitive/.test(s)?"g":"ig");return c&&(n[0]=t,n[1]=c),l}},{regex:"\\d+",token:"constant.numeric"}]}};r.inherits(u,s),t.C9SearchHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/c9search",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^(\S.*\:|Searching for.*)$/,this.foldingStopMarker=/^(\s+|Found.*)$/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getAllLines(n),s=r[n],o=/^(Found.*|Searching for.*)$/,u=/^(\S.*\:|\s*)$/,a=o.test(s)?o:u,f=n,l=n;if(this.foldingStartMarker.test(s)){for(var c=n+1,h=e.getLength();c<h;c++)if(a.test(r[c]))break;l=c}else if(this.foldingStopMarker.test(s)){for(var c=n-1;c>=0;c--){s=r[c];if(a.test(s))break}f=c}if(f!=l){var p=s.length;return a===o&&(p=s.search(/\(Found[^)]+\)$|$/)),new i(f,p,l,0)}}}.call(o.prototype)}),ace.define("ace/mode/c9search",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c9search_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/c9search"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c9search_highlight_rules").C9SearchHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/c9search").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c9search"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-c_cpp.js b/js/ace/mode-c_cpp.js
new file mode 100644
index 0000000..34f2b21
--- /dev/null
+++ b/js/ace/mode-c_cpp.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c_cpp_highlight_rules").c_cppHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-cirru.js b/js/ace/mode-cirru.js
new file mode 100644
index 0000000..73fd5da
--- /dev/null
+++ b/js/ace/mode-cirru.js
@@ -0,0 +1 @@
+ace.define("ace/mode/cirru_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"constant.numeric",regex:/[\d\.]+/},{token:"comment.line.double-dash",regex:/--/,next:"comment"},{token:"storage.modifier",regex:/\(/},{token:"storage.modifier",regex:/\,/,next:"line"},{token:"support.function",regex:/[^\(\)\"\s]+/,next:"line"},{token:"string.quoted.double",regex:/"/,next:"string"},{token:"storage.modifier",regex:/\)/}],comment:[{token:"comment.line.double-dash",regex:/\ +[^\n]+/,next:"start"}],string:[{token:"string.quoted.double",regex:/"/,next:"line"},{token:"constant.character.escape",regex:/\\/,next:"escape"},{token:"string.quoted.double",regex:/[^\\\"]+/}],escape:[{token:"constant.character.escape",regex:/./,next:"string"}],line:[{token:"constant.numeric",regex:/[\d\.]+/},{token:"markup.raw",regex:/^\s*/,next:"start"},{token:"storage.modifier",regex:/\$/,next:"start"},{token:"variable.parameter",regex:/[^\(\)\"\s]+/},{token:"storage.modifier",regex:/\(/,next:"start"},{token:"storage.modifier",regex:/\)/},{token:"markup.raw",regex:/^\ */,next:"start"},{token:"string.quoted.double",regex:/"/,next:"string"}]}};r.inherits(s,i),t.CirruHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/cirru",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cirru_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./cirru_highlight_rules").CirruHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/cirru"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-clojure.js b/js/ace/mode-clojure.js
new file mode 100644
index 0000000..c1bc4f1
--- /dev/null
+++ b/js/ace/mode-clojure.js
@@ -0,0 +1 @@
+ace.define("ace/mode/clojure_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > &gt; >= &gt;= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap",t="throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!",n="true false nil",r=this.createKeywordMapper({keyword:t,"constant.language":n,"support.function":e},"identifier",!1," ");this.$rules={start:[{token:"comment",regex:";.*$"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"string",regex:'"',next:"string"},{token:"constant",regex:/:[^()\[\]{}'"\^%`,;\s]+/},{token:"string.regexp",regex:'/#"(?:\\.|(?:\\")|[^""\n])*"/g'}],string:[{token:"constant.language.escape",regex:"\\\\.|\\\\$"},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"}]}};r.inherits(s,i),t.ClojureHighlightRules=s}),ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define("ace/mode/clojure",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./clojure_highlight_rules").ClojureHighlightRules,o=e("./matching_parens_outdent").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.lineCommentStart=";",this.minorIndentFunctions=["defn","defn-","defmacro","def","deftest","testing"],this.$toIndent=function(e){return e.split("").map(function(e){return/\s/.exec(e)?e:" "}).join("")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s==="("?(r--,i=!0):s==="("||s==="["||s==="{"?(r--,i=!1):(s===")"||s==="]"||s==="}")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a="";for(;;){s=e[o];if(s===" "||s==="	")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/clojure"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-cobol.js b/js/ace/mode-cobol.js
new file mode 100644
index 0000000..2f766c1
--- /dev/null
+++ b/js/ace/mode-cobol.js
@@ -0,0 +1 @@
+ace.define("ace/mode/cobol_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce|main",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"\\*.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.CobolHighlightRules=s}),ace.define("ace/mode/cobol",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cobol_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./cobol_highlight_rules").CobolHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="*",this.$id="ace/mode/cobol"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-coffee.js b/js/ace/mode-coffee.js
new file mode 100644
index 0000000..45505e5
--- /dev/null
+++ b/js/ace/mode-coffee.js
@@ -0,0 +1 @@
+ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function s(){var e="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",t="this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes",n="true|false|null|undefined|NaN|Infinity",r="case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf",i="Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray",s="Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|",o="window|arguments|prototype|document",u=this.createKeywordMapper({keyword:t,"constant.language":n,"invalid.illegal":r,"language.support.class":i,"language.support.function":s,"variable.language":o},"identifier"),a={token:["paren.lparen","variable.parameter","paren.rparen","text","storage.type"],regex:/(?:(\()((?:"[^")]*?"|'[^')]*?'|\/[^\/)]*?\/|[^()\"'\/])*?)(\))(\s*))?([\-=]>)/.source},f=/\\(?: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={start:[{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{stateName:"qdoc",token:"string",regex:"'''",next:[{token:"string",regex:"'''",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qqdoc",token:"string",regex:'"""',next:[{token:"string",regex:'"""',next:"start"},{token:"paren.string",regex:"#{",push:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qstring",token:"string",regex:"'",next:[{token:"string",regex:"'",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qqstring",token:"string.start",regex:'"',next:[{token:"string.end",regex:'"',next:"start"},{token:"paren.string",regex:"#{",push:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"js",token:"string",regex:"`",next:[{token:"string",regex:"`",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{regex:"[{}]",onMatch:function(e,t,n){this.next="";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift()||"";if(this.next.indexOf("string")!=-1)return"paren.string"}return"paren"}},{token:"string.regex",regex:"///",next:"heregex"},{token:"string.regex",regex:/(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/},{token:"comment",regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:["punctuation.operator","text","identifier"],regex:"(\\.)(\\s*)("+r+")"},{token:"punctuation.operator",regex:"\\."},{token:["keyword","text","language.support.class","text","keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")(?:(\\s+)(extends)(\\s+)("+e+"))?"},{token:["entity.name.function","text","keyword.operator","text"].concat(a.token),regex:"("+e+")(\\s*)([=:])(\\s*)"+a.regex},a,{token:"variable",regex:"@(?:"+e+")?"},{token:u,regex:e},{token:"punctuation.operator",regex:"\\,|\\."},{token:"storage.type",regex:"[\\-=]>"},{token:"keyword.operator",regex:"(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])"},{token:"paren.lparen",regex:"[({[]"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"}],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],comment:[{token:"comment",regex:"###",next:"start"},{defaultToken:"comment"}]},this.normalizeRules()}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/coffee",["require","exports","module","ace/mode/coffee_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee","ace/range","ace/mode/text","ace/worker/worker_client","ace/lib/oop"],function(e,t,n){"use strict";function l(){this.HighlightRules=r,this.$outdent=new i,this.foldingRules=new s}var r=e("./coffee_highlight_rules").CoffeeHighlightRules,i=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./folding/coffee").FoldMode,o=e("../range").Range,u=e("./text").Mode,a=e("../worker/worker_client").WorkerClient,f=e("../lib/oop");f.inherits(l,u),function(){var e=/(?:[({[=:]|[-=]>|\b(?:else|try|(?:swi|ca)tch(?:\s+[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$|^\s*(else\b\s*)?(?:if|for|while|loop)\b(?!.*\bthen\b)/,t=/^(\s*)#/,n=/^\s*###(?!#)/,r=/^\s*/;this.getNextLineIndent=function(t,n,r){var i=this.$getIndent(n),s=this.getTokenizer().getLineTokens(n,t).tokens;return(!s.length||s[s.length-1].type!=="comment")&&t==="start"&&e.test(n)&&(i+=r),i},this.toggleCommentLines=function(e,i,s,u){console.log("toggle");var a=new o(0,0,0,0);for(var f=s;f<=u;++f){var l=i.getLine(f);if(n.test(l))continue;t.test(l)?l=l.replace(t,"$1"):l=l.replace(r,"$&#"),a.end.row=a.start.row=f,a.end.column=l.length+1,i.replace(a,l)}},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/coffee_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/coffee"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-coldfusion.js b/js/ace/mode-coldfusion.js
new file mode 100644
index 0000000..516cea7
--- /dev/null
+++ b/js/ace/mode-coldfusion.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/coldfusion_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./html_highlight_rules").HtmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,"cfjs-","cfscript"),this.normalizeRules()};r.inherits(o,s),t.ColdfusionHighlightRules=o}),ace.define("ace/mode/coldfusion",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/html","ace/mode/coldfusion_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./html").Mode,o=e("./coldfusion_highlight_rules").ColdfusionHighlightRules,u="cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)".split("|"),a=function(){s.call(this),this.HighlightRules=o};r.inherits(a,s),function(){this.voidElements=r.mixin(i.arrayToMap(u),this.voidElements),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id="ace/mode/coldfusion"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-csharp.js b/js/ace/mode-csharp.js
new file mode 100644
index 0000000..41b4981
--- /dev/null
+++ b/js/ace/mode-csharp.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/csharp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"this",keyword:"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic","constant.language":"null|true|false"},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:/'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))'/},{token:"string",start:'"',end:'"|$',next:[{token:"constant.language.escape",regex:/\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},{token:"invalid",regex:/\\./}]},{token:"string",start:'@"',end:'"',next:[{token:"constant.language.escape",regex:'""'}]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"keyword",regex:"^\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/folding/csharp",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./cstyle").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.usingRe=/^\s*using \S/,this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);if(!r){var i=e.getLine(n);if(/^\s*#region\b/.test(i))return"start";var s=this.usingRe;if(s.test(i)){var o=e.getLine(n-1),u=e.getLine(n+1);if(!s.test(o)&&s.test(u))return"start"}}return r},this.getFoldWidgetRange=function(e,t,n){var r=this.getFoldWidgetRangeBase(e,t,n);if(r)return r;var i=e.getLine(n);if(this.usingRe.test(i))return this.getUsingStatementBlock(e,i,n);if(/^\s*#region\b/.test(i))return this.getRegionBlock(e,i,n)},this.getUsingStatementBlock=function(e,t,n){var r=t.match(this.usingRe)[0].length-1,s=e.getLength(),o=n,u=n;while(++n<s){t=e.getLine(n);if(/^\s*$/.test(t))continue;if(!this.usingRe.test(t))break;u=n}if(u>o){var a=e.getLine(u).length;return new i(o,r,u,a)}},this.getRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/csharp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/csharp"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./csharp_highlight_rules").CSharpHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/csharp").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id="ace/mode/csharp"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-css.js b/js/ace/mode-css.js
new file mode 100644
index 0000000..75e889a
--- /dev/null
+++ b/js/ace/mode-css.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-curly.js b/js/ace/mode-curly.js
new file mode 100644
index 0000000..50dd3c7
--- /dev/null
+++ b/js/ace/mode-curly.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/curly_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=function(){i.call(this),this.$rules.start.unshift({token:"variable",regex:"{{",push:"curly-start"}),this.$rules["curly-start"]=[{token:"variable",regex:"}}",next:"pop"}],this.normalizeRules()};r.inherits(s,i),t.CurlyHighlightRules=s}),ace.define("ace/mode/curly",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/matching_brace_outdent","ace/mode/html_highlight_rules","ace/mode/folding/html","ace/mode/curly_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("./html_highlight_rules").HtmlHighlightRules,u=e("./folding/html").FoldMode,a=e("./curly_highlight_rules").CurlyHighlightRules,f=function(){i.call(this),this.HighlightRules=a,this.$outdent=new s,this.foldingRules=new u};r.inherits(f,i),function(){this.$id="ace/mode/curly"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-d.js b/js/ace/mode-d.js
new file mode 100644
index 0000000..bbc2642
--- /dev/null
+++ b/js/ace/mode-d.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/d_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters",t="break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|return|switch|while|catch|try|throw|finally|version|assert|unittest|with",n="auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|cfloat|creal|cdouble|cent|ifloat|ireal|idouble|int|long|short|void|uint|ulong|ushort|ucent|function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object",r="abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|ref|immutable|lazy|nothrow|override|package|pragma|private|protected|public|pure|scope|shared|__gshared|synchronized|static|volatile",s="class|struct|union|template|interface|enum|macro",o={token:"constant.language.escape",regex:"\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\"\\?0abfnrtv\\\\])|(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))"},u="null|true|false|__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__",a="/|/\\=|&|&\\=|&&|\\|\\|\\=|\\|\\||\\-|\\-\\=|\\-\\-|\\+|\\+\\=|\\+\\+|\\<|\\<\\=|\\<\\<|\\<\\<\\=|\\<\\>|\\<\\>\\=|\\>|\\>\\=|\\>\\>\\=|\\>\\>\\>\\=|\\>\\>|\\>\\>\\>|\\!|\\!\\=|\\!\\<\\>|\\!\\<\\>\\=|\\!\\<|\\!\\<\\=|\\!\\>|\\!\\>\\=|\\?|\\$|\\=|\\=\\=|\\*|\\*\\=|%|%\\=|\\^|\\^\\=|\\^\\^|\\^\\^\\=|~|~\\=|\\=\\>|#",f=this.$keywords=this.createKeywordMapper({"keyword.modifier":r,"keyword.control":t,"keyword.type":n,keyword:e,"keyword.storage":s,punctation:"\\.|\\,|;|\\.\\.|\\.\\.\\.","keyword.operator":a,"constant.language":u},"identifier"),l="[a-zA-Z_\u00a1-\uffff][a-zA-Z\\d_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"star-comment"},{token:"comment.shebang",regex:"^s*#!.*"},{token:"comment",regex:"\\/\\+",next:"plus-comment"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),"string"},regex:'q"(?:[\\[\\(\\{\\<]+)',next:"operator-heredoc-string"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),"string"},regex:'q"(?:[a-zA-Z_]+)$',next:"identifier-heredoc-string"},{token:"string",regex:'[xr]?"',next:"quote-string"},{token:"string",regex:"[xr]?`",next:"backtick-string"},{token:"string",regex:"[xr]?['](?:(?:\\\\.)|(?:[^'\\\\]))*?['][cdw]?"},{token:["keyword","text","paren.lparen"],regex:/(asm)(\s*)({)/,next:"d-asm"},{token:["keyword","text","paren.lparen","constant.language"],regex:"(__traits)(\\s*)(\\()("+l+")"},{token:["keyword","text","variable.module"],regex:"(import|module)(\\s+)((?:"+l+"\\.?)*)"},{token:["keyword.storage","text","entity.name.type"],regex:"("+s+")(\\s*)("+l+")"},{token:["keyword","text","variable.storage","text"],regex:"(alias|typedef)(\\s*)("+l+")(\\s*)"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\b"},{token:"entity.other.attribute-name",regex:"@"+l},{token:f,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:a},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\.|\\:"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],"star-comment":[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],"plus-comment":[{token:"comment",regex:"\\+\\/",next:"start"},{defaultToken:"comment"}],"quote-string":[o,{token:"string",regex:'"[cdw]?',next:"start"},{defaultToken:"string"}],"backtick-string":[o,{token:"string",regex:"`[cdw]?",next:"start"},{defaultToken:"string"}],"operator-heredoc-string":[{onMatch:function(e,t,n){e=e.substring(e.length-2,e.length-1);var r={">":"<","]":"[",")":"(","}":"{"};return Object.keys(r).indexOf(e)!=-1&&(e=r[e]),e!=n[1]?"string":(n.shift(),n.shift(),"string")},regex:'(?:[\\]\\)}>]+)"',next:"start"},{token:"string",regex:"[^\\]\\)}>]+"}],"identifier-heredoc-string":[{onMatch:function(e,t,n){return e=e.substring(0,e.length-1),e!=n[1]?"string":(n.shift(),n.shift(),"string")},regex:'^(?:[A-Za-z_][a-zA-Z0-9]+)"',next:"start"},{token:"string",regex:"[^\\]\\)}>]+"}],"d-asm":[{token:"paren.rparen",regex:"\\}",next:"start"},{token:"keyword.instruction",regex:"[a-zA-Z]+",next:"d-asm-instruction"},{token:"text",regex:"\\s+"}],"d-asm-instruction":[{token:"constant.language",regex:/AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i},{token:"identifier",regex:"[a-zA-Z]+"},{token:"string",regex:'".*"'},{token:"comment",regex:"//.*$"},{token:"constant.numeric",regex:"[0-9.xA-F]+"},{token:"punctuation.operator",regex:"\\,"},{token:"punctuation.operator",regex:";",next:"d-asm"},{token:"text",regex:"\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};o.metaData={comment:"D language",fileTypes:["d","di"],firstLineMatch:"^#!.*\\b[glr]?dmd\\b.",foldingStartMarker:"(?x)/\\*\\*(?!\\*)|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))",foldingStopMarker:"(?<!\\*)\\*\\*/|^\\s*\\}",keyEquivalent:"^~D",name:"D",scopeName:"source.d"},r.inherits(o,s),t.DHighlightRules=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/d",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/d_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./d_highlight_rules").DHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/d"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-dart.js b/js/ace/mode-dart.js
new file mode 100644
index 0000000..0ce4a2e
--- /dev/null
+++ b/js/ace/mode-dart.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c_cpp_highlight_rules").c_cppHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/dart_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="true|false|null",t="this|super",n="try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await",r="abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum",s="static|final|const",o="void|bool|num|int|double|dynamic|var|String",u=this.createKeywordMapper({"constant.language.dart":e,"variable.language.dart":t,"keyword.control.dart":n,"keyword.declaration.dart":r,"storage.modifier.dart":s,"storage.type.primitive.dart":o},"identifier"),a={token:"string",regex:".+"};this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:["meta.preprocessor.script.dart"],regex:"^(#!.*)$"},{token:"keyword.other.import.dart",regex:"(?:\\b)(?:library|import|export|part|of|show|hide)(?:\\b)"},{token:["keyword.other.import.dart","text"],regex:"(?:\\b)(prefix)(\\s*:)"},{regex:"\\bas\\b",token:"keyword.cast.dart"},{regex:"\\?|:",token:"keyword.control.ternary.dart"},{regex:"(?:\\b)(is\\!?)(?:\\b)",token:["keyword.operator.dart"]},{regex:"(<<|>>>?|~|\\^|\\||&)",token:["keyword.operator.bitwise.dart"]},{regex:"((?:&|\\^|\\||<<|>>>?)=)",token:["keyword.operator.assignment.bitwise.dart"]},{regex:"(===?|!==?|<=?|>=?)",token:["keyword.operator.comparison.dart"]},{regex:"((?:[+*/%-]|\\~)=)",token:["keyword.operator.assignment.arithmetic.dart"]},{regex:"=",token:"keyword.operator.assignment.dart"},{token:"string",regex:"'''",next:"qdoc"},{token:"string",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{regex:"(\\-\\-|\\+\\+)",token:["keyword.operator.increment-decrement.dart"]},{regex:"(\\-|\\+|\\*|\\/|\\~\\/|%)",token:["keyword.operator.arithmetic.dart"]},{regex:"(!|&&|\\|\\|)",token:["keyword.operator.logical.dart"]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},a],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},a],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},a],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},a]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.DartHighlightRules=o}),ace.define("ace/mode/dart",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/dart_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("./dart_highlight_rules").DartHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/dart"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-diff.js b/js/ace/mode-diff.js
new file mode 100644
index 0000000..7760fe7
--- /dev/null
+++ b/js/ace/mode-diff.js
@@ -0,0 +1 @@
+ace.define("ace/mode/diff_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{regex:"^(?:\\*{15}|={67}|-{3}|\\+{3})$",token:"punctuation.definition.separator.diff",name:"keyword"},{regex:"^(@@)(\\s*.+?\\s*)(@@)(.*)$",token:["constant","constant.numeric","constant","comment.doc.tag"]},{regex:"^(\\d+)([,\\d]+)(a|d|c)(\\d+)([,\\d]+)(.*)$",token:["constant.numeric","punctuation.definition.range.diff","constant.function","constant.numeric","punctuation.definition.range.diff","invalid"],name:"meta."},{regex:"^(\\-{3}|\\+{3}|\\*{3})( .+)$",token:["constant.numeric","meta.tag"]},{regex:"^([!+>])(.*?)(\\s*)$",token:["support.constant","text","invalid"]},{regex:"^([<\\-])(.*?)(\\s*)$",token:["support.function","string","invalid"]},{regex:"^(diff)(\\s+--\\w+)?(.+?)( .+)?$",token:["variable","variable","keyword","variable"]},{regex:"^Index.+$",token:"variable"},{regex:"^\\s+$",token:"text"},{regex:"\\s*$",token:"invalid"},{defaultToken:"invisible",caseInsensitive:!0}]}};r.inherits(s,i),t.DiffHighlightRules=s}),ace.define("ace/mode/folding/diff",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(e,t){this.regExpList=e,this.flag=t,this.foldingStartMarker=RegExp("^("+e.join("|")+")",this.flag)};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i={row:n,column:r.length},o=this.regExpList;for(var u=1;u<=o.length;u++){var a=RegExp("^("+o.slice(0,u).join("|")+")",this.flag);if(a.test(r))break}for(var f=e.getLength();++n<f;){r=e.getLine(n);if(a.test(r))break}if(n==i.row+1)return;return s.fromPoints(i,{row:n-1,column:r.length})}}.call(o.prototype)}),ace.define("ace/mode/diff",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/diff_highlight_rules","ace/mode/folding/diff"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./diff_highlight_rules").DiffHighlightRules,o=e("./folding/diff").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o(["diff","index","\\+{3}","@@|\\*{5}"],"i")};r.inherits(u,i),function(){this.$id="ace/mode/diff"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-django.js b/js/ace/mode-django.js
new file mode 100644
index 0000000..bf089c0
--- /dev/null
+++ b/js/ace/mode-django.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/django",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./html").Mode,s=e("./html_highlight_rules").HtmlHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){this.$rules={start:[{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant",regex:"[0-9]+"},{token:"variable",regex:"[-_a-zA-Z0-9:]+"}],comment:[{token:"comment.block",merge:!0,regex:".+?"}],tag:[{token:"entity.name.function",regex:"[a-zA-Z][_a-zA-Z0-9]*",next:"start"}]}};r.inherits(u,o);var a=function(){this.$rules=(new s).getRules();for(var e in this.$rules)this.$rules[e].unshift({token:"comment.line",regex:"\\{#.*?#\\}"},{token:"comment.block",regex:"\\{\\%\\s*comment\\s*\\%\\}",merge:!0,next:"django-comment"},{token:"constant.language",regex:"\\{\\{",next:"django-start"},{token:"constant.language",regex:"\\{\\%",next:"django-tag"}),this.embedRules(u,"django-",[{token:"comment.block",regex:"\\{\\%\\s*endcomment\\s*\\%\\}",merge:!0,next:"start"},{token:"constant.language",regex:"\\%\\}",next:"start"},{token:"constant.language",regex:"\\}\\}",next:"start"}])};r.inherits(a,s);var f=function(){i.call(this),this.HighlightRules=a};r.inherits(f,i),function(){this.$id="ace/mode/django"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-dockerfile.js b/js/ace/mode-dockerfile.js
new file mode 100644
index 0000000..c6792ce
--- /dev/null
+++ b/js/ace/mode-dockerfile.js
@@ -0,0 +1 @@
+ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z_][a-zA-Z0-9_]*",c="(?:(?:\\$"+l+")|(?:"+l+"=))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"constant",regex:/\\./},{token:["text","comment"],regex:/(^|\s)(#.*)$/},{token:"string",regex:'"',push:[{token:"constant.language.escape",regex:/\\(?:[$abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/},{token:"constant",regex:/\$\w+/},{token:"string",regex:'"',next:"pop"},{defaultToken:"string"}]},{regex:"<<<",token:"keyword.operator"},{stateName:"heredoc",regex:"(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:"constant",value:i[1]},{type:"text",value:i[2]},{type:"string",value:i[3]},{type:"support.class",value:i[4]},{type:"string",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^	+"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"variable.language",regex:h},{token:"variable",regex:c},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",start:"'",end:"'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sh_highlight_rules").ShHighlightRules,o=e("../range").Range,u=e("./folding/cstyle").FoldMode,a=e("./behaviour/cstyle").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id="ace/mode/sh"}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/dockerfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/sh_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./sh_highlight_rules").ShHighlightRules,s=function(){i.call(this);var e=this.$rules.start;for(var t=0;t<e.length;t++)if(e[t].token=="variable.language"){e.splice(t,0,{token:"constant.language",regex:"(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY)\\b)",caseInsensitive:!0});break}};r.inherits(s,i),t.DockerfileHighlightRules=s}),ace.define("ace/mode/dockerfile",["require","exports","module","ace/lib/oop","ace/mode/sh","ace/mode/dockerfile_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./sh").Mode,s=e("./dockerfile_highlight_rules").DockerfileHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id="ace/mode/dockerfile"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-dot.js b/js/ace/mode-dot.js
new file mode 100644
index 0000000..bc0dfef
--- /dev/null
+++ b/js/ace/mode-dot.js
@@ -0,0 +1 @@
+ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/dot_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/doc_comment_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./doc_comment_highlight_rules").DocCommentHighlightRules,u=function(){var e=i.arrayToMap("strict|node|edge|graph|digraph|subgraph".split("|")),t=i.arrayToMap("damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z".split("|"));this.$rules={start:[{token:"comment",regex:/\/\/.*$/},{token:"comment",regex:/#.*$/},{token:"comment",merge:!0,regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/[+\-]?\d+(?:(?:\.\d*)?(?:[eE][+\-]?\d+)?)?\b/},{token:"keyword.operator",regex:/\+|=|\->/},{token:"punctuation.operator",regex:/,|;/},{token:"paren.lparen",regex:/[\[{]/},{token:"paren.rparen",regex:/[\]}]/},{token:"comment",regex:/^#!.*$/},{token:function(n){return e.hasOwnProperty(n.toLowerCase())?"keyword":t.hasOwnProperty(n.toLowerCase())?"variable":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]}};r.inherits(u,s),t.DotHighlightRules=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/dot",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matching_brace_outdent","ace/mode/dot_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("./dot_highlight_rules").DotHighlightRules,u=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=o,this.$outdent=new s,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=["//","#"],this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/dot"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-eiffel.js b/js/ace/mode-eiffel.js
new file mode 100644
index 0000000..e0d358d
--- /dev/null
+++ b/js/ace/mode-eiffel.js
@@ -0,0 +1 @@
+ace.define("ace/mode/eiffel_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="across|agent|alias|all|attached|as|assign|attribute|check|class|convert|create|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|Precursor|redefine|rename|require|rescue|retry|select|separate|some|then|undefine|until|variant|when",t="and|implies|or|xor",n="Void",r="True|False",i="Current|Result",s=this.createKeywordMapper({"constant.language":n,"constant.language.boolean":r,"variable.language":i,"keyword.operator":t,keyword:e},"identifier",!0),o=/(?:[^"%\b\f\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)+?/;this.$rules={start:[{token:"string.quoted.other",regex:/"\[/,next:"aligned_verbatim_string"},{token:"string.quoted.other",regex:/"\{/,next:"non-aligned_verbatim_string"},{token:"string.quoted.double",regex:/"(?:[^%\b\f\n\r\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)*?"/},{token:"comment.line.double-dash",regex:/--.*/},{token:"constant.character",regex:/'(?:[^%\b\f\n\r\t\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)'/},{token:"constant.numeric",regex:/\b0(?:[xX][\da-fA-F](?:_*[\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\b/},{token:"constant.numeric",regex:/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/},{token:"paren.lparen",regex:/[\[({]|<<|\|\(/},{token:"paren.rparen",regex:/[\])}]|>>|\|\)/},{token:"keyword.operator",regex:/:=|->|\.(?=\w)|[;,:?]/},{token:"keyword.operator",regex:/\\\\|\|\.\.\||\.\.|\/[~\/]?|[><\/]=?|[-+*^=~]/},{token:function(e){var t=s(e);return t==="identifier"&&e===e.toUpperCase()&&(t="entity.name.type"),t},regex:/[a-zA-Z][a-zA-Z\d_]*\b/},{token:"text",regex:/\s+/}],aligned_verbatim_string:[{token:"string",regex:/]"/,next:"start"},{token:"string",regex:o}],"non-aligned_verbatim_string":[{token:"string.quoted.other",regex:/}"/,next:"start"},{token:"string.quoted.other",regex:o}]}};r.inherits(s,i),t.EiffelHighlightRules=s}),ace.define("ace/mode/eiffel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/eiffel_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./eiffel_highlight_rules").EiffelHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/eiffel"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-ejs.js b/js/ace/mode-ejs.js
new file mode 100644
index 0000000..3b7eab6
--- /dev/null
+++ b/js/ace/mode-ejs.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},o=t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},u=t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},a=t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},f=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},l=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},c=function(){var e="abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many",t="alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield",n="true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING",r="$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self",i=this.$keywords=this.createKeywordMapper({keyword:t,"constant.language":n,"variable.language":r,"support.function":e,"invalid.deprecated":"debugger"},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",regex:"^=begin(?:$|\\s.*$)",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},[{regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren.lparen";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.start",regex:/"/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/"/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/`/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/`/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/'/,push:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string.end",regex:/'/,next:"pop"},{defaultToken:"string"}]}],{token:"text",regex:"::"},{token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},s,f,l,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{stateName:"heredoc",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:"constant",value:i[1]},{type:"string",value:i[2]},{type:"support.class",value:i[3]},{type:"string",value:i[4]}]},regex:"(<<-?)(['\"`]?)([\\w]+)(['\"`]?)",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"string.character",regex:"\\B\\?."},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end(?:$|\\s.*$)",next:"start"},{token:"comment",regex:".+"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ruby_highlight_rules").RubyHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/coffee").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/),u=t.match(/^\s*(class|def|module)\s.*$/),a=t.match(/.*do(\s*|\s+\|.*\|\s*)$/),f=t.match(/^\s*(if|else)\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id="ace/mode/ruby"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/ejs",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/javascript_highlight_rules","ace/lib/oop","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/ruby"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=function(e,t){i.call(this),e||(e="(?:<%|<\\?|{{)"),t||(t="(?:%>|\\?>|}})");for(var n in this.$rules)this.$rules[n].unshift({token:"markup.list.meta.tag",regex:e+"(?![>}])[-=]?",push:"ejs-start"});this.embedRules(s,"ejs-"),this.$rules["ejs-start"].unshift({token:"markup.list.meta.tag",regex:"-?"+t,next:"pop"},{token:"comment",regex:"//.*?"+t,next:"pop"}),this.$rules["ejs-no_regex"].unshift({token:"markup.list.meta.tag",regex:"-?"+t,next:"pop"},{token:"comment",regex:"//.*?"+t,next:"pop"}),this.normalizeRules()};r.inherits(o,i),t.EjsHighlightRules=o;var r=e("../lib/oop"),u=e("./html").Mode,a=e("./javascript").Mode,f=e("./css").Mode,l=e("./ruby").Mode,c=function(){u.call(this),this.HighlightRules=o,this.createModeDelegates({"js-":a,"css-":f,"ejs-":a})};r.inherits(c,u),function(){this.$id="ace/mode/ejs"}.call(c.prototype),t.Mode=c})
\ No newline at end of file
diff --git a/js/ace/mode-elixir.js b/js/ace/mode-elixir.js
new file mode 100644
index 0000000..f7eec02
--- /dev/null
+++ b/js/ace/mode-elixir.js
@@ -0,0 +1 @@
+ace.define("ace/mode/elixir_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["meta.module.elixir","keyword.control.module.elixir","meta.module.elixir","entity.name.type.module.elixir"],regex:"^(\\s*)(defmodule)(\\s+)((?:[A-Z]\\w*\\s*\\.\\s*)*[A-Z]\\w*)"},{token:"comment.documentation.heredoc",regex:'@(?:module|type)?doc (?:~[a-z])?"""',push:[{token:"comment.documentation.heredoc",regex:'\\s*"""',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"comment.documentation.heredoc"}],comment:"@doc with heredocs is treated as documentation"},{token:"comment.documentation.heredoc",regex:'@(?:module|type)?doc ~[A-Z]"""',push:[{token:"comment.documentation.heredoc",regex:'\\s*"""',next:"pop"},{defaultToken:"comment.documentation.heredoc"}],comment:"@doc with heredocs is treated as documentation"},{token:"comment.documentation.heredoc",regex:"@(?:module|type)?doc (?:~[a-z])?'''",push:[{token:"comment.documentation.heredoc",regex:"\\s*'''",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"comment.documentation.heredoc"}],comment:"@doc with heredocs is treated as documentation"},{token:"comment.documentation.heredoc",regex:"@(?:module|type)?doc ~[A-Z]'''",push:[{token:"comment.documentation.heredoc",regex:"\\s*'''",next:"pop"},{defaultToken:"comment.documentation.heredoc"}],comment:"@doc with heredocs is treated as documentation"},{token:"comment.documentation.false",regex:"@(?:module|type)?doc false",comment:"@doc false is treated as documentation"},{token:"comment.documentation.string",regex:'@(?:module|type)?doc "',push:[{token:"comment.documentation.string",regex:'"',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"comment.documentation.string"}],comment:"@doc with string is treated as documentation"},{token:"keyword.control.elixir",regex:"\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])"},{token:"keyword.operator.elixir",regex:"\\b(?:and|not|or|when|xor|in|inlist|inbits)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\.)\\b(and|not|or|when|xor|in|inlist|inbits)\\b",comment:" as above, just doesn't need a 'end' and does a logic operation"},{token:"constant.language.elixir",regex:"\\b(?:nil|true|false)\\b(?![?!])"},{token:"variable.language.elixir",regex:"\\b__(?:CALLER|ENV|MODULE|DIR)__\\b(?![?!])"},{token:["punctuation.definition.variable.elixir","variable.other.readwrite.module.elixir"],regex:"(@)([a-zA-Z_]\\w*)"},{token:["punctuation.definition.variable.elixir","variable.other.anonymous.elixir"],regex:"(&)(\\d*)"},{token:"variable.other.constant.elixir",regex:"\\b[A-Z]\\w*\\b"},{token:"constant.numeric.elixir",regex:"\\b(?:0x[\\da-fA-F](?:_?[\\da-fA-F])*|\\d(?:_?\\d)*(?:\\.(?![^[:space:][:digit:]])(?:_?\\d)*)?(?:[eE][-+]?\\d(?:_?\\d)*)?|0b[01]+|0o[0-7]+)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"\\b(0x\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01]+|0o[0-7]+)\\b"},{token:"punctuation.definition.constant.elixir",regex:":'",push:[{token:"punctuation.definition.constant.elixir",regex:"'",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"constant.other.symbol.single-quoted.elixir"}]},{token:"punctuation.definition.constant.elixir",regex:':"',push:[{token:"punctuation.definition.constant.elixir",regex:'"',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"constant.other.symbol.double-quoted.elixir"}]},{token:"punctuation.definition.string.begin.elixir",regex:"(?:''')",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?>''')",push:[{token:"punctuation.definition.string.end.elixir",regex:"^\\s*'''",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"support.function.variable.quoted.single.heredoc.elixir"}],comment:"Single-quoted heredocs"},{token:"punctuation.definition.string.begin.elixir",regex:"'",push:[{token:"punctuation.definition.string.end.elixir",regex:"'",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"support.function.variable.quoted.single.elixir"}],comment:"single quoted string (allows for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:'(?:""")',TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:'(?>""")',push:[{token:"punctuation.definition.string.end.elixir",regex:'^\\s*"""',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.quoted.double.heredoc.elixir"}],comment:"Double-quoted heredocs"},{token:"punctuation.definition.string.begin.elixir",regex:'"',push:[{token:"punctuation.definition.string.end.elixir",regex:'"',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.quoted.double.elixir"}],comment:"double quoted string (allows for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:'~[a-z](?:""")',TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:'~[a-z](?>""")',push:[{token:"punctuation.definition.string.end.elixir",regex:'^\\s*"""',next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.quoted.double.heredoc.elixir"}],comment:"Double-quoted heredocs sigils"},{token:"punctuation.definition.string.begin.elixir",regex:"~[a-z]\\{",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\}[a-z]*",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.interpolated.elixir"}],comment:"sigil (allow for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[a-z]\\[",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\][a-z]*",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.interpolated.elixir"}],comment:"sigil (allow for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[a-z]\\<",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\>[a-z]*",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.interpolated.elixir"}],comment:"sigil (allow for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[a-z]\\(",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\)[a-z]*",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{defaultToken:"string.interpolated.elixir"}],comment:"sigil (allow for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[a-z][^\\w]",push:[{token:"punctuation.definition.string.end.elixir",regex:"[^\\w][a-z]*",next:"pop"},{include:"#interpolated_elixir"},{include:"#escaped_char"},{include:"#escaped_char"},{defaultToken:"string.interpolated.elixir"}],comment:"sigil (allow for interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:'~[A-Z](?:""")',TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:'~[A-Z](?>""")',push:[{token:"punctuation.definition.string.end.elixir",regex:'^\\s*"""',next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"Double-quoted heredocs sigils"},{token:"punctuation.definition.string.begin.elixir",regex:"~[A-Z]\\{",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\}[a-z]*",next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"sigil (without interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[A-Z]\\[",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\][a-z]*",next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"sigil (without interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[A-Z]\\<",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\>[a-z]*",next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"sigil (without interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[A-Z]\\(",push:[{token:"punctuation.definition.string.end.elixir",regex:"\\)[a-z]*",next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"sigil (without interpolation)"},{token:"punctuation.definition.string.begin.elixir",regex:"~[A-Z][^\\w]",push:[{token:"punctuation.definition.string.end.elixir",regex:"[^\\w][a-z]*",next:"pop"},{defaultToken:"string.quoted.other.literal.upper.elixir"}],comment:"sigil (without interpolation)"},{token:["punctuation.definition.constant.elixir","constant.other.symbol.elixir"],regex:"(:)([a-zA-Z_][\\w@]*(?:[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(?:\\^\\^)?)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!:)(:)(?>[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)",comment:"symbols"},{token:"punctuation.definition.constant.elixir",regex:"(?:[a-zA-Z_][\\w@]*(?:[?!])?):(?!:)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)",comment:"symbols"},{token:["punctuation.definition.comment.elixir","comment.line.number-sign.elixir"],regex:"(#)(.*)"},{token:"constant.numeric.elixir",regex:"\\?(?:\\\\(?:x[\\da-fA-F]{1,2}(?![\\da-fA-F])\\b|[^xMC])|[^\\s\\\\])",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|[^xMC])|[^\\s\\\\])",comment:'\n			matches questionmark-letters.\n\n			examples (1st alternation = hex):\n			?\\x1     ?\\x61\n\n			examples (2rd alternation = escaped):\n			?\\n      ?\\b\n\n			examples (3rd alternation = normal):\n			?a       ?A       ?0 \n			?*       ?"       ?( \n			?.       ?#\n			\n			the negative lookbehind prevents against matching\n			p(42.tainted?)\n			'},{token:"keyword.operator.assignment.augmented.elixir",regex:"\\+=|\\-=|\\|\\|=|~=|&&="},{token:"keyword.operator.comparison.elixir",regex:"===?|!==?|<=?|>=?"},{token:"keyword.operator.bitwise.elixir",regex:"\\|{3}|&{3}|\\^{3}|<{3}|>{3}|~{3}"},{token:"keyword.operator.logical.elixir",regex:"!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b",originalRegex:"(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b"},{token:"keyword.operator.arithmetic.elixir",regex:"\\*|\\+|\\-|/"},{token:"keyword.operator.other.elixir",regex:"\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|\\|>|~|=>"},{token:"keyword.operator.assignment.elixir",regex:"="},{token:"punctuation.separator.other.elixir",regex:":"},{token:"punctuation.separator.statement.elixir",regex:"\\;"},{token:"punctuation.separator.object.elixir",regex:","},{token:"punctuation.separator.method.elixir",regex:"\\."},{token:"punctuation.section.scope.elixir",regex:"\\{|\\}"},{token:"punctuation.section.array.elixir",regex:"\\[|\\]"},{token:"punctuation.section.function.elixir",regex:"\\(|\\)"}],"#escaped_char":[{token:"constant.character.escape.elixir",regex:"\\\\(?:x[\\da-fA-F]{1,2}|.)"}],"#interpolated_elixir":[{token:["source.elixir.embedded.source","source.elixir.embedded.source.empty"],regex:"(#\\{)(\\})"},{todo:{token:"punctuation.section.embedded.elixir",regex:"#\\{",push:[{token:"punctuation.section.embedded.elixir",regex:"\\}",next:"pop"},{include:"#nest_curly_and_self"},{include:"$self"},{defaultToken:"source.elixir.embedded.source"}]}}],"#nest_curly_and_self":[{token:"punctuation.section.scope.elixir",regex:"\\{",push:[{token:"punctuation.section.scope.elixir",regex:"\\}",next:"pop"},{include:"#nest_curly_and_self"}]},{include:"$self"}],"#regex_sub":[{include:"#interpolated_elixir"},{include:"#escaped_char"},{token:["punctuation.definition.arbitrary-repitition.elixir","string.regexp.arbitrary-repitition.elixir","string.regexp.arbitrary-repitition.elixir","punctuation.definition.arbitrary-repitition.elixir"],regex:"(\\{)(\\d+)((?:,\\d+)?)(\\})"},{token:"punctuation.definition.character-class.elixir",regex:"\\[(?:\\^?\\])?",push:[{token:"punctuation.definition.character-class.elixir",regex:"\\]",next:"pop"},{include:"#escaped_char"},{defaultToken:"string.regexp.character-class.elixir"}]},{token:"punctuation.definition.group.elixir",regex:"\\(",push:[{token:"punctuation.definition.group.elixir",regex:"\\)",next:"pop"},{include:"#regex_sub"},{defaultToken:"string.regexp.group.elixir"}]},{token:["punctuation.definition.comment.elixir","comment.line.number-sign.elixir"],regex:"(?:^|\\s)(#)(\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$)",originalRegex:"(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$",comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags."}]},this.normalizeRules()};s.metaData={comment:"Textmate bundle for Elixir Programming Language.",fileTypes:["ex","exs"],firstLineMatch:"^#!/.*\\belixir",foldingStartMarker:"(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$",foldingStopMarker:"^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)",keyEquivalent:"^~E",name:"Elixir",scopeName:"source.elixir"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/elixir",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elixir_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./elixir_highlight_rules").ElixirHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.$id="ace/mode/elixir"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-elm.js b/js/ace/mode-elm.js
new file mode 100644
index 0000000..4bc2e72
--- /dev/null
+++ b/js/ace/mode-elm.js
@@ -0,0 +1 @@
+ace.define("ace/mode/elm_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:"as|case|class|data|default|deriving|do|else|export|foreign|hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|open|then|type|where|_|port|\u03bb"},"identifier"),t=/\\(\d+|['"\\&trnbvf])/,n=/[a-z_]/.source,r=/[A-Z]/.source,i=/[a-z_A-Z0-9\']/.source;this.$rules={start:[{token:"string.start",regex:'"',next:"string"},{token:"string.character",regex:"'(?:"+t.source+"|.)'?"},{regex:/0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\d+(\.\d+)?([eE][-+]?\d*)?/,token:"constant.numeric"},{token:"keyword",regex:/\.\.|\||:|=|\\|\"|->|<-|\u2192/},{token:"keyword.operator",regex:/[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]+/},{token:"operator.punctuation",regex:/[,;`]/},{regex:r+i+"+\\.?",token:function(e){return e[e.length-1]=="."?"entity.name.function":"constant.language"}},{regex:"^"+n+i+"+",token:function(e){return"constant.language"}},{token:e,regex:"[\\w\\xff-\\u218e\\u2455-\\uffff]+\\b"},{regex:"{-#?",token:"comment.start",onMatch:function(e,t,n){return this.next=e.length==2?"blockComment":"docComment",this.token}},{token:"variable.language",regex:/\[markdown\|/,next:"markdown"},{token:"paren.lparen",regex:/[\[({]/},{token:"paren.rparen",regex:/[\])}]/}],markdown:[{regex:/\|\]/,next:"start"},{defaultToken:"string"}],blockComment:[{regex:"{-",token:"comment.start",push:"blockComment"},{regex:"-}",token:"comment.end",next:"pop"},{defaultToken:"comment"}],docComment:[{regex:"{-",token:"comment.start",push:"docComment"},{regex:"-}",token:"comment.end",next:"pop"},{defaultToken:"doc.comment"}],string:[{token:"constant.language.escape",regex:t},{token:"text",regex:/\\(\s|$)/,next:"stringGap"},{token:"string.end",regex:'"',next:"start"}],stringGap:[{token:"text",regex:/\\/,next:"string"},{token:"error",regex:"",next:"start"}]},this.normalizeRules()};r.inherits(s,i),t.ElmHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/elm",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elm_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./elm_highlight_rules").ElmHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="--",this.blockComment={start:"{-",end:"-}"},this.$id="ace/mode/elm"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-erlang.js b/js/ace/mode-erlang.js
new file mode 100644
index 0000000..f6dc305
--- /dev/null
+++ b/js/ace/mode-erlang.js
@@ -0,0 +1 @@
+ace.define("ace/mode/erlang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{include:"#module-directive"},{include:"#import-export-directive"},{include:"#behaviour-directive"},{include:"#record-directive"},{include:"#define-directive"},{include:"#macro-directive"},{include:"#directive"},{include:"#function"},{include:"#everything-else"}],"#atom":[{token:"punctuation.definition.symbol.begin.erlang",regex:"'",push:[{token:"punctuation.definition.symbol.end.erlang",regex:"'",next:"pop"},{token:["punctuation.definition.escape.erlang","constant.other.symbol.escape.erlang","punctuation.definition.escape.erlang","constant.other.symbol.escape.erlang","constant.other.symbol.escape.erlang"],regex:"(\\\\)(?:([bdefnrstv\\\\'\"])|(\\^)([@-_])|([0-7]{1,3}))"},{token:"invalid.illegal.atom.erlang",regex:"\\\\\\^?.?"},{defaultToken:"constant.other.symbol.quoted.single.erlang"}]},{token:"constant.other.symbol.unquoted.erlang",regex:"[a-z][a-zA-Z\\d@_]*"}],"#behaviour-directive":[{token:["meta.directive.behaviour.erlang","punctuation.section.directive.begin.erlang","meta.directive.behaviour.erlang","keyword.control.directive.behaviour.erlang","meta.directive.behaviour.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.behaviour.erlang","entity.name.type.class.behaviour.definition.erlang","meta.directive.behaviour.erlang","punctuation.definition.parameters.end.erlang","meta.directive.behaviour.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)(behaviour)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)"}],"#binary":[{token:"punctuation.definition.binary.begin.erlang",regex:"<<",push:[{token:"punctuation.definition.binary.end.erlang",regex:">>",next:"pop"},{token:["punctuation.separator.binary.erlang","punctuation.separator.value-size.erlang"],regex:"(,)|(:)"},{include:"#internal-type-specifiers"},{include:"#everything-else"},{defaultToken:"meta.structure.binary.erlang"}]}],"#character":[{token:["punctuation.definition.character.erlang","punctuation.definition.escape.erlang","constant.character.escape.erlang","punctuation.definition.escape.erlang","constant.character.escape.erlang","constant.character.escape.erlang"],regex:"(\\$)(\\\\)(?:([bdefnrstv\\\\'\"])|(\\^)([@-_])|([0-7]{1,3}))"},{token:"invalid.illegal.character.erlang",regex:"\\$\\\\\\^?.?"},{token:["punctuation.definition.character.erlang","constant.character.erlang"],regex:"(\\$)(\\S)"},{token:"invalid.illegal.character.erlang",regex:"\\$.?"}],"#comment":[{token:"punctuation.definition.comment.erlang",regex:"%.*$",push_:[{token:"comment.line.percentage.erlang",regex:"$",next:"pop"},{defaultToken:"comment.line.percentage.erlang"}]}],"#define-directive":[{token:["meta.directive.define.erlang","punctuation.section.directive.begin.erlang","meta.directive.define.erlang","keyword.control.directive.define.erlang","meta.directive.define.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.define.erlang","entity.name.function.macro.definition.erlang","meta.directive.define.erlang","punctuation.separator.parameters.erlang"],regex:"^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(,)",push:[{token:["punctuation.definition.parameters.end.erlang","meta.directive.define.erlang","punctuation.section.directive.end.erlang"],regex:"(\\))(\\s*)(\\.)",next:"pop"},{include:"#everything-else"},{defaultToken:"meta.directive.define.erlang"}]},{token:"meta.directive.define.erlang",regex:"(?=^\\s*-\\s*define\\s*\\(\\s*[a-zA-Z\\d@_]+\\s*\\()",push:[{token:["punctuation.definition.parameters.end.erlang","meta.directive.define.erlang","punctuation.section.directive.end.erlang"],regex:"(\\))(\\s*)(\\.)",next:"pop"},{token:["text","punctuation.section.directive.begin.erlang","text","keyword.control.directive.define.erlang","text","punctuation.definition.parameters.begin.erlang","text","entity.name.function.macro.definition.erlang","text","punctuation.definition.parameters.begin.erlang"],regex:"^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\()",push:[{token:["punctuation.definition.parameters.end.erlang","text","punctuation.separator.parameters.erlang"],regex:"(\\))(\\s*)(,)",next:"pop"},{token:"punctuation.separator.parameters.erlang",regex:","},{include:"#everything-else"}]},{token:"punctuation.separator.define.erlang",regex:"\\|\\||\\||:|;|,|\\.|->"},{include:"#everything-else"},{defaultToken:"meta.directive.define.erlang"}]}],"#directive":[{token:["meta.directive.erlang","punctuation.section.directive.begin.erlang","meta.directive.erlang","keyword.control.directive.erlang","meta.directive.erlang","punctuation.definition.parameters.begin.erlang"],regex:"^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\(?)",push:[{token:["punctuation.definition.parameters.end.erlang","meta.directive.erlang","punctuation.section.directive.end.erlang"],regex:"(\\)?)(\\s*)(\\.)",next:"pop"},{include:"#everything-else"},{defaultToken:"meta.directive.erlang"}]},{token:["meta.directive.erlang","punctuation.section.directive.begin.erlang","meta.directive.erlang","keyword.control.directive.erlang","meta.directive.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\.)"}],"#everything-else":[{include:"#comment"},{include:"#record-usage"},{include:"#macro-usage"},{include:"#expression"},{include:"#keyword"},{include:"#textual-operator"},{include:"#function-call"},{include:"#tuple"},{include:"#list"},{include:"#binary"},{include:"#parenthesized-expression"},{include:"#character"},{include:"#number"},{include:"#atom"},{include:"#string"},{include:"#symbolic-operator"},{include:"#variable"}],"#expression":[{token:"keyword.control.if.erlang",regex:"\\bif\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#internal-expression-punctuation"},{include:"#everything-else"},{defaultToken:"meta.expression.if.erlang"}]},{token:"keyword.control.case.erlang",regex:"\\bcase\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#internal-expression-punctuation"},{include:"#everything-else"},{defaultToken:"meta.expression.case.erlang"}]},{token:"keyword.control.receive.erlang",regex:"\\breceive\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#internal-expression-punctuation"},{include:"#everything-else"},{defaultToken:"meta.expression.receive.erlang"}]},{token:["keyword.control.fun.erlang","text","entity.name.type.class.module.erlang","text","punctuation.separator.module-function.erlang","text","entity.name.function.erlang","text","punctuation.separator.function-arity.erlang"],regex:"\\b(fun)(\\s*)(?:([a-z][a-zA-Z\\d@_]*)(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*)(\\s*)(/)"},{token:"keyword.control.fun.erlang",regex:"\\bfun\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{token:"text",regex:"(?=\\()",push:[{token:"punctuation.separator.clauses.erlang",regex:";|(?=\\bend\\b)",next:"pop"},{include:"#internal-function-parts"}]},{include:"#everything-else"},{defaultToken:"meta.expression.fun.erlang"}]},{token:"keyword.control.try.erlang",regex:"\\btry\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#internal-expression-punctuation"},{include:"#everything-else"},{defaultToken:"meta.expression.try.erlang"}]},{token:"keyword.control.begin.erlang",regex:"\\bbegin\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#internal-expression-punctuation"},{include:"#everything-else"},{defaultToken:"meta.expression.begin.erlang"}]},{token:"keyword.control.query.erlang",regex:"\\bquery\\b",push:[{token:"keyword.control.end.erlang",regex:"\\bend\\b",next:"pop"},{include:"#everything-else"},{defaultToken:"meta.expression.query.erlang"}]}],"#function":[{token:["meta.function.erlang","entity.name.function.definition.erlang","meta.function.erlang"],regex:"^(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(?=\\()",push:[{token:"punctuation.terminator.function.erlang",regex:"\\.",next:"pop"},{token:["text","entity.name.function.erlang","text"],regex:"^(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(?=\\()"},{token:"text",regex:"(?=\\()",push:[{token:"punctuation.separator.clauses.erlang",regex:";|(?=\\.)",next:"pop"},{include:"#parenthesized-expression"},{include:"#internal-function-parts"}]},{include:"#everything-else"},{defaultToken:"meta.function.erlang"}]}],"#function-call":[{token:"meta.function-call.erlang",regex:"(?=(?:[a-z][a-zA-Z\\d@_]*|'[^']*')\\s*(?:\\(|:\\s*(?:[a-z][a-zA-Z\\d@_]*|'[^']*')\\s*\\())",push:[{token:"punctuation.definition.parameters.end.erlang",regex:"\\)",next:"pop"},{token:["entity.name.type.class.module.erlang","text","punctuation.separator.module-function.erlang","text","entity.name.function.guard.erlang","text","punctuation.definition.parameters.begin.erlang"],regex:"(?:(erlang)(\\s*)(:)(\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\s*)(\\()",push:[{token:"text",regex:"(?=\\))",next:"pop"},{token:"punctuation.separator.parameters.erlang",regex:","},{include:"#everything-else"}]},{token:["entity.name.type.class.module.erlang","text","punctuation.separator.module-function.erlang","text","entity.name.function.erlang","text","punctuation.definition.parameters.begin.erlang"],regex:"(?:([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(\\()",push:[{token:"text",regex:"(?=\\))",next:"pop"},{token:"punctuation.separator.parameters.erlang",regex:","},{include:"#everything-else"}]},{defaultToken:"meta.function-call.erlang"}]}],"#import-export-directive":[{token:["meta.directive.import.erlang","punctuation.section.directive.begin.erlang","meta.directive.import.erlang","keyword.control.directive.import.erlang","meta.directive.import.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.import.erlang","entity.name.type.class.module.erlang","meta.directive.import.erlang","punctuation.separator.parameters.erlang"],regex:"^(\\s*)(-)(\\s*)(import)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(,)",push:[{token:["punctuation.definition.parameters.end.erlang","meta.directive.import.erlang","punctuation.section.directive.end.erlang"],regex:"(\\))(\\s*)(\\.)",next:"pop"},{include:"#internal-function-list"},{defaultToken:"meta.directive.import.erlang"}]},{token:["meta.directive.export.erlang","punctuation.section.directive.begin.erlang","meta.directive.export.erlang","keyword.control.directive.export.erlang","meta.directive.export.erlang","punctuation.definition.parameters.begin.erlang"],regex:"^(\\s*)(-)(\\s*)(export)(\\s*)(\\()",push:[{token:["punctuation.definition.parameters.end.erlang","meta.directive.export.erlang","punctuation.section.directive.end.erlang"],regex:"(\\))(\\s*)(\\.)",next:"pop"},{include:"#internal-function-list"},{defaultToken:"meta.directive.export.erlang"}]}],"#internal-expression-punctuation":[{token:["punctuation.separator.clause-head-body.erlang","punctuation.separator.clauses.erlang","punctuation.separator.expressions.erlang"],regex:"(->)|(;)|(,)"}],"#internal-function-list":[{token:"punctuation.definition.list.begin.erlang",regex:"\\[",push:[{token:"punctuation.definition.list.end.erlang",regex:"\\]",next:"pop"},{token:["entity.name.function.erlang","text","punctuation.separator.function-arity.erlang"],regex:"([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(/)",push:[{token:"punctuation.separator.list.erlang",regex:",|(?=\\])",next:"pop"},{include:"#everything-else"}]},{include:"#everything-else"},{defaultToken:"meta.structure.list.function.erlang"}]}],"#internal-function-parts":[{token:"text",regex:"(?=\\()",push:[{token:"punctuation.separator.clause-head-body.erlang",regex:"->",next:"pop"},{token:"punctuation.definition.parameters.begin.erlang",regex:"\\(",push:[{token:"punctuation.definition.parameters.end.erlang",regex:"\\)",next:"pop"},{token:"punctuation.separator.parameters.erlang",regex:","},{include:"#everything-else"}]},{token:"punctuation.separator.guards.erlang",regex:",|;"},{include:"#everything-else"}]},{token:"punctuation.separator.expressions.erlang",regex:","},{include:"#everything-else"}],"#internal-record-body":[{token:"punctuation.definition.class.record.begin.erlang",regex:"\\{",push:[{token:"meta.structure.record.erlang",regex:"(?=\\})",next:"pop"},{token:["variable.other.field.erlang","variable.language.omitted.field.erlang","text","keyword.operator.assignment.erlang"],regex:"(?:([a-z][a-zA-Z\\d@_]*|'[^']*')|(_))(\\s*)(=|::)",push:[{token:"punctuation.separator.class.record.erlang",regex:",|(?=\\})",next:"pop"},{include:"#everything-else"}]},{token:["variable.other.field.erlang","text","punctuation.separator.class.record.erlang"],regex:"([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)((?:,)?)"},{include:"#everything-else"},{defaultToken:"meta.structure.record.erlang"}]}],"#internal-type-specifiers":[{token:"punctuation.separator.value-type.erlang",regex:"/",push:[{token:"text",regex:"(?=,|:|>>)",next:"pop"},{token:["storage.type.erlang","storage.modifier.signedness.erlang","storage.modifier.endianness.erlang","storage.modifier.unit.erlang","punctuation.separator.type-specifiers.erlang"],regex:"(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)"}]}],"#keyword":[{token:"keyword.control.erlang",regex:"\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b"}],"#list":[{token:"punctuation.definition.list.begin.erlang",regex:"\\[",push:[{token:"punctuation.definition.list.end.erlang",regex:"\\]",next:"pop"},{token:"punctuation.separator.list.erlang",regex:"\\||\\|\\||,"},{include:"#everything-else"},{defaultToken:"meta.structure.list.erlang"}]}],"#macro-directive":[{token:["meta.directive.ifdef.erlang","punctuation.section.directive.begin.erlang","meta.directive.ifdef.erlang","keyword.control.directive.ifdef.erlang","meta.directive.ifdef.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.ifdef.erlang","entity.name.function.macro.erlang","meta.directive.ifdef.erlang","punctuation.definition.parameters.end.erlang","meta.directive.ifdef.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)(ifdef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)"},{token:["meta.directive.ifndef.erlang","punctuation.section.directive.begin.erlang","meta.directive.ifndef.erlang","keyword.control.directive.ifndef.erlang","meta.directive.ifndef.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.ifndef.erlang","entity.name.function.macro.erlang","meta.directive.ifndef.erlang","punctuation.definition.parameters.end.erlang","meta.directive.ifndef.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)(ifndef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)"},{token:["meta.directive.undef.erlang","punctuation.section.directive.begin.erlang","meta.directive.undef.erlang","keyword.control.directive.undef.erlang","meta.directive.undef.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.undef.erlang","entity.name.function.macro.erlang","meta.directive.undef.erlang","punctuation.definition.parameters.end.erlang","meta.directive.undef.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)(undef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)"}],"#macro-usage":[{token:["keyword.operator.macro.erlang","meta.macro-usage.erlang","entity.name.function.macro.erlang"],regex:"(\\?\\??)(\\s*)([a-zA-Z\\d@_]+)"}],"#module-directive":[{token:["meta.directive.module.erlang","punctuation.section.directive.begin.erlang","meta.directive.module.erlang","keyword.control.directive.module.erlang","meta.directive.module.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.module.erlang","entity.name.type.class.module.definition.erlang","meta.directive.module.erlang","punctuation.definition.parameters.end.erlang","meta.directive.module.erlang","punctuation.section.directive.end.erlang"],regex:"^(\\s*)(-)(\\s*)(module)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)"}],"#number":[{token:"text",regex:"(?=\\d)",push:[{token:"text",regex:"(?!\\d)",next:"pop"},{token:["constant.numeric.float.erlang","punctuation.separator.integer-float.erlang","constant.numeric.float.erlang","punctuation.separator.float-exponent.erlang"],regex:"(\\d+)(\\.)(\\d+)((?:[eE][\\+\\-]?\\d+)?)"},{token:["constant.numeric.integer.binary.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.binary.erlang"],regex:"(2)(#)([0-1]+)"},{token:["constant.numeric.integer.base-3.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-3.erlang"],regex:"(3)(#)([0-2]+)"},{token:["constant.numeric.integer.base-4.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-4.erlang"],regex:"(4)(#)([0-3]+)"},{token:["constant.numeric.integer.base-5.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-5.erlang"],regex:"(5)(#)([0-4]+)"},{token:["constant.numeric.integer.base-6.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-6.erlang"],regex:"(6)(#)([0-5]+)"},{token:["constant.numeric.integer.base-7.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-7.erlang"],regex:"(7)(#)([0-6]+)"},{token:["constant.numeric.integer.octal.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.octal.erlang"],regex:"(8)(#)([0-7]+)"},{token:["constant.numeric.integer.base-9.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-9.erlang"],regex:"(9)(#)([0-8]+)"},{token:["constant.numeric.integer.decimal.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.decimal.erlang"],regex:"(10)(#)(\\d+)"},{token:["constant.numeric.integer.base-11.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-11.erlang"],regex:"(11)(#)([\\daA]+)"},{token:["constant.numeric.integer.base-12.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-12.erlang"],regex:"(12)(#)([\\da-bA-B]+)"},{token:["constant.numeric.integer.base-13.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-13.erlang"],regex:"(13)(#)([\\da-cA-C]+)"},{token:["constant.numeric.integer.base-14.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-14.erlang"],regex:"(14)(#)([\\da-dA-D]+)"},{token:["constant.numeric.integer.base-15.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-15.erlang"],regex:"(15)(#)([\\da-eA-E]+)"},{token:["constant.numeric.integer.hexadecimal.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.hexadecimal.erlang"],regex:"(16)(#)([\\da-fA-F]+)"},{token:["constant.numeric.integer.base-17.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-17.erlang"],regex:"(17)(#)([\\da-gA-G]+)"},{token:["constant.numeric.integer.base-18.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-18.erlang"],regex:"(18)(#)([\\da-hA-H]+)"},{token:["constant.numeric.integer.base-19.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-19.erlang"],regex:"(19)(#)([\\da-iA-I]+)"},{token:["constant.numeric.integer.base-20.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-20.erlang"],regex:"(20)(#)([\\da-jA-J]+)"},{token:["constant.numeric.integer.base-21.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-21.erlang"],regex:"(21)(#)([\\da-kA-K]+)"},{token:["constant.numeric.integer.base-22.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-22.erlang"],regex:"(22)(#)([\\da-lA-L]+)"},{token:["constant.numeric.integer.base-23.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-23.erlang"],regex:"(23)(#)([\\da-mA-M]+)"},{token:["constant.numeric.integer.base-24.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-24.erlang"],regex:"(24)(#)([\\da-nA-N]+)"},{token:["constant.numeric.integer.base-25.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-25.erlang"],regex:"(25)(#)([\\da-oA-O]+)"},{token:["constant.numeric.integer.base-26.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-26.erlang"],regex:"(26)(#)([\\da-pA-P]+)"},{token:["constant.numeric.integer.base-27.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-27.erlang"],regex:"(27)(#)([\\da-qA-Q]+)"},{token:["constant.numeric.integer.base-28.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-28.erlang"],regex:"(28)(#)([\\da-rA-R]+)"},{token:["constant.numeric.integer.base-29.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-29.erlang"],regex:"(29)(#)([\\da-sA-S]+)"},{token:["constant.numeric.integer.base-30.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-30.erlang"],regex:"(30)(#)([\\da-tA-T]+)"},{token:["constant.numeric.integer.base-31.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-31.erlang"],regex:"(31)(#)([\\da-uA-U]+)"},{token:["constant.numeric.integer.base-32.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-32.erlang"],regex:"(32)(#)([\\da-vA-V]+)"},{token:["constant.numeric.integer.base-33.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-33.erlang"],regex:"(33)(#)([\\da-wA-W]+)"},{token:["constant.numeric.integer.base-34.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-34.erlang"],regex:"(34)(#)([\\da-xA-X]+)"},{token:["constant.numeric.integer.base-35.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-35.erlang"],regex:"(35)(#)([\\da-yA-Y]+)"},{token:["constant.numeric.integer.base-36.erlang","punctuation.separator.base-integer.erlang","constant.numeric.integer.base-36.erlang"],regex:"(36)(#)([\\da-zA-Z]+)"},{token:"invalid.illegal.integer.erlang",regex:"\\d+#[\\da-zA-Z]+"},{token:"constant.numeric.integer.decimal.erlang",regex:"\\d+"}]}],"#parenthesized-expression":[{token:"punctuation.section.expression.begin.erlang",regex:"\\(",push:[{token:"punctuation.section.expression.end.erlang",regex:"\\)",next:"pop"},{include:"#everything-else"},{defaultToken:"meta.expression.parenthesized"}]}],"#record-directive":[{token:["meta.directive.record.erlang","punctuation.section.directive.begin.erlang","meta.directive.record.erlang","keyword.control.directive.import.erlang","meta.directive.record.erlang","punctuation.definition.parameters.begin.erlang","meta.directive.record.erlang","entity.name.type.class.record.definition.erlang","meta.directive.record.erlang","punctuation.separator.parameters.erlang"],regex:"^(\\s*)(-)(\\s*)(record)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(,)",push:[{token:["punctuation.definition.class.record.end.erlang","meta.directive.record.erlang","punctuation.definition.parameters.end.erlang","meta.directive.record.erlang","punctuation.section.directive.end.erlang"],regex:"(\\})(\\s*)(\\))(\\s*)(\\.)",next:"pop"},{include:"#internal-record-body"},{defaultToken:"meta.directive.record.erlang"}]}],"#record-usage":[{token:["keyword.operator.record.erlang","meta.record-usage.erlang","entity.name.type.class.record.erlang","meta.record-usage.erlang","punctuation.separator.record-field.erlang","meta.record-usage.erlang","variable.other.field.erlang"],regex:"(#)(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')(\\s*)(\\.)(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')"},{token:["keyword.operator.record.erlang","meta.record-usage.erlang","entity.name.type.class.record.erlang"],regex:"(#)(\\s*)([a-z][a-zA-Z\\d@_]*|'[^']*')",push:[{token:"punctuation.definition.class.record.end.erlang",regex:"\\}",next:"pop"},{include:"#internal-record-body"},{defaultToken:"meta.record-usage.erlang"}]}],"#string":[{token:"punctuation.definition.string.begin.erlang",regex:'"',push:[{token:"punctuation.definition.string.end.erlang",regex:'"',next:"pop"},{token:["punctuation.definition.escape.erlang","constant.character.escape.erlang","punctuation.definition.escape.erlang","constant.character.escape.erlang","constant.character.escape.erlang"],regex:"(\\\\)(?:([bdefnrstv\\\\'\"])|(\\^)([@-_])|([0-7]{1,3}))"},{token:"invalid.illegal.string.erlang",regex:"\\\\\\^?.?"},{token:["punctuation.definition.placeholder.erlang","punctuation.separator.placeholder-parts.erlang","constant.other.placeholder.erlang","punctuation.separator.placeholder-parts.erlang","punctuation.separator.placeholder-parts.erlang","constant.other.placeholder.erlang","punctuation.separator.placeholder-parts.erlang","punctuation.separator.placeholder-parts.erlang","punctuation.separator.placeholder-parts.erlang","constant.other.placeholder.erlang","constant.other.placeholder.erlang"],regex:"(~)(?:((?:\\-)?)(\\d+)|(\\*))?(?:(\\.)(?:(\\d+)|(\\*)))?(?:(\\.)(?:(\\*)|(.)))?([~cfegswpWPBX#bx\\+ni])"},{token:["punctuation.definition.placeholder.erlang","punctuation.separator.placeholder-parts.erlang","constant.other.placeholder.erlang","constant.other.placeholder.erlang"],regex:"(~)((?:\\*)?)((?:\\d+)?)([~du\\-#fsacl])"},{token:"invalid.illegal.string.erlang",regex:"~.?"},{defaultToken:"string.quoted.double.erlang"}]}],"#symbolic-operator":[{token:"keyword.operator.symbolic.erlang",regex:"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::"}],"#textual-operator":[{token:"keyword.operator.textual.erlang",regex:"\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"}],"#tuple":[{token:"punctuation.definition.tuple.begin.erlang",regex:"\\{",push:[{token:"punctuation.definition.tuple.end.erlang",regex:"\\}",next:"pop"},{token:"punctuation.separator.tuple.erlang",regex:","},{include:"#everything-else"},{defaultToken:"meta.structure.tuple.erlang"}]}],"#variable":[{token:["variable.other.erlang","variable.language.omitted.erlang"],regex:"(_[a-zA-Z\\d@_]+|[A-Z][a-zA-Z\\d@_]*)|(_)"}]},this.normalizeRules()};s.metaData={comment:"The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp",fileTypes:["erl","hrl"],keyEquivalent:"^~E",name:"Erlang",scopeName:"source.erlang"},r.inherits(s,i),t.ErlangHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/erlang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/erlang_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./erlang_highlight_rules").ErlangHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="%",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/erlang"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-forth.js b/js/ace/mode-forth.js
new file mode 100644
index 0000000..ef2a8ca
--- /dev/null
+++ b/js/ace/mode-forth.js
@@ -0,0 +1 @@
+ace.define("ace/mode/forth_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{include:"#forth"}],"#comment":[{token:"comment.line.double-dash.forth",regex:"(?:^|\\s)--\\s.*$",comment:"line comments for iForth"},{token:"comment.line.backslash.forth",regex:"(?:^|\\s)\\\\[\\s\\S]*$",comment:"ANSI line comment"},{token:"comment.line.backslash-g.forth",regex:"(?:^|\\s)\\\\[Gg] .*$",comment:"gForth line comment"},{token:"comment.block.forth",regex:"(?:^|\\s)\\(\\*(?=\\s|$)",push:[{token:"comment.block.forth",regex:"(?:^|\\s)\\*\\)(?=\\s|$)",next:"pop"},{defaultToken:"comment.block.forth"}],comment:"multiline comments for iForth"},{token:"comment.block.documentation.forth",regex:"\\bDOC\\b",caseInsensitive:!0,push:[{token:"comment.block.documentation.forth",regex:"\\bENDDOC\\b",caseInsensitive:!0,next:"pop"},{defaultToken:"comment.block.documentation.forth"}],comment:"documentation comments for iForth"},{token:"comment.line.parentheses.forth",regex:"(?:^|\\s)\\.?\\( [^)]*\\)",comment:"ANSI line comment"}],"#constant":[{token:"constant.language.forth",regex:"(?:^|\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\s|$)",caseInsensitive:!0},{token:"constant.numeric.forth",regex:"(?:^|\\s)[$#%]?[-+]?[0-9]+(?:\\.[0-9]*e-?[0-9]+|\\.?[0-9a-fA-F]*)(?=\\s|$)"},{token:"constant.character.forth",regex:"(?:^|\\s)(?:[&^]\\S|(?:\"|')\\S(?:\"|'))(?=\\s|$)"}],"#forth":[{include:"#constant"},{include:"#comment"},{include:"#string"},{include:"#word"},{include:"#variable"},{include:"#storage"},{include:"#word-def"}],"#storage":[{token:"storage.type.forth",regex:"(?:^|\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\s|$)",caseInsensitive:!0}],"#string":[{token:"string.quoted.double.forth",regex:'(ABORT" |BREAK" |\\." |C" |0"|S\\\\?" )([^"]+")',caseInsensitive:!0},{token:"string.unquoted.forth",regex:"(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\S+(?=\\s|$)",caseInsensitive:!0}],"#variable":[{token:"variable.language.forth",regex:"\\b(?:I|J)\\b",caseInsensitive:!0}],"#word":[{token:"keyword.control.immediate.forth",regex:"(?:^|\\s)\\[(?:\\?DO|\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\](?=\\s|$)",caseInsensitive:!0},{token:"keyword.other.immediate.forth",regex:"(?:^|\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT'S|])(?=\\s|$)",caseInsensitive:!0},{token:"keyword.control.compile-only.forth",regex:'(?:^|\\s)(?:-DO|\\-LOOP|\\?DO|\\?LEAVE|\\+DO|\\+LOOP|ABORT\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\-DO|U\\+DO|UNTIL|WHILE)(?=\\s|$)',caseInsensitive:!0},{token:"keyword.other.compile-only.forth",regex:"(?:^|\\s)(?:\\?DUP-0=-IF|\\?DUP-IF|\\)|\\[|\\['\\]|\\[CHAR\\]|\\[COMPILE\\]|\\[IS\\]|\\[TO\\]|<COMPILATION|<INTERPRETATION|ASSERT\\(|ASSERT0\\(|ASSERT1\\(|ASSERT2\\(|ASSERT3\\(|COMPILATION>|DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\s|$)",caseInsensitive:!0},{token:"keyword.other.non-immediate.forth",regex:"(?:^|\\s)(?:'|<IS>|<TO>|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\s|$)",caseInsensitive:!0},{token:"keyword.other.warning.forth",regex:'(?:^|\\s)(?:~~|BREAK:|BREAK"|DBG)(?=\\s|$)',caseInsensitive:!0}],"#word-def":[{token:["keyword.other.compile-only.forth","keyword.other.compile-only.forth","meta.block.forth","entity.name.function.forth"],regex:"(:NONAME)|(^:|\\s:)(\\s)(\\S+)(?=\\s|$)",caseInsensitive:!0,push:[{token:"keyword.other.compile-only.forth",regex:";(?:CODE)?",caseInsensitive:!0,next:"pop"},{include:"#constant"},{include:"#comment"},{include:"#string"},{include:"#word"},{include:"#variable"},{include:"#storage"},{defaultToken:"meta.block.forth"}]}]},this.normalizeRules()};s.metaData={fileTypes:["frt","fs","ldr"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~F",name:"Forth",scopeName:"source.forth"},r.inherits(s,i),t.ForthHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/forth",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/forth_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./forth_highlight_rules").ForthHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="--",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/forth"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-ftl.js b/js/ace/mode-ftl.js
new file mode 100644
index 0000000..b12a416
--- /dev/null
+++ b/js/ace/mode-ftl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/ftl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|upper_case|word_list|xhtml|xml",t="c|round|floor|ceiling",n="iso_[a-z_]+",r="first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk",i="keys|values",s="children|parent|root|ancestors|node_name|node_type|node_namespace",o="byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|eval|has_content|interpret|is_[a-z_]+|namespacenew",u=e+t+n+r+i+s+o,a="default|exists|if_exists|web_safe",f="data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|now|output_encoding|template_name|url_escaping_charset|vars|version",l="gt|gte|lt|lte|as|in|using",c="true|false",h="encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|attributes";this.$rules={start:[{token:"constant.character.entity",regex:/&[^;]+;/},{token:"support.function",regex:"\\?("+u+")"},{token:"support.function.deprecated",regex:"\\?("+a+")"},{token:"language.variable",regex:"\\.(?:"+f+")"},{token:"constant.language",regex:"\\b("+c+")\\b"},{token:"keyword.operator",regex:"\\b(?:"+l+")\\b"},{token:"entity.other.attribute-name",regex:h},{token:"string",regex:/['"]/,next:"qstring"},{token:function(e){return e.match("^[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?$")?"constant.numeric":"variable"},regex:/[\w.+\-]+/},{token:"keyword.operator",regex:"!|\\.|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qstring:[{token:"constant.character.escape",regex:'\\\\[nrtvef\\\\"$]'},{token:"string",regex:/['"]/,next:"start"},{defaultToken:"string"}]}};r.inherits(o,s);var u=function(){i.call(this);var e="assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|setting|stop|switch|t|visit",t=[{token:"comment",regex:"<#--",next:"ftl-dcomment"},{token:"string.interpolated",regex:"\\${",push:"ftl-start"},{token:"keyword.function",regex:"</?#("+e+")",push:"ftl-start"},{token:"keyword.other",regex:"</?@[a-zA-Z\\.]+",push:"ftl-start"}],n=[{token:"keyword",regex:"/?>",next:"pop"},{token:"string.interpolated",regex:"}",next:"pop"}];for(var r in this.$rules)this.$rules[r].unshift.apply(this.$rules[r],t);this.embedRules(o,"ftl-",n,["start"]),this.addRules({"ftl-dcomment":[{token:"comment",regex:".*?-->",next:"pop"},{token:"comment",regex:".+"}]}),this.normalizeRules()};r.inherits(u,i),t.FtlHighlightRules=u}),ace.define("ace/mode/ftl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ftl_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ftl_highlight_rules").FtlHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/ftl"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-gcode.js b/js/ace/mode-gcode.js
new file mode 100644
index 0000000..3ea31a1
--- /dev/null
+++ b/js/ace/mode-gcode.js
@@ -0,0 +1 @@
+ace.define("ace/mode/gcode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL",t="PI",n="ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"\\(.*\\)"},{token:"comment",regex:"([N])([0-9]+)"},{token:"string",regex:"([G])([0-9]+\\.?[0-9]?)"},{token:"string",regex:"([M])([0-9]+\\.?[0-9]?)"},{token:"constant.numeric",regex:"([-+]?([0-9]*\\.?[0-9]+\\.?))|(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"},{token:r,regex:"[A-Z]"},{token:"keyword.operator",regex:"EQ|LT|GT|NE|GE|LE|OR|XOR"},{token:"paren.lparen",regex:"[\\[]"},{token:"paren.rparen",regex:"[\\]]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.GcodeHighlightRules=s}),ace.define("ace/mode/gcode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gcode_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gcode_highlight_rules").GcodeHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.$id="ace/mode/gcode"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-gherkin.js b/js/ace/mode-gherkin.js
new file mode 100644
index 0000000..90a56f5
--- /dev/null
+++ b/js/ace/mode-gherkin.js
@@ -0,0 +1 @@
+ace.define("ace/mode/gherkin_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})",o=function(){this.$rules={start:[{token:"constant.numeric",regex:"(?:(?:[1-9]\\d*)|(?:0))"},{token:"comment",regex:"#.*$"},{token:"keyword",regex:"Feature:|Background:|Scenario:|Scenario Outline:|Examples:|Given|When|Then|And|But|\\*"},{token:"string",regex:'"{3}',next:"qqstring3"},{token:"string",regex:'"',next:"qqstring"},{token:"comment",regex:"@[A-Za-z0-9]+",next:"start"},{token:"comment",regex:"<.+>"},{token:"comment",regex:"\\| ",next:"table-item"},{token:"comment",regex:"\\|$",next:"start"}],qqstring3:[{token:"constant.language.escape",regex:s},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],"table-item":[{token:"string",regex:"[A-Za-z0-9 ]*",next:"start"}]}};r.inherits(o,i),t.GherkinHighlightRules=o}),ace.define("ace/mode/gherkin",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gherkin_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gherkin_highlight_rules").GherkinHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart="#",this.$id="ace/mode/gherkin",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i="  ",s=this.getTokenizer().getLineTokens(t,e),o=s.tokens;return console.log(e),t.match("[ ]*\\|")&&(r+="| "),o.length&&o[o.length-1].type=="comment"?r:(e=="start"&&(t.match("Scenario:|Feature:|Scenario Outline:|Background:")?r+=i:t.match("(Given|Then).+(:)$|Examples:")?r+=i:t.match("\\*.+")&&(r+="* ")),r)}}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-gitignore.js b/js/ace/mode-gitignore.js
new file mode 100644
index 0000000..b09cc2e
--- /dev/null
+++ b/js/ace/mode-gitignore.js
@@ -0,0 +1 @@
+ace.define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:/^\s*#.*$/},{token:"keyword",regex:/^\s*!.*$/}]},this.normalizeRules()};s.metaData={fileTypes:["gitignore"],name:"Gitignore"},r.inherits(s,i),t.GitignoreHighlightRules=s}),ace.define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gitignore_highlight_rules").GitignoreHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart="#",this.$id="ace/mode/gitignore"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-glsl.js b/js/ace/mode-glsl.js
new file mode 100644
index 0000000..f203e9f
--- /dev/null
+++ b/js/ace/mode-glsl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c_cpp_highlight_rules").c_cppHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/glsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/c_cpp_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./c_cpp_highlight_rules").c_cppHighlightRules,s=function(){var e="attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct",t="radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData",n=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t},"identifier");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token=="function"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s}),ace.define("ace/mode/glsl",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/glsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("./glsl_highlight_rules").glslHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.$id="ace/mode/glsl"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-golang.js b/js/ace/mode-golang.js
new file mode 100644
index 0000000..c2260b0
--- /dev/null
+++ b/js/ace/mode-golang.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var",t="string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error",n="make|close|new|panic|recover",r="nil|true|false|iota",s=this.createKeywordMapper({keyword:e,"constant.language":r,"support.function":n,"support.type":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[`](?:[^`]*)[`]"},{token:"string",merge:!0,regex:"[`](?:[^`]*)$",next:"bqstring"},{token:"constant.numeric",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:s,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^="},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],bqstring:[{token:"string",regex:"(?:[^`]*)`",next:"start"},{token:"string",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.GolangHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./golang_highlight_rules").GolangHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/golang"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-groovy.js b/js/ace/mode-groovy.js
new file mode 100644
index 0000000..ef0432f
--- /dev/null
+++ b/js/ace/mode-groovy.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/groovy_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"support.function":n,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'"""',next:"qqstring"},{token:"string",regex:"'''",next:"qstring"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:/\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:"constant.language.escape",regex:/\$[\w\d]+/},{token:"constant.language.escape",regex:/\$\{[^"\}]+\}?/},{token:"string",regex:'"{3,5}',next:"start"},{token:"string",regex:".+?"}],qstring:[{token:"constant.language.escape",regex:/\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:"string",regex:"'{3,5}",next:"start"},{token:"string",regex:".+?"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.GroovyHighlightRules=o}),ace.define("ace/mode/groovy",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/groovy_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./groovy_highlight_rules").GroovyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/groovy"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-haml.js b/js/ace/mode-haml.js
new file mode 100644
index 0000000..1952632
--- /dev/null
+++ b/js/ace/mode-haml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},o=t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},u=t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},a=t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},f=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},l=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},c=function(){var e="abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many",t="alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield",n="true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING",r="$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self",i=this.$keywords=this.createKeywordMapper({keyword:t,"constant.language":n,"variable.language":r,"support.function":e,"invalid.deprecated":"debugger"},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",regex:"^=begin(?:$|\\s.*$)",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},[{regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren.lparen";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.start",regex:/"/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/"/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/`/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/`/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/'/,push:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string.end",regex:/'/,next:"pop"},{defaultToken:"string"}]}],{token:"text",regex:"::"},{token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},s,f,l,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{stateName:"heredoc",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:"constant",value:i[1]},{type:"string",value:i[2]},{type:"support.class",value:i[3]},{type:"string",value:i[4]}]},regex:"(<<-?)(['\"`]?)([\\w]+)(['\"`]?)",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"string.character",regex:"\\B\\?."},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end(?:$|\\s.*$)",next:"start"},{token:"comment",regex:".+"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/haml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/ruby_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./ruby_highlight_rules"),o=s.RubyHighlightRules,u=function(){this.$rules={start:[{token:"punctuation.section.comment",regex:/^\s*\/.*/},{token:"punctuation.section.comment",regex:/^\s*#.*/},{token:"string.quoted.double",regex:"==.+?=="},{token:"keyword.other.doctype",regex:"^!!!\\s*(?:[a-zA-Z0-9-_]+)?"},s.qString,s.qqString,s.tString,{token:["entity.name.tag.haml"],regex:/^\s*%[\w:]+/,next:"tag_single"},{token:["meta.escape.haml"],regex:"^\\s*\\\\."},s.constantNumericHex,s.constantNumericFloat,s.constantOtherSymbol,{token:"text",regex:"=|-|~",next:"embedded_ruby"}],tag_single:[{token:"entity.other.attribute-name.class.haml",regex:"\\.[\\w-]+"},{token:"entity.other.attribute-name.id.haml",regex:"#[\\w-]+"},{token:"punctuation.section",regex:"\\{",next:"section"},s.constantOtherSymbol,{token:"text",regex:/\s/,next:"start"},{token:"empty",regex:"$|(?!\\.|#|\\{|\\[|=|-|~|\\/)",next:"start"}],section:[s.constantOtherSymbol,s.qString,s.qqString,s.tString,s.constantNumericHex,s.constantNumericFloat,{token:"punctuation.section",regex:"\\}",next:"start"}],embedded_ruby:[s.constantNumericHex,s.constantNumericFloat,{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},{token:(new o).getKeywords(),regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:["keyword","text","text"],regex:"(?:do|\\{)(?: \\|[^|]+\\|)?$",next:"start"},{token:["text"],regex:"^$",next:"start"},{token:["text"],regex:"^(?!.*\\|\\s*$)",next:"start"}]}};r.inherits(u,i),t.HamlHighlightRules=u}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/haml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haml_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./haml_highlight_rules").HamlHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=["//","#"],this.$id="ace/mode/haml"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-handlebars.js b/js/ace/mode-handlebars.js
new file mode 100644
index 0000000..77a5796
--- /dev/null
+++ b/js/ace/mode-handlebars.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/handlebars_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";function s(e,t){return t.splice(0,3),t.shift()||"start"}var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,o=function(){i.call(this);var e={regex:"(?={{)",push:"handlebars"};for(var t in this.$rules)this.$rules[t].unshift(e);this.$rules.handlebars=[{token:"comment.start",regex:"{{!--",push:[{token:"comment.end",regex:"--}}",next:s},{defaultToken:"comment"}]},{token:"comment.start",regex:"{{!",push:[{token:"comment.end",regex:"}}",next:s},{defaultToken:"comment"}]},{token:"support.function",regex:"{{{",push:[{token:"support.function",regex:"}}}",next:s},{token:"variable.parameter",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*"}]},{token:"storage.type.start",regex:"{{[#\\^/&]?",push:[{token:"storage.type.end",regex:"}}",next:s},{token:"variable.parameter",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*"}]}],this.normalizeRules()};r.inherits(o,i),t.HandlebarsHighlightRules=o}),ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour/xml").XmlBehaviour,s=function(){i.call(this)};r.inherits(s,i),t.HtmlBehaviour=s}),ace.define("ace/mode/handlebars",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/handlebars_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./handlebars_highlight_rules").HandlebarsHighlightRules,o=e("./behaviour/html").HtmlBehaviour,u=e("./folding/html").FoldMode,a=function(){i.call(this),this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.blockComment={start:"{!--",end:"--}"},this.$id="ace/mode/handlebars"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-haskell.js b/js/ace/mode-haskell.js
new file mode 100644
index 0000000..8df6237
--- /dev/null
+++ b/js/ace/mode-haskell.js
@@ -0,0 +1 @@
+ace.define("ace/mode/haskell_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["punctuation.definition.entity.haskell","keyword.operator.function.infix.haskell","punctuation.definition.entity.haskell"],regex:"(`)([a-zA-Z_']*?)(`)",comment:"In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10])."},{token:"constant.language.unit.haskell",regex:"\\(\\)"},{token:"constant.language.empty-list.haskell",regex:"\\[\\]"},{token:"keyword.other.haskell",regex:"\\bmodule\\b",push:[{token:"keyword.other.haskell",regex:"\\bwhere\\b",next:"pop"},{include:"#module_name"},{include:"#module_exports"},{token:"invalid",regex:"[a-z]+"},{defaultToken:"meta.declaration.module.haskell"}]},{token:"keyword.other.haskell",regex:"\\bclass\\b",push:[{token:"keyword.other.haskell",regex:"\\bwhere\\b",next:"pop"},{token:"support.class.prelude.haskell",regex:"\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\b"},{token:"entity.other.inherited-class.haskell",regex:"[A-Z][A-Za-z_']*"},{token:"variable.other.generic-type.haskell",regex:"\\b[a-z][a-zA-Z0-9_']*\\b"},{defaultToken:"meta.declaration.class.haskell"}]},{token:"keyword.other.haskell",regex:"\\binstance\\b",push:[{token:"keyword.other.haskell",regex:"\\bwhere\\b|$",next:"pop"},{include:"#type_signature"},{defaultToken:"meta.declaration.instance.haskell"}]},{token:"keyword.other.haskell",regex:"import",push:[{token:"meta.import.haskell",regex:"$|;",next:"pop"},{token:"keyword.other.haskell",regex:"qualified|as|hiding"},{include:"#module_name"},{include:"#module_exports"},{defaultToken:"meta.import.haskell"}]},{token:["keyword.other.haskell","meta.deriving.haskell"],regex:"(deriving)(\\s*\\()",push:[{token:"meta.deriving.haskell",regex:"\\)",next:"pop"},{token:"entity.other.inherited-class.haskell",regex:"\\b[A-Z][a-zA-Z_']*"},{defaultToken:"meta.deriving.haskell"}]},{token:"keyword.other.haskell",regex:"\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\b"},{token:"keyword.operator.haskell",regex:"\\binfix[lr]?\\b"},{token:"keyword.control.haskell",regex:"\\b(?:do|if|then|else)\\b"},{token:"constant.numeric.float.haskell",regex:"\\b(?:[0-9]+\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",comment:"Floats are always decimal"},{token:"constant.numeric.haskell",regex:"\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\b"},{token:["meta.preprocessor.c","punctuation.definition.preprocessor.c","meta.preprocessor.c"],regex:"^(\\s*)(#)(\\s*\\w+)",comment:'In addition to Haskell\'s "native" syntax, GHC permits the C preprocessor to be run on a source file.'},{include:"#pragma"},{token:"punctuation.definition.string.begin.haskell",regex:'"',push:[{token:"punctuation.definition.string.end.haskell",regex:'"',next:"pop"},{token:"constant.character.escape.haskell",regex:"\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])"},{token:"constant.character.escape.octal.haskell",regex:"\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+"},{token:"constant.character.escape.control.haskell",regex:"\\^[A-Z@\\[\\]\\\\\\^_]"},{defaultToken:"string.quoted.double.haskell"}]},{token:["punctuation.definition.string.begin.haskell","string.quoted.single.haskell","constant.character.escape.haskell","constant.character.escape.octal.haskell","constant.character.escape.hexadecimal.haskell","constant.character.escape.control.haskell","punctuation.definition.string.end.haskell"],regex:"(')(?:([\\ -\\[\\]-~])|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))(')"},{token:["meta.function.type-declaration.haskell","entity.name.function.haskell","meta.function.type-declaration.haskell","keyword.other.double-colon.haskell"],regex:"^(\\s*)([a-z_][a-zA-Z0-9_']*|\\([|!%$+\\-.,=</>]+\\))(\\s*)(::)",push:[{token:"meta.function.type-declaration.haskell",regex:"$",next:"pop"},{include:"#type_signature"},{defaultToken:"meta.function.type-declaration.haskell"}]},{token:"support.constant.haskell",regex:"\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\(\\)|\\[\\])\\b"},{token:"constant.other.haskell",regex:"\\b[A-Z]\\w*\\b"},{include:"#comments"},{token:"support.function.prelude.haskell",regex:"\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b"},{include:"#infix_op"},{token:"keyword.operator.haskell",regex:"[|!%$?~+:\\-.=</>\\\\]+",comment:"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*."},{token:"punctuation.separator.comma.haskell",regex:","}],"#block_comment":[{token:"punctuation.definition.comment.haskell",regex:"\\{-(?!#)",push:[{include:"#block_comment"},{token:"punctuation.definition.comment.haskell",regex:"-\\}",next:"pop"},{defaultToken:"comment.block.haskell"}]}],"#comments":[{token:"punctuation.definition.comment.haskell",regex:"--.*",push_:[{token:"comment.line.double-dash.haskell",regex:"$",next:"pop"},{defaultToken:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}],"#infix_op":[{token:"entity.name.function.infix.haskell",regex:"\\([|!%$+:\\-.=</>]+\\)|\\(,+\\)"}],"#module_exports":[{token:"meta.declaration.exports.haskell",regex:"\\(",push:[{token:"meta.declaration.exports.haskell",regex:"\\)",next:"pop"},{token:"entity.name.function.haskell",regex:"\\b[a-z][a-zA-Z_']*"},{token:"storage.type.haskell",regex:"\\b[A-Z][A-Za-z_']*"},{token:"punctuation.separator.comma.haskell",regex:","},{include:"#infix_op"},{token:"meta.other.unknown.haskell",regex:"\\(.*?\\)",comment:"So named because I don't know what to call this."},{defaultToken:"meta.declaration.exports.haskell"}]}],"#module_name":[{token:"support.other.module.haskell",regex:"[A-Z][A-Za-z._']*"}],"#pragma":[{token:"meta.preprocessor.haskell",regex:"\\{-#",push:[{token:"meta.preprocessor.haskell",regex:"#-\\}",next:"pop"},{token:"keyword.other.preprocessor.haskell",regex:"\\b(?:LANGUAGE|UNPACK|INLINE)\\b"},{defaultToken:"meta.preprocessor.haskell"}]}],"#type_signature":[{token:["meta.class-constraint.haskell","entity.other.inherited-class.haskell","meta.class-constraint.haskell","variable.other.generic-type.haskell","meta.class-constraint.haskell","keyword.other.big-arrow.haskell"],regex:"(\\(\\s*)([A-Z][A-Za-z]*)(\\s+)([a-z][A-Za-z_']*)(\\)\\s*)(=>)"},{include:"#pragma"},{token:"keyword.other.arrow.haskell",regex:"->"},{token:"keyword.other.big-arrow.haskell",regex:"=>"},{token:"support.type.prelude.haskell",regex:"\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\b"},{token:"variable.other.generic-type.haskell",regex:"\\b[a-z][a-zA-Z0-9_']*\\b"},{token:"storage.type.haskell",regex:"\\b[A-Z][a-zA-Z0-9_']*\\b"},{token:"support.constant.unit.haskell",regex:"\\(\\)"},{include:"#comments"}]},this.normalizeRules()};s.metaData={fileTypes:["hs"],keyEquivalent:"^~H",name:"Haskell",scopeName:"source.haskell"},r.inherits(s,i),t.HaskellHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/haskell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haskell_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./haskell_highlight_rules").HaskellHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="--",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/haskell"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-haxe.js b/js/ace/mode-haxe.js
new file mode 100644
index 0000000..c21dfa4
--- /dev/null
+++ b/js/ace/mode-haxe.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/haxe_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std",t="null|true|false",n=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:n,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.HaxeHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/haxe",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haxe_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./haxe_highlight_rules").HaxeHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/haxe"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-html.js b/js/ace/mode-html.js
new file mode 100644
index 0000000..c0b56bc
--- /dev/null
+++ b/js/ace/mode-html.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v})
\ No newline at end of file
diff --git a/js/ace/mode-html_ruby.js b/js/ace/mode-html_ruby.js
new file mode 100644
index 0000000..196e193
--- /dev/null
+++ b/js/ace/mode-html_ruby.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},o=t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},u=t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},a=t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},f=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},l=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},c=function(){var e="abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many",t="alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield",n="true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING",r="$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self",i=this.$keywords=this.createKeywordMapper({keyword:t,"constant.language":n,"variable.language":r,"support.function":e,"invalid.deprecated":"debugger"},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",regex:"^=begin(?:$|\\s.*$)",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},[{regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren.lparen";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.start",regex:/"/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/"/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/`/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/`/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/'/,push:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string.end",regex:/'/,next:"pop"},{defaultToken:"string"}]}],{token:"text",regex:"::"},{token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},s,f,l,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{stateName:"heredoc",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:"constant",value:i[1]},{type:"string",value:i[2]},{type:"support.class",value:i[3]},{type:"string",value:i[4]}]},regex:"(<<-?)(['\"`]?)([\\w]+)(['\"`]?)",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"string.character",regex:"\\B\\?."},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end(?:$|\\s.*$)",next:"start"},{token:"comment",regex:".+"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/html_ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/ruby_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./ruby_highlight_rules").RubyHighlightRules,o=function(){i.call(this);var e=[{regex:"<%%|%%>",token:"constant.language.escape"},{token:"comment.start.erb",regex:"<%#",push:[{token:"comment.end.erb",regex:"%>",next:"pop",defaultToken:"comment"}]},{token:"support.ruby_tag",regex:"<%+(?!>)[-=]?",push:"ruby-start"}],t=[{token:"support.ruby_tag",regex:"%>",next:"pop"},{token:"comment",regex:"#(?:[^%]|%[^>])*"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,"ruby-",t,["start"]),this.normalizeRules()};r.inherits(o,i),t.HtmlRubyHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ruby_highlight_rules").RubyHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/coffee").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/),u=t.match(/^\s*(class|def|module)\s.*$/),a=t.match(/.*do(\s*|\s+\|.*\|\s*)$/),f=t.match(/^\s*(if|else)\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id="ace/mode/ruby"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/html_ruby",["require","exports","module","ace/lib/oop","ace/mode/html_ruby_highlight_rules","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/ruby"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_ruby_highlight_rules").HtmlRubyHighlightRules,s=e("./html").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./ruby").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({"js-":o,"css-":u,"ruby-":a})};r.inherits(f,s),function(){this.$id="ace/mode/html_ruby"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-ini.js b/js/ace/mode-ini.js
new file mode 100644
index 0000000..54c2e92
--- /dev/null
+++ b/js/ace/mode-ini.js
@@ -0,0 +1 @@
+ace.define("ace/mode/ini_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s="\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})",o=function(){this.$rules={start:[{token:"punctuation.definition.comment.ini",regex:"#.*",push_:[{token:"comment.line.number-sign.ini",regex:"$|^",next:"pop"},{defaultToken:"comment.line.number-sign.ini"}]},{token:"punctuation.definition.comment.ini",regex:";.*",push_:[{token:"comment.line.semicolon.ini",regex:"$|^",next:"pop"},{defaultToken:"comment.line.semicolon.ini"}]},{token:["keyword.other.definition.ini","text","punctuation.separator.key-value.ini"],regex:"\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)"},{token:["punctuation.definition.entity.ini","constant.section.group-title.ini","punctuation.definition.entity.ini"],regex:"^(\\[)(.*?)(\\])"},{token:"punctuation.definition.string.begin.ini",regex:"'",push:[{token:"punctuation.definition.string.end.ini",regex:"'",next:"pop"},{token:"constant.language.escape",regex:s},{defaultToken:"string.quoted.single.ini"}]},{token:"punctuation.definition.string.begin.ini",regex:'"',push:[{token:"constant.language.escape",regex:s},{token:"punctuation.definition.string.end.ini",regex:'"',next:"pop"},{defaultToken:"string.quoted.double.ini"}]}]},this.normalizeRules()};o.metaData={fileTypes:["ini","conf"],keyEquivalent:"^~I",name:"Ini",scopeName:"source.ini"},r.inherits(o,i),t.IniHighlightRules=o}),ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\s*\[([^\])]*)]\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+".",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define("ace/mode/ini",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ini_highlight_rules","ace/mode/folding/ini"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ini_highlight_rules").IniHighlightRules,o=e("./folding/ini").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=";",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/ini"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-io.js b/js/ace/mode-io.js
new file mode 100644
index 0000000..f0b16ca
--- /dev/null
+++ b/js/ace/mode-io.js
@@ -0,0 +1 @@
+ace.define("ace/mode/io_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["text","meta.empty-parenthesis.io"],regex:"(\\()(\\))",comment:"we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob"},{token:["text","meta.comma-parenthesis.io"],regex:"(\\,)(\\))",comment:"We want to do the same for ,) -- Seckar; same as above -- Rob"},{token:"keyword.control.io",regex:"\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\b"},{token:"punctuation.definition.comment.io",regex:"/\\*",push:[{token:"punctuation.definition.comment.io",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.io"}]},{token:"punctuation.definition.comment.io",regex:"//",push:[{token:"comment.line.double-slash.io",regex:"$",next:"pop"},{defaultToken:"comment.line.double-slash.io"}]},{token:"punctuation.definition.comment.io",regex:"#",push:[{token:"comment.line.number-sign.io",regex:"$",next:"pop"},{defaultToken:"comment.line.number-sign.io"}]},{token:"variable.language.io",regex:"\\b(?:self|sender|target|proto|protos|parent)\\b",comment:"I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob"},{token:"keyword.operator.io",regex:"<=|>=|=|:=|\\*|\\||\\|\\||\\+|-|/|&|&&|>|<|\\?|@|@@|\\b(?:and|or)\\b"},{token:"constant.other.io",regex:"\\bGL[\\w_]+\\b"},{token:"support.class.io",regex:"\\b[A-Z](?:\\w+)?\\b"},{token:"support.function.io",regex:"\\b(?:clone|call|init|method|list|vector|block|\\w+(?=\\s*\\())\\b"},{token:"support.function.open-gl.io",regex:"\\bgl(?:u|ut)?[A-Z]\\w+\\b"},{token:"punctuation.definition.string.begin.io",regex:'"""',push:[{token:"punctuation.definition.string.end.io",regex:'"""',next:"pop"},{token:"constant.character.escape.io",regex:"\\\\."},{defaultToken:"string.quoted.triple.io"}]},{token:"punctuation.definition.string.begin.io",regex:'"',push:[{token:"punctuation.definition.string.end.io",regex:'"',next:"pop"},{token:"constant.character.escape.io",regex:"\\\\."},{defaultToken:"string.quoted.double.io"}]},{token:"constant.numeric.io",regex:"\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b"},{token:"variable.other.global.io",regex:"Lobby\\b"},{token:"constant.language.io",regex:"\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\b"}]},this.normalizeRules()};s.metaData={fileTypes:["io"],keyEquivalent:"^~I",name:"Io",scopeName:"source.io"},r.inherits(s,i),t.IoHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/io",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/io_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./io_highlight_rules").IoHighlightRules,u=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/io"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-jack.js b/js/ace/mode-jack.js
new file mode 100644
index 0000000..65e2fb7
--- /dev/null
+++ b/js/ace/mode-jack.js
@@ -0,0 +1 @@
+ace.define("ace/mode/jack_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"string",regex:'"',next:"string2"},{token:"string",regex:"'",next:"string1"},{token:"constant.numeric",regex:"-?0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"(?:0|[-+]?[1-9][0-9]*)\\b"},{token:"constant.binary",regex:"<[0-9A-Fa-f][0-9A-Fa-f](\\s+[0-9A-Fa-f][0-9A-Fa-f])*>"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"constant.language.null",regex:"null\\b"},{token:"storage.type",regex:"(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\b"},{token:"keyword",regex:"(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\b"},{token:"language.builtin",regex:"(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\?|i-any\\?|i-collect|i-zip|i-merge|i-each)\\b"},{token:"comment",regex:"--.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"storage.form",regex:"@[a-z]+"},{token:"constant.other.symbol",regex:":+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?"},{token:"variable",regex:"[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?"},{token:"keyword.operator",regex:"\\|\\||\\^\\^|&&|!=|==|<=|<|>=|>|\\+|-|\\*|\\/|\\^|\\%|\\#|\\!"},{token:"text",regex:"\\s+"}],string1:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['"\\\/bfnrt])/},{token:"string",regex:"[^'\\\\]+"},{token:"string",regex:"'",next:"start"},{token:"string",regex:"",next:"start"}],string2:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['"\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JackHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/jack",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jack_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./jack_highlight_rules").JackHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="--",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jack"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-jade.js b/js/ace/mode-jade.js
new file mode 100644
index 0000000..3de177e
--- /dev/null
+++ b/js/ace/mode-jade.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";function c(e,t){return{token:"support.function",regex:"^\\s*```"+e+"\\s*$",push:t+"start"}}var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./css_highlight_rules").CssHighlightRules,l=function(e){return"(?:[^"+i.escapeRegExp(e)+"\\\\]|\\\\.)*"},h=function(){a.call(this),this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s*[^ #]|\s+#.)/,next:"header"},c("(?:javascript|js)","jscode-"),c("xml","xmlcode-"),c("html","htmlcode-"),c("css","csscode-"),{token:"support.function",regex:"^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+l("]")+")(\\]s*\\[)("+l("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\[)("+l("]")+")(\\]\\()"+'((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)'+'(\\s*"'+l('"')+'"\\s*)?'+"(\\))"},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},{token:"support.function",regex:"^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:[{token:"support.function",regex:"^\\s*```",next:"start"},{token:"support.function",regex:".+"}]}),this.embedRules(o,"jscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(a,"htmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(f,"csscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(u,"xmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join("|"+e[i])).split("|"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute".split("|")),n=i.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),r=i.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare".split("|")),o=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),u="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:u+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:u},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":o.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable",regex:"[a-z_\\-$][a-z0-9_\\-$]*\\b"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join("|"+e[i])).split("|"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|hue|saturation|lightness|alpha|round|ceil|floor|percentage|color|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem".split("|")),n=i.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),r=i.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare|when|not|and".split("|")),o=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),u="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:u+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:u},{token:function(e){return s.hasOwnProperty(e)?"keyword":"variable"},regex:"@[a-z0-9_\\-@]*\\b"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":o.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(o,s),t.LessHighlightRules=o}),ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function s(){var e="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",t="this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes",n="true|false|null|undefined|NaN|Infinity",r="case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf",i="Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray",s="Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|",o="window|arguments|prototype|document",u=this.createKeywordMapper({keyword:t,"constant.language":n,"invalid.illegal":r,"language.support.class":i,"language.support.function":s,"variable.language":o},"identifier"),a={token:["paren.lparen","variable.parameter","paren.rparen","text","storage.type"],regex:/(?:(\()((?:"[^")]*?"|'[^')]*?'|\/[^\/)]*?\/|[^()\"'\/])*?)(\))(\s*))?([\-=]>)/.source},f=/\\(?: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={start:[{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{stateName:"qdoc",token:"string",regex:"'''",next:[{token:"string",regex:"'''",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qqdoc",token:"string",regex:'"""',next:[{token:"string",regex:'"""',next:"start"},{token:"paren.string",regex:"#{",push:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qstring",token:"string",regex:"'",next:[{token:"string",regex:"'",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"qqstring",token:"string.start",regex:'"',next:[{token:"string.end",regex:'"',next:"start"},{token:"paren.string",regex:"#{",push:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{stateName:"js",token:"string",regex:"`",next:[{token:"string",regex:"`",next:"start"},{token:"constant.language.escape",regex:f},{defaultToken:"string"}]},{regex:"[{}]",onMatch:function(e,t,n){this.next="";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift()||"";if(this.next.indexOf("string")!=-1)return"paren.string"}return"paren"}},{token:"string.regex",regex:"///",next:"heregex"},{token:"string.regex",regex:/(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/},{token:"comment",regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:["punctuation.operator","text","identifier"],regex:"(\\.)(\\s*)("+r+")"},{token:"punctuation.operator",regex:"\\."},{token:["keyword","text","language.support.class","text","keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")(?:(\\s+)(extends)(\\s+)("+e+"))?"},{token:["entity.name.function","text","keyword.operator","text"].concat(a.token),regex:"("+e+")(\\s*)([=:])(\\s*)"+a.regex},a,{token:"variable",regex:"@(?:"+e+")?"},{token:u,regex:e},{token:"punctuation.operator",regex:"\\,|\\."},{token:"storage.type",regex:"[\\-=]>"},{token:"keyword.operator",regex:"(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])"},{token:"paren.lparen",regex:"[({[]"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"}],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],comment:[{token:"comment",regex:"###",next:"start"},{defaultToken:"comment"}]},this.normalizeRules()}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define("ace/mode/jade_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/markdown_highlight_rules","ace/mode/scss_highlight_rules","ace/mode/less_highlight_rules","ace/mode/coffee_highlight_rules","ace/mode/javascript_highlight_rules"],function(e,t,n){"use strict";function l(e,t){return{token:"entity.name.function.jade",regex:"^\\s*\\:"+e,next:t+"start"}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./markdown_highlight_rules").MarkdownHighlightRules,o=e("./scss_highlight_rules").ScssHighlightRules,u=e("./less_highlight_rules").LessHighlightRules,a=e("./coffee_highlight_rules").CoffeeHighlightRules,f=e("./javascript_highlight_rules").JavaScriptHighlightRules,c=function(){var e="\\\\(?: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={start:[{token:"keyword.control.import.include.jade",regex:"\\s*\\binclude\\b"},{token:"keyword.other.doctype.jade",regex:"^!!!\\s*(?:[a-zA-Z0-9-_]+)?"},{token:"punctuation.section.comment",regex:"^\\s*//(?:\\s*[^-\\s]|\\s+\\S)(?:.*$)"},{onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),"comment"},regex:/^\s*\/\//,next:"comment_block"},l("markdown","markdown-"),l("sass","sass-"),l("less","less-"),l("coffee","coffee-"),{token:["storage.type.function.jade","entity.name.function.jade","punctuation.definition.parameters.begin.jade","variable.parameter.function.jade","punctuation.definition.parameters.end.jade"],regex:"^(\\s*mixin)( [\\w\\-]+)(\\s*\\()(.*?)(\\))"},{token:["storage.type.function.jade","entity.name.function.jade"],regex:"^(\\s*mixin)( [\\w\\-]+)"},{token:"source.js.embedded.jade",regex:"^\\s*(?:-|=|!=)",next:"js-start"},{token:"string.interpolated.jade",regex:"[#!]\\{[^\\}]+\\}"},{token:"meta.tag.any.jade",regex:/^\s*(?!\w+\:)(?:[\w]+|(?=\.|#)])/,next:"tag_single"},{token:"suport.type.attribute.id.jade",regex:"#\\w+"},{token:"suport.type.attribute.class.jade",regex:"\\.\\w+"},{token:"punctuation",regex:"\\s*(?:\\()",next:"tag_attributes"}],comment_block:[{regex:/^\s*/,onMatch:function(e,t,n){return e.length<=n[1]?(n.shift(),n.shift(),this.next=n.shift(),"text"):(this.next="","comment")},next:"start"},{defaultToken:"comment"}],tag_single:[{token:"entity.other.attribute-name.class.jade",regex:"\\.[\\w-]+"},{token:"entity.other.attribute-name.id.jade",regex:"#[\\w-]+"},{token:["text","punctuation"],regex:"($)|((?!\\.|#|=|-))",next:"start"}],tag_attributes:[{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"entity.other.attribute-name.jade",regex:"\\b[a-zA-Z\\-:]+"},{token:["entity.other.attribute-name.jade","punctuation"],regex:"\\b([a-zA-Z:\\.-]+)(=)",next:"attribute_strings"},{token:"punctuation",regex:"\\)",next:"start"}],attribute_strings:[{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.language.escape",regex:e},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"tag_attributes"}],qstring:[{token:"constant.language.escape",regex:e},{token:"string",regex:"[^'\\\\]+"},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"tag_attributes"}]},this.embedRules(f,"js-",[{token:"text",regex:".$",next:"start"}])};r.inherits(c,i),t.JadeHighlightRules=c}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/jade",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jade_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./jade_highlight_rules").JadeHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.$id="ace/mode/jade"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-java.js b/js/ace/mode-java.js
new file mode 100644
index 0000000..d0fe1e4
--- /dev/null
+++ b/js/ace/mode-java.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define("ace/mode/java",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/java_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./java_highlight_rules").JavaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/java"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-javascript.js b/js/ace/mode-javascript.js
new file mode 100644
index 0000000..3be1d81
--- /dev/null
+++ b/js/ace/mode-javascript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c})
\ No newline at end of file
diff --git a/js/ace/mode-json.js b/js/ace/mode-json.js
new file mode 100644
index 0000000..cb177cd
--- /dev/null
+++ b/js/ace/mode-json.js
@@ -0,0 +1 @@
+ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-jsoniq.js b/js/ace/mode-jsoniq.js
new file mode 100644
index 0000000..122d744
--- /dev/null
+++ b/js/ace/mode-jsoniq.js
@@ -0,0 +1 @@
+ace.define("ace/mode/xquery/jsoniq_lexer",["require","exports","module"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.JSONiqTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal("EQName",g);switch(y){case 80:f(80);break;case 94:f(94);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 143:f(143);break;case 150:f(150);break;case 163:f(163);break;case 183:f(183);break;case 189:f(189);break;case 214:f(214);break;case 224:f(224);break;case 225:f(225);break;case 241:f(241);break;case 242:f(242);break;case 251:f(251);break;default:u()}E.endNonterminal("EQName",g)}function u(){E.startNonterminal("FunctionName",g);switch(y){case 17:f(17);break;case 68:f(68);break;case 71:f(71);break;case 72:f(72);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 91:f(91);break;case 92:f(92);break;case 101:f(101);break;case 103:f(103);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 111:f(111);break;case 116:f(116);break;case 117:f(117);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 127:f(127);break;case 129:f(129);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 151:f(151);break;case 157:f(157);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 168:f(168);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 180:f(180);break;case 182:f(182);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 216:f(216);break;case 217:f(217);break;case 218:f(218);break;case 222:f(222);break;case 227:f(227);break;case 233:f(233);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 248:f(248);break;case 252:f(252);break;case 254:f(254);break;case 258:f(258);break;case 264:f(264);break;case 268:f(268);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 260:f(260);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal("FunctionName",g)}function a(){E.startNonterminal("NCName",g);switch(y){case 28:f(28);break;case 68:f(68);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 92:f(92);break;case 103:f(103);break;case 107:f(107);break;case 111:f(111);break;case 116:f(116);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 218:f(218);break;case 222:f(222);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 264:f(264);break;case 268:f(268);break;case 71:f(71);break;case 72:f(72);break;case 80:f(80);break;case 91:f(91);break;case 94:f(94);break;case 101:f(101);break;case 106:f(106);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 117:f(117);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 127:f(127);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 143:f(143);break;case 150:f(150);break;case 151:f(151);break;case 157:f(157);break;case 163:f(163);break;case 168:f(168);break;case 180:f(180);break;case 182:f(182);break;case 183:f(183);break;case 189:f(189);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 214:f(214);break;case 216:f(216);break;case 217:f(217);break;case 224:f(224);break;case 225:f(225);break;case 227:f(227);break;case 233:f(233);break;case 241:f(241);break;case 242:f(242);break;case 248:f(248);break;case 251:f(251);break;case 254:f(254);break;case 258:f(258);break;case 260:f(260);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal("NCName",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=30)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?"lexical analysis failed":"syntax error"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split("\n"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?"":", found "+n)+"\nwhile expecting "+(t.length==1?t[0]:"["+t.join(", ")+"]")+"\n"+(u==0||n!=null?"":"after successfully scanning "+u+" characters beginning ")+"at line "+s+", column "+o+":\n..."+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+"..."},this.parse_start=function(){E.startNonterminal("start",g),h(14);switch(y){case 58:f(58);break;case 57:f(57);break;case 59:f(59);break;case 43:f(43);break;case 45:f(45);break;case 44:f(44);break;case 37:f(37);break;case 41:f(41);break;case 277:f(277);break;case 274:f(274);break;case 42:f(42);break;case 46:f(46);break;case 52:f(52);break;case 65:f(65);break;case 66:f(66);break;case 49:f(49);break;case 51:f(51);break;case 56:f(56);break;case 54:f(54);break;case 36:f(36);break;case 276:f(276);break;case 40:f(40);break;case 5:f(5);break;case 4:f(4);break;case 6:f(6);break;case 15:f(15);break;case 16:f(16);break;case 18:f(18);break;case 19:f(19);break;case 20:f(20);break;case 8:f(8);break;case 9:f(9);break;case 7:f(7);break;case 35:f(35);break;default:o()}E.endNonterminal("start",g)},this.parse_StartTag=function(){E.startNonterminal("StartTag",g),h(8);switch(y){case 61:f(61);break;case 53:f(53);break;case 29:f(29);break;case 60:f(60);break;case 37:f(37);break;case 41:f(41);break;default:f(35)}E.endNonterminal("StartTag",g)},this.parse_TagContent=function(){E.startNonterminal("TagContent",g),p(11);switch(y){case 25:f(25);break;case 9:f(9);break;case 10:f(10);break;case 58:f(58);break;case 57:f(57);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;default:f(35)}E.endNonterminal("TagContent",g)},this.parse_AposAttr=function(){E.startNonterminal("AposAttr",g),p(10);switch(y){case 23:f(23);break;case 27:f(27);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 41:f(41);break;default:f(35)}E.endNonterminal("AposAttr",g)},this.parse_QuotAttr=function(){E.startNonterminal("QuotAttr",g),p(9);switch(y){case 22:f(22);break;case 26:f(26);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 37:f(37);break;default:f(35)}E.endNonterminal("QuotAttr",g)},this.parse_CData=function(){E.startNonterminal("CData",g),p(1);switch(y){case 14:f(14);break;case 67:f(67);break;default:f(35)}E.endNonterminal("CData",g)},this.parse_XMLComment=function(){E.startNonterminal("XMLComment",g),p(0);switch(y){case 12:f(12);break;case 50:f(50);break;default:f(35)}E.endNonterminal("XMLComment",g)},this.parse_PI=function(){E.startNonterminal("PI",g),p(3);switch(y){case 13:f(13);break;case 62:f(62);break;case 63:f(63);break;default:f(35)}E.endNonterminal("PI",g)},this.parse_Pragma=function(){E.startNonterminal("Pragma",g),p(2);switch(y){case 11:f(11);break;case 38:f(38);break;case 39:f(39);break;default:f(35)}E.endNonterminal("Pragma",g)},this.parse_Comment=function(){E.startNonterminal("Comment",g),p(4);switch(y){case 55:f(55);break;case 44:f(44);break;case 32:f(32);break;default:f(35)}E.endNonterminal("Comment",g)},this.parse_CommentDoc=function(){E.startNonterminal("CommentDoc",g),p(6);switch(y){case 33:f(33);break;case 34:f(34);break;case 55:f(55);break;case 44:f(44);break;default:f(35)}E.endNonterminal("CommentDoc",g)},this.parse_QuotString=function(){E.startNonterminal("QuotString",g),p(5);switch(y){case 3:f(3);break;case 2:f(2);break;case 1:f(1);break;case 37:f(37);break;default:f(35)}E.endNonterminal("QuotString",g)},this.parse_AposString=function(){E.startNonterminal("AposString",g),p(7);switch(y){case 21:f(21);break;case 31:f(31);break;case 23:f(23);break;case 24:f(24);break;case 41:f(41);break;default:f(35)}E.endNonterminal("AposString",g)},this.parse_Prefix=function(){E.startNonterminal("Prefix",g),h(13),l(),a(),E.endNonterminal("Prefix",g)},this.parse__EQName=function(){E.startNonterminal("_EQName",g),h(12),l(),o(),E.endNonterminal("_EQName",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<279;i+=32){var s=i,o=(i>>5)*2066+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,37,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37,37,37,37,37,37,37,37,37,37,37,37,31,31,37,37,37,37,37,37,37,66,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,37,31,37,31,31,37],r.INITIAL=[1,2,49155,57348,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,17408,19288,17439,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19074,36169,17439,36866,17466,36890,36866,22314,19105,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22182,19288,19121,36866,17466,18345,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19273,19552,19304,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19332,17423,19363,36866,17466,17537,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,18614,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19391,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19427,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36154,19288,19457,36866,17466,17740,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22780,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22375,22197,18469,36866,17466,36890,36866,21991,24018,22987,17556,17575,22288,17486,17509,17525,18373,21331,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,19485,19501,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19537,22390,19568,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19596,19611,19457,36866,17466,36890,36866,18246,19627,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22242,20553,19457,36866,17466,36890,36866,18648,30477,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36472,19288,19457,36866,17466,17809,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,21770,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19643,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19672,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20538,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,17975,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22345,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19726,19742,21529,24035,23112,26225,23511,27749,27397,24035,34360,24035,24036,23114,35166,23114,23114,19758,23511,35247,23511,23511,28447,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,19821,23511,23511,23511,23511,23512,19441,36539,24035,24035,24035,24035,19846,19869,23114,23114,23114,28618,32187,19892,23511,23511,23511,34585,20402,36647,24035,24035,24036,23114,33757,23114,23114,23029,20271,23511,27070,23511,23511,30562,24035,24035,29274,26576,23114,23114,31118,23036,29695,23511,23511,32431,23634,30821,24035,23110,19913,23114,23467,31261,23261,34299,19932,24035,32609,19965,35389,19984,27689,19830,29391,29337,20041,22643,35619,33728,20062,20121,20166,35100,26145,20211,23008,19876,20208,20227,25670,20132,26578,27685,20141,20243,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36094,19288,19457,36866,17466,21724,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22735,19552,20287,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22750,19288,21529,24035,23112,28056,23511,29483,28756,24035,24035,24035,24036,23114,23114,23114,23114,20327,23511,23511,23511,23511,31156,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,20371,23511,23511,23511,23511,27443,20395,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,29457,29700,23511,23511,23511,23511,33444,20402,24035,24035,24035,24036,23114,23114,23114,23114,28350,20421,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,20447,20475,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20523,22257,20569,20783,21715,17603,20699,20837,20614,20630,21149,20670,21405,17486,17509,17525,18373,19179,20695,20716,20732,20755,19194,18042,21641,20592,20779,20598,21412,17470,17591,20896,17468,17619,20799,20700,21031,20744,20699,20828,18075,21259,20581,20853,18048,20868,20884,17756,17784,17800,17825,17854,21171,21200,20931,20947,21378,20955,20971,18086,20645,21002,20986,18178,17960,18012,18381,18064,29176,21044,21438,21018,21122,21393,21060,21844,21094,20654,17493,18150,18166,18214,25967,20763,21799,21110,21830,21138,21246,21301,18336,18361,21165,21187,20812,21216,21232,21287,21317,18553,21347,21363,21428,21454,21271,21483,21499,21515,21575,21467,18712,21591,21633,21078,18189,18198,20679,21657,21701,21074,21687,21740,21756,21786,21815,21860,21876,21892,21946,21962,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36457,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,36813,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,21981,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,22151,22007,18884,17900,17922,17944,18178,17960,18012,18381,18064,27898,17884,18890,17906,17928,22042,25022,18130,36931,36963,17493,18150,18166,22070,22112,25026,18134,36935,18262,18278,18294,18320,18336,18361,22142,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36109,19288,18469,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22167,19288,19457,36866,17466,17768,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22227,36487,22273,36866,17466,36890,36866,19316,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18749,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,22304,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19580,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22330,19089,19457,36866,17466,18721,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22765,19347,19457,36866,17466,36890,36866,18114,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34541,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,22540,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29908,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22561,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,23837,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22584,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36442,19288,21605,24035,23112,28137,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,31568,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22690,19288,19457,36866,17466,36890,36866,21991,27584,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,22659,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22360,19552,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22675,22811,19457,36866,17466,36890,36866,19133,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22827,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36064,19288,22865,22881,32031,22897,22913,22956,29939,24035,24035,24035,23003,23114,23114,23114,23024,22420,23511,23511,23511,23052,29116,23073,29268,24035,25563,26915,23106,23131,23114,23114,23159,23181,23197,23248,23511,23511,23282,23305,22493,32364,24035,33472,30138,26325,31770,33508,27345,33667,23114,23321,23473,23351,35793,36576,23511,23375,22500,24145,24035,29197,20192,24533,23440,23114,19017,23459,22839,23489,23510,23511,33563,23528,32076,25389,24035,26576,23561,23583,23114,32683,22516,23622,23655,23511,23634,35456,37144,23110,23683,34153,20499,32513,25824,23705,24035,24035,23111,23114,19874,27078,33263,19830,24035,23112,19872,27741,23266,24036,23114,30243,20507,32241,20150,31862,27464,35108,23727,23007,35895,34953,26578,27685,20141,24569,31691,19787,33967,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36427,19552,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,27027,26576,23114,23114,23114,31471,23756,22468,23511,23511,23511,34687,23772,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,23788,24035,24035,24035,21559,23828,23114,23114,23114,25086,22839,23853,23511,23511,23511,23876,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,31761,23909,23953,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36049,19288,21605,30825,23112,23987,23511,24003,31001,27617,24034,24035,24036,24052,24089,23114,23114,22420,24109,24168,23511,23511,29116,24188,27609,20017,29516,24035,26576,24222,19968,23114,24252,33811,22468,24270,33587,23511,24320,27443,22493,24035,24035,24035,24035,24339,23113,23114,23114,23114,28128,28618,29700,23511,23511,23511,28276,34564,20402,24035,24035,32929,24036,23114,23114,23114,24357,23029,22839,23511,23511,23511,24377,25645,24035,34112,24035,26576,23114,26643,23114,32683,22516,23511,25638,23511,23711,24035,24395,27809,23114,24414,20499,24432,30917,23628,24035,30680,23111,23114,30233,27078,25748,24452,24035,23112,19872,27741,23266,24036,23114,24475,19829,26577,26597,26154,24519,24556,24596,23007,20046,20132,26578,24634,20141,24569,31691,24679,24727,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36412,19288,21605,19943,34861,32618,26027,29483,32016,32050,36233,24776,35574,24801,24819,32671,31289,22420,24868,24886,20087,26849,29116,19803,24035,24035,24035,36228,26576,23114,23114,23114,24981,33811,22468,23511,23511,23511,29028,27443,22493,24923,27965,24035,24035,32797,24946,23443,23114,23114,29636,24997,22849,28252,23511,23511,23511,25042,25110,24035,24035,34085,24036,25133,23114,23114,25152,23029,22839,25169,23511,36764,23511,25645,30403,24035,25186,26576,31806,24093,25212,32683,22516,32713,26245,34293,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,32406,23111,23114,28676,30944,27689,25234,24035,23112,19872,37063,23266,24036,23114,30243,20379,26100,29218,20211,30105,25257,25284,23007,20046,20132,26578,27685,20141,24569,24834,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36034,19288,21671,25314,25072,25330,25346,25362,29939,29951,35288,29984,23812,27216,25405,25424,30456,22584,26292,25461,25480,31592,29116,25516,34963,25545,27007,25579,33937,25614,25661,25686,34872,25702,25718,25734,25769,25795,25811,25840,22493,26533,25856,24035,25876,30763,27481,25909,23114,28987,25936,25954,29700,25983,23511,31412,26043,26063,22568,29241,29592,26116,31216,35383,26170,34783,26194,26221,22839,26241,26261,22477,26283,26308,27306,31035,24655,26576,29854,33386,26341,32683,22516,32153,30926,26361,19996,26381,35463,26397,26424,34646,26478,35605,31386,26494,35567,31964,22940,23689,25218,30309,32289,19830,33605,23112,32109,27733,27084,24496,35886,35221,26525,36602,26549,26558,26574,26594,26613,26629,26666,26700,26578,27685,23740,24285,31691,26733,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36397,19552,18991,25887,28117,32618,26776,29483,29939,26802,24035,24035,24036,28664,23114,23114,23114,22420,30297,23511,23511,23511,29116,19803,24035,24035,24035,25559,26576,23114,23114,23114,30525,33811,22468,23511,23511,23511,28725,27443,22493,24035,24035,27249,24035,24035,23113,23114,23114,26827,23114,28618,29700,23511,23511,26845,23511,34564,20402,24035,24035,26979,24036,23114,23114,23114,24974,23029,22839,23511,23511,23511,26865,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,33305,24035,25598,23114,19874,34253,27689,19830,24035,23112,19872,27741,23266,24036,23114,26886,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,26931,24569,26439,26947,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36019,19288,26995,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,27043,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,27061,23511,23511,23511,23511,23512,24694,24035,24035,29978,24035,24035,23113,23114,33114,23114,23114,30010,29700,23511,35913,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,27155,26576,23114,23114,30447,23036,29695,23511,23511,30935,20099,24152,25529,27100,34461,27121,22625,29156,26009,27137,30422,31903,31655,28870,27171,32439,31731,19830,27232,22612,27265,26786,25494,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,20342,27288,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,27322,27339,28020,27361,27382,29939,24035,24035,32581,24036,23114,23114,23114,27425,22420,23511,23511,23511,27442,28306,19803,24035,24035,24035,24035,26710,23114,23114,23114,23114,32261,22468,23511,23511,23511,23511,35719,24694,29510,24035,24035,24035,24035,26717,23114,23114,23114,23114,28618,32217,23511,23511,23511,23511,34585,20402,24035,24035,24035,27459,23114,23114,23114,36252,23029,20271,23511,23511,23511,28840,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,27480,34483,28401,29761,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36382,19288,21605,27497,27517,28504,28898,27569,29939,29401,27600,27323,27633,19025,27662,23114,27705,22420,20483,27721,23511,27765,28306,19803,23540,24035,24610,27781,27805,26650,23114,28573,32990,25920,22468,26870,23511,26684,34262,34737,25057,34622,24035,24035,23971,24206,27825,27847,23114,23114,27865,27885,35766,27914,23511,23511,32766,32844,27934,28795,26909,27955,26092,27988,25445,28005,28036,28052,21965,23511,32196,19897,28072,28102,36534,21541,23801,28153,28180,28197,28221,23036,32695,28251,28268,28292,23667,34825,23930,24580,28322,28344,31627,28366,25996,23628,24035,24035,23111,23114,19874,27078,27689,35625,33477,33359,27674,28393,33992,24036,23114,30243,19829,28417,28433,28463,23008,19876,20208,23007,20046,20132,28489,28520,20141,24569,31691,19787,28550,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,28589,24035,24035,24035,24035,28608,23114,23114,23114,23114,28618,20431,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36004,19288,28634,31951,28565,28702,28718,28741,32544,20175,28792,32086,20105,28811,29059,29862,28856,22420,28886,30354,23359,28922,28306,28952,23888,26320,36506,24035,29331,28968,36609,23114,29003,31661,27061,30649,27366,23511,29023,27918,24694,24035,24035,23893,33094,30867,23113,23114,23114,29044,34184,30010,29700,23511,23511,29081,29102,34585,20402,27789,24035,24035,24036,23114,29132,23114,23114,23029,20271,23511,29153,23511,23511,30562,30174,24035,24035,27409,25438,23114,23114,29172,36668,31332,23511,23511,29192,30144,24035,23110,30203,23114,23467,31544,23261,23628,24035,22545,23111,23114,29213,27078,27689,29234,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,29257,23008,19876,20208,28768,29290,29320,34776,29353,20141,22435,29378,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36367,19288,21605,34616,19006,32618,31497,31507,36216,20184,24035,34393,29424,34668,23114,34900,29447,22420,30360,23511,37089,29473,28306,19803,29499,24398,24035,24035,26576,31799,29532,29550,23114,33811,22468,32298,29571,31184,23511,23512,37127,36628,29589,24035,24135,24035,23113,29608,23114,27831,29634,28618,29652,30037,23511,24172,29671,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,29555,29690,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,29719,24035,23110,29738,23114,23467,34035,29756,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,29777,34364,28181,30243,29799,31920,27272,27185,23008,31126,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29828,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35989,19552,19687,35139,28649,29878,29894,29924,29939,23224,23085,31969,24036,35173,24752,24803,23114,22420,31190,30318,24870,23511,28306,29967,23967,24035,24035,24035,26576,3e4,23114,23114,23114,33811,22468,30026,23511,23511,23511,23512,26078,24035,24035,24035,30053,37137,30071,23114,23114,33368,25136,28618,30723,23511,23511,37096,31356,34585,20402,30092,30127,30160,24036,35740,30219,24960,30259,23029,20271,34042,30285,30342,30376,23289,30055,30400,30419,30438,32640,33532,33514,30472,18792,26267,24323,23057,30493,23639,20008,30196,33188,30517,20075,23511,30541,23628,30578,33928,28776,30594,19874,30610,30637,19830,30677,27646,19872,25779,23266,23232,35016,30243,30696,29812,30712,30746,27206,30779,30807,23007,33395,20132,26578,27685,31703,22928,31691,19787,31079,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36352,19288,23335,30841,26131,30888,30904,30986,29939,24035,24704,31017,20025,23114,26178,31051,31095,22420,23511,22524,31142,31172,28534,31206,35497,25196,24035,28592,24503,23114,31239,31285,23114,31305,31321,31355,31372,31407,23511,30556,24694,24035,27501,19805,24035,24035,23113,23114,31428,24066,23114,28618,29700,23511,31837,18809,23511,34585,31448,24035,24035,24035,23090,23114,23114,23114,23114,31619,35038,23511,23511,23511,23511,33714,24035,33085,24035,29431,23114,31467,23114,23143,31487,23511,31523,23511,35195,36783,24035,30111,23567,23114,23467,31543,31560,23628,24035,24035,23111,23114,19874,30953,31584,34508,24035,31608,26345,37055,23266,31643,31677,31719,31747,31786,31822,26898,23008,19876,31859,23007,20046,20132,26578,27685,20141,24569,31691,31878,31936,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35974,19288,21605,27972,35663,31985,29655,32001,36715,24785,25893,23545,31912,19853,19916,25938,24540,22420,31843,29674,29573,32735,28936,19803,24035,24035,32047,24035,26576,23114,23114,27544,23114,33811,22468,23511,23511,32161,23511,23512,32066,24035,33313,24035,24035,24035,23113,27426,32102,23114,23114,28618,32125,23511,32144,23511,23511,33569,20402,24035,27045,24035,24036,23114,23114,28328,23114,30076,32177,23511,23511,30384,23511,30562,24035,24035,24035,26576,23114,23114,23114,23595,32212,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,22635,25753,32233,32257,32277,19829,26577,26597,20211,23008,19876,32322,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,32352,35285,32380,34196,33016,30661,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,32404,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,32422,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,30269,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,19949,24035,23111,32455,19874,31269,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36337,19552,19209,21617,26509,32475,32491,32529,29939,24035,32578,25241,32597,23114,32634,29007,32656,22420,23511,32729,26365,32751,28306,32788,32882,24035,24035,32813,36727,23114,33182,23114,27553,33235,32829,23511,32706,23511,28906,28377,26962,32881,32904,32898,32920,24035,32953,23114,32977,26408,23114,28164,33006,23511,33039,35774,23511,32306,20402,33076,30872,24035,24036,25408,33110,28979,23114,23029,20271,35835,33130,33054,23511,30562,33148,24035,24035,33167,23114,23114,33775,23036,20459,23511,23511,25464,24646,24035,24035,22446,23114,23114,25627,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,31391,33204,33220,33251,33287,26577,26597,20211,33329,19876,33345,23007,20046,20132,26578,27685,28473,22599,31691,33411,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35959,19288,21907,27243,29843,32618,33427,31507,29939,33460,34090,24035,24036,33493,24416,33530,23114,22420,33548,24379,33585,23511,28306,19803,33603,24202,24035,24035,25593,33749,28205,23114,23114,32388,22468,33853,33060,23511,23511,31339,33621,24035,24035,34397,24618,30757,33663,23114,23114,33683,35684,28618,26678,23511,23511,32506,33699,34585,20402,24035,32562,26973,24036,23114,23114,33377,33773,23029,20271,23511,23511,30621,23511,23860,24035,33791,21553,26576,36558,23114,33809,23036,32857,26047,23511,33827,23634,24035,24035,23110,23114,23114,31252,23511,33845,23628,24035,24459,23111,23114,33869,27078,30791,29783,24035,24742,19872,33895,23266,26462,19710,33879,33919,26577,26597,24123,24930,21930,20208,30501,33953,25268,20252,33983,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36322,19552,23390,33634,35154,34008,34024,34058,35544,34106,34128,26811,33151,34144,34169,34212,23114,34228,34244,34278,34315,23511,34331,34347,34380,34413,24035,24663,26576,34429,34453,34477,29534,33811,22468,34499,34524,34557,25170,34580,35436,23937,34601,24035,24341,26453,23113,34638,34662,23114,24236,28618,34684,34703,34729,23511,35352,34753,34799,24035,34815,32558,34848,34888,35814,34923,23165,29137,23606,30326,30730,34939,33023,30562,36848,34979,24035,24847,34996,23114,23114,35032,29695,35054,23511,23511,35091,33296,35124,24296,28235,24361,36276,32772,35067,35189,27301,30855,24852,22452,35211,35237,35316,25500,35270,23405,24304,35304,29362,24036,23114,35332,19829,26577,26597,20211,23008,19876,20208,35368,28823,23920,32336,35405,20141,24569,31691,35421,35479,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35944,22795,21605,33647,35877,35513,30962,35529,34073,35557,24035,24035,20405,31107,23114,23114,23114,35590,34713,23511,23511,23511,35641,19803,29408,32937,25298,24035,35657,23115,27849,24760,35679,26205,22468,23511,35700,24907,24901,35075,31893,34980,24035,24035,24035,24035,23113,35009,23114,23114,23114,28618,35716,30970,23511,23511,23511,34585,23215,24035,24035,24035,24036,35735,23114,23114,23114,27105,35756,35790,23511,23511,23511,35254,35446,24035,24035,31223,35809,23114,23114,23036,36825,35830,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,31031,20355,19872,33903,23266,24036,23114,28686,19829,26577,26597,20211,23008,23424,20208,24711,31065,24486,26578,27685,20141,19773,35851,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36307,19288,21605,35494,19702,32618,33437,31507,29939,25117,24035,27939,24036,27869,23114,26829,23114,22420,23494,23511,33132,23511,28306,19803,24035,34832,24035,24035,26576,23114,25153,23114,23114,33811,22468,23511,23511,35911,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35929,19288,21605,25860,23112,36185,23511,36201,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,26748,24035,24035,24035,24035,24035,36249,23114,23114,23114,23114,28618,28835,23511,23511,23511,23511,34585,20402,24035,27151,24035,26760,23114,27989,23114,23114,36268,20271,23511,24436,23511,29703,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36292,19288,21605,36503,21922,32618,34534,31507,36522,24035,33793,24035,35864,23114,23114,36555,23417,22420,23511,23511,36574,26020,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,36592,24035,24035,36625,24035,24035,23113,23114,32961,23114,23114,29618,29700,23511,29086,23511,23511,34585,20402,36644,24035,24035,24036,29740,23114,23114,23114,29065,36663,31527,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,31451,23112,36684,23511,36700,29939,24035,24035,24035,30185,23114,23114,23114,27526,22420,23511,23511,23511,32865,28306,19803,36743,24035,27017,24035,26576,27535,23114,31432,23114,33811,22468,33271,23511,32128,23511,23512,24694,24035,27196,24035,24035,24035,23113,32459,23114,23114,23114,28618,29700,33829,36762,23511,23511,34585,20402,24035,36746,24035,29722,23114,23114,34437,23114,34907,20271,23511,23511,18801,23511,23206,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,36837,24035,24035,33739,23114,23114,25094,23511,23261,23628,24035,36780,23111,24073,19874,27078,35344,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22720,19288,36799,36866,17466,36890,36864,21991,22211,22987,17556,17575,22288,17486,17509,17525,18373,17631,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22705,19288,19457,36866,17466,36890,36866,19375,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36124,19288,36951,36866,17466,36890,36866,21991,22404,22987,17556,17575,22288,17486,17509,17525,18373,18567,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36979,36995,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18027,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,21529,24035,23112,23033,23511,31507,25377,24035,24035,24035,24036,23114,23114,23114,23114,37040,23511,23511,23511,23511,28086,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,37079,23511,23511,23511,23511,23512,34766,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,37112,37160,18469,36866,17466,36890,36866,17656,37174,22987,17556,17575,22288,17486,17509,17525,18373,18537,22984,17553,17572,22285,18780,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,53264,18,49172,57366,24,8192,28,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,0,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,127011,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,3002368,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2576384,2215936,2215936,2215936,2416640,2424832,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2543616,2215936,2215936,2215936,2215936,2215936,2629632,2215936,2617344,2215936,2215936,2215936,2215936,2215936,2215936,2691072,2215936,2707456,2215936,2715648,2215936,2723840,2764800,2215936,2215936,2797568,2215936,2822144,2215936,2215936,2854912,2215936,2215936,2215936,2912256,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,180224,0,0,2174976,0,0,2170880,2617344,2170880,2170880,2170880,2170880,2170880,2170880,2691072,2170880,2707456,2170880,2715648,2170880,2723840,2764800,2170880,2170880,2797568,2170880,2170880,2797568,2170880,2822144,2170880,2170880,2854912,2170880,2170880,2170880,2912256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2609152,2215936,2215936,2215936,2215936,2215936,2215936,2654208,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,184599,280,0,2174976,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,544,0,546,0,0,2179072,0,0,0,552,0,0,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2158592,2158592,2232320,2232320,0,2240512,2240512,0,0,0,644,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2711552,2170880,2170880,2170880,2170880,2170880,2760704,2768896,2789376,2813952,2170880,2170880,2170880,2875392,2904064,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,167936,0,0,0,0,2174976,0,0,2215936,2215936,2514944,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2592768,2215936,2215936,2215936,2215936,2215936,2215936,2215936,32768,0,0,0,0,0,2174976,32768,0,2633728,2215936,2215936,2215936,2215936,2215936,2215936,2711552,2215936,2215936,2215936,2215936,2215936,2760704,2768896,2789376,2813952,2215936,2215936,2215936,2875392,2904064,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,65819,2215936,2215936,3031040,2215936,3055616,2215936,2215936,2215936,2215936,3092480,2215936,2215936,3125248,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2170880,2170880,2494464,2170880,2170880,0,0,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2641920,2170880,2170880,2170880,2699264,2170880,2727936,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3026944,2170880,2170880,3063808,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,2379776,2215936,2523136,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2596864,2215936,2621440,2215936,2215936,2641920,2215936,2215936,0,0,0,0,0,0,2179072,548,0,0,0,0,287,2170880,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2215936,2215936,2699264,2215936,2727936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2879488,2215936,2916352,2215936,2215936,0,0,0,0,188416,0,2179072,0,0,0,0,0,287,2170880,0,2171019,2171019,2171019,2400395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3031179,2171019,3055755,2171019,2171019,2215936,3133440,2215936,2215936,2215936,3162112,2215936,2215936,3182592,3186688,2215936,0,0,0,0,0,0,0,0,0,0,2171019,2171019,2171019,2171019,2171019,2171019,2523275,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2597003,2171019,2621579,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,4337664,28,2170880,2170880,2170880,2629632,2170880,2170880,2170880,2170880,2719744,2744320,2170880,2170880,2170880,2834432,2838528,2170880,2908160,2170880,2170880,2936832,2215936,2215936,2215936,2215936,2719744,2744320,2215936,2215936,2215936,2834432,2838528,2215936,2908160,2215936,2215936,2936832,2215936,2215936,2985984,2215936,2994176,2215936,2215936,3014656,2215936,3059712,3076096,3088384,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2445312,2215936,2465792,2473984,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171019,2171019,2494603,2171019,2171019,2215936,2215936,2215936,3215360,0,0,0,0,0,0,0,0,0,0,0,0,0,2379776,2170880,2170880,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3016168,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,124,124,0,128,128,2170880,2170880,2170880,3215360,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2535424,2539520,2170880,2170880,2588672,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,0,2387968,2392064,2170880,2170880,2433024,2170880,2170880,2170880,3170304,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,2215936,2215936,2215936,2535424,2539520,2215936,2215936,2588672,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,136,0,2215936,2215936,2920448,2215936,2215936,2215936,2990080,2215936,2215936,2215936,2215936,3051520,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3108864,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3026944,2215936,2215936,3063808,2215936,2215936,3112960,2215936,2215936,2215936,3170304,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2537049,2539520,2170880,2170880,2588672,2170880,2170880,2170880,1508,2170880,2170880,2170880,1512,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2686976,2748416,2170880,2170880,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3121152,2170880,2170880,3145728,3158016,3166208,2170880,2420736,2428928,2170880,2478080,2170880,2170880,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2646016,2670592,0,0,3145728,3158016,3166208,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,0,2170880,2215936,2215936,2580480,2215936,2605056,2637824,2215936,2215936,2686976,2748416,2215936,2215936,2215936,2924544,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,286,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2387968,2392064,2170880,2170880,2433024,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,1625,2170880,2170880,2580480,2170880,2605056,2637824,2170880,647,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2686976,0,0,2748416,2170880,2170880,0,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,0,0,28,28,2170880,3141632,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2170880,2420736,2428928,2752512,2756608,0,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2170880,3141632,2170880,2170880,2490368,2215936,2490368,2215936,2215936,2215936,2547712,2555904,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,245760,0,3129344,2170880,2170880,2490368,2170880,2170880,2170880,0,0,2547712,2555904,2170880,2170880,2170880,0,0,0,0,0,0,0,0,0,2220032,0,0,45056,0,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2158592,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1482,97,97,97,97,97,97,97,1354,97,97,97,97,97,97,97,97,1148,97,97,97,97,97,97,97,2584576,2170880,2170880,1512,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2170880,2850816,2170880,2170880,2170880,3022848,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,287,2170880,2215936,3022848,2170880,2441216,2170880,2527232,0,0,2170880,2600960,2170880,0,2850816,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2596864,2170880,2621440,2170880,2170880,2641920,2170880,2170880,2170880,3022848,2170880,2519040,2170880,2170880,2170880,2170880,2170880,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2170880,2170880,2170880,2514944,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2519040,0,2024,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,2024,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,2170880,2215936,2650112,2965504,2215936,0,0,2170880,2650112,2965504,2170880,2551808,2170880,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,141,45,45,67,67,67,67,67,224,67,67,238,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,0,2551808,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2977792,2977792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53264,18,49172,57366,24,8192,29,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,49172,0,0,0,24,24,24,0,28,28,28,28,102432,127,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,0,0,0,2220032,110630,0,0,0,114730,106539,136,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,4256099,4256099,24,24,0,28,28,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,0,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,2170880,2547712,2555904,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2215936,2215936,543,543,545,545,0,0,2179072,0,550,551,551,0,287,2171166,2171166,18,0,0,0,0,0,0,0,0,2220032,0,0,645,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,149,2584576,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2519040,0,0,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,0,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,53264,18,49172,57366,24,155648,28,102432,155648,155687,114730,106539,0,0,155648,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,0,0,2220032,0,94208,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,208896,18,278528,24,24,0,28,28,53264,18,159765,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,0,28,139394,28,28,102432,131,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,32768,53264,0,18,18,24,24,0,28,28,0,546,0,0,2183168,0,0,552,832,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2170880,2170880,2170880,2170880,2654208,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,1084,0,1088,0,1092,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,937,0,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,644,0,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,826,0,828,0,0,2183168,0,0,830,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2170880,2170880,2633728,2170880,2170880,2170880,2170880,2170880,2170880,2711552,2170880,2170880,2170880,2170880,2170880,2760704,53264,18,49172,57366,24,8192,28,172066,172032,110630,172066,106539,0,0,172032,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,102432,0,98304,0,0,2220032,110630,0,0,0,0,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,45056,0,0,0,53264,18,49172,57366,25,8192,30,102432,0,110630,114730,106539,0,0,176219,53264,18,18,49172,0,57366,0,124,124,124,0,128,128,128,128,102432,128,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,546,0,0,2183168,0,65536,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2646016,2670592,2752512,2756608,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,65536,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,143,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,67,1824,67,1826,67,67,67,67,17,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,120,121,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,67,67,37139,37139,24853,24853,0,0,2179072,548,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,45,45,2033,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,0,369,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,978,0,546,70179,0,2183168,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1013,67,67,67,67,67,67,67,67,67,67,473,67,67,67,67,483,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,97,97,1359,97,97,97,67,67,1584,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,1659,45,45,45,45,45,45,45,45,45,1667,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,45,1668,45,45,45,45,67,67,1694,67,67,67,67,67,67,67,67,67,67,67,67,67,774,67,67,1713,97,97,97,97,97,97,97,0,97,97,1723,97,97,97,97,0,45,45,45,45,45,45,1538,45,45,45,45,45,1559,45,45,1561,45,45,45,45,45,45,45,687,45,45,45,45,45,45,45,45,448,45,45,45,45,45,45,67,67,67,67,1771,1772,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,97,67,67,67,67,67,1821,67,67,67,67,67,67,1827,67,67,67,0,0,0,0,0,0,97,97,1614,97,97,97,97,97,603,97,97,605,97,97,608,97,97,97,97,0,1532,45,45,45,45,45,45,45,45,45,45,450,45,45,45,45,67,67,97,97,97,97,97,97,0,0,1839,97,97,97,97,0,0,97,97,97,97,97,45,45,45,45,45,45,45,67,67,67,67,67,67,67,97,1883,97,1885,97,0,1888,0,97,97,0,97,97,1848,97,97,97,97,1852,45,45,45,45,45,45,45,384,391,45,45,45,45,45,45,45,385,45,45,45,45,45,45,45,45,1237,45,45,45,45,45,45,67,0,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,1951,45,45,45,45,45,45,45,45,67,67,67,67,1963,97,2023,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,1994,67,1995,67,67,67,67,67,67,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,0,0,0,0,2220032,110630,0,0,0,114730,106539,137,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2793472,2805760,2170880,2830336,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,67,67,37139,37139,24853,24853,0,0,281,549,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,2031,2032,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1769,67,0,546,70179,549,549,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,1858,45,641,0,0,0,0,41606,926,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,456,67,0,0,0,1313,0,0,0,1096,1319,0,0,0,0,97,97,97,97,97,97,97,97,1110,97,97,97,97,67,67,67,67,1301,1476,0,0,0,0,1307,1478,0,0,0,0,0,0,0,0,97,97,97,97,1486,97,1487,97,1313,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,67,67,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,97,45,1853,45,1855,45,45,45,45,53264,18,49172,57366,26,8192,31,102432,0,110630,114730,106539,0,0,225368,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,18,49172,163840,57366,0,24,24,229376,0,28,28,28,229376,102432,0,0,0,0,2220167,110630,0,0,0,114730,106539,0,2171019,2171019,2171019,2171019,2592907,2171019,2171019,2171019,2171019,2633867,2171019,2171019,2171019,2171019,2171019,2171019,2654347,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3117195,2171019,2171019,2171019,2171019,2240641,0,0,0,0,0,0,0,0,368,0,140,2171019,2171019,2171019,2416779,2424971,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2617483,2171019,2171019,2642059,2171019,2171019,2171019,2699403,2171019,2728075,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3215499,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2171019,2822283,2171019,2171019,2855051,2171019,2171019,2171019,2912395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3002507,2171019,2171019,2215936,2215936,2494464,2215936,2215936,2215936,2171166,2171166,2416926,2425118,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2576670,2171166,2617630,2171166,2171166,2171166,2171166,2171166,2171166,2691358,2171166,2707742,2171166,2715934,2171166,2724126,2765086,2171166,2171166,2797854,2171166,2822430,2171166,2171166,2855198,2171166,2171166,2171166,2912542,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2793758,2806046,2171166,2830622,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3109150,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2543902,2171166,2171166,2171166,2171166,2171166,2629918,2793611,2805899,2171019,2830475,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,0,546,0,0,2183168,0,0,552,0,2171166,2171166,2171166,2400542,2171166,2171166,2171166,0,2171166,2171166,2171166,0,2171166,2920734,2171166,2171166,2171166,2990366,2171166,2171166,2171166,2171166,3117342,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,0,53264,0,18,18,4329472,2232445,0,2240641,4337664,2711691,2171019,2171019,2171019,2171019,2171019,2760843,2769035,2789515,2814091,2171019,2171019,2171019,2875531,2904203,2171019,2171019,3092619,2171019,2171019,3125387,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3199115,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2793472,2805760,2215936,2830336,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2494464,2170880,2170880,2171166,2171166,2634014,2171166,2171166,2171166,2171166,2171166,2171166,2711838,2171166,2171166,2171166,2171166,2171166,2760990,2769182,2789662,2814238,2171166,2171166,2171166,2875678,2904350,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3199262,2171166,0,0,0,0,0,0,0,0,0,2379915,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2445451,2171019,2465931,2474123,2171019,2171019,3113099,2171019,2171019,3133579,2171019,2171019,2171019,3162251,2171019,2171019,3182731,3186827,2171019,2379776,2879627,2171019,2916491,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3027083,2171019,2171019,3063947,2699550,2171166,2728222,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2879774,2171166,2916638,2171166,2171166,2171166,2171166,2171166,2609438,2171166,2171166,2171166,2171166,2171166,2171166,2654494,2171166,2171166,2171166,2171166,2171166,2445598,2171166,2466078,2474270,2171166,2171166,2171166,2171166,2171166,2171166,2523422,2171019,2437259,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2543755,2171019,2171019,2171019,2584715,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2908299,2171019,2171019,2936971,2171019,2171019,2986123,2171019,2994315,2171019,2171019,3014795,2171019,3059851,3076235,3088523,2171166,2171166,2986270,2171166,2994462,2171166,2171166,3014942,2171166,3059998,3076382,3088670,2171166,2171166,2171166,2171166,2171166,2171166,3027230,2171166,2171166,3064094,2171166,2171166,3113246,2171166,2171166,3133726,2506891,2171019,2171019,2171019,2535563,2539659,2171019,2171019,2588811,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2691211,2171019,2707595,2171019,2715787,2171019,2723979,2764939,2171019,2171019,2797707,2215936,2215936,3170304,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2453790,2457886,2171166,2171166,2171166,2486558,2171166,2171166,2507038,2171166,2171166,2171166,2535710,2539806,2171166,2171166,2588958,2171166,2171166,2171166,2171166,2515230,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2593054,2171166,2171166,2171166,2171166,3051806,2171166,2171166,2171166,2171166,2171166,2171166,3170590,0,2388107,2392203,2171019,2171019,2433163,2171019,2461835,2171019,2171019,2171019,2510987,2171019,2171019,2171019,2171019,2580619,2171019,2605195,2637963,2171019,2171019,2171019,2920587,2171019,2171019,2171019,2990219,2171019,2171019,2171019,2171019,3051659,2171019,2171019,2171019,2453643,2457739,2171019,2171019,2171019,2171019,2171019,2171019,2515083,2171019,2171019,2171019,2171019,2646155,2670731,2752651,2756747,2846859,2961547,2171019,2998411,2171019,3010699,2171019,2171019,2687115,2748555,2171019,2171019,2171019,2924683,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3121291,2171019,2171019,2171019,3170443,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,3145867,3158155,3166347,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,553,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2388254,2392350,2171166,2171166,2433310,2171166,2461982,2171166,2171166,2171166,2511134,2171166,2171166,0,2171166,2171166,2580766,2171166,2605342,2638110,2171166,2171166,2171166,2171166,3031326,2171166,3055902,2171166,2171166,2171166,2171166,3092766,2171166,2171166,3125534,2171166,2171166,2171166,3162398,2171166,2171166,3182878,3186974,2171166,0,0,0,2171019,2171019,2171019,2171019,3109003,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2171166,2687262,0,0,2748702,2171166,2171166,0,2171166,2924830,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2597150,2171166,2621726,2171166,2171166,2642206,2171166,2171166,2171166,2171166,3121438,2171166,2171166,3146014,3158302,3166494,2171019,2420875,2429067,2171019,2478219,2171019,2171019,2171019,2171019,2547851,2556043,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3129483,2215936,2171019,3141771,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2171166,2421022,2429214,2171166,2478366,2171166,2171166,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2646302,2670878,0,0,0,0,37,110630,0,0,0,114730,106539,0,45,45,45,45,45,1405,1406,45,45,45,45,1409,45,45,45,45,45,1415,45,45,45,45,45,45,45,45,45,45,1238,45,45,45,45,67,2752798,2756894,0,2847006,2961694,2171166,2998558,2171166,3010846,2171166,2171166,2171166,3141918,2171019,2171019,2490507,3129344,2171166,2171166,2490654,2171166,2171166,2171166,0,0,2547998,2556190,2171166,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,167,45,45,45,45,185,187,45,45,198,45,45,0,2171166,2171166,2171166,2171166,2171166,2171166,3129630,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2576523,2171019,2171019,2171019,2171019,2171019,2609291,2171019,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2171166,2171166,2494750,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,147,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,3002654,2171166,2171166,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2175257,0,0,2584862,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2171166,2171019,2441355,2171019,2527371,2171019,2601099,2171019,2850955,2171019,2171019,2171019,3022987,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,69632,287,2170880,2215936,3022848,2171166,2441502,2171166,2527518,0,0,2171166,2601246,2171166,0,2851102,2171166,2171166,2171166,2171166,2720030,2744606,2171166,2171166,2171166,2834718,2838814,2171166,2908446,2171166,2171166,2937118,3023134,2171019,2519179,2171019,2171019,2171019,2171019,2171019,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,3215646,0,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2486411,2171019,2171019,2171019,2629771,2171019,2171019,2171019,2171019,2719883,2744459,2171019,2171019,2171019,2834571,2838667,2171019,2519326,0,0,2171166,2171166,0,2171166,2171166,2171166,2396299,2171019,2171019,2171019,2171019,3018891,2396160,2215936,2215936,2215936,2215936,3018752,2396446,0,0,2171166,2171166,2171166,2171166,3019038,2171019,2650251,2965643,2171019,2215936,2650112,2965504,2215936,0,0,2171166,2650398,2965790,2171166,2551947,2171019,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,144,45,45,67,67,67,67,67,228,67,67,67,67,67,67,67,67,67,1929,97,97,97,97,0,0,0,2552094,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2977931,2977792,2978078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,1321,97,131072,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,28,28,0,140,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2584576,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,140,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3002368,2170880,2170880,2215936,2215936,2494464,2215936,2215936,2215936,2215936,2215936,2215936,3215360,544,0,0,0,544,0,546,0,0,0,546,0,0,2183168,0,0,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,0,2170880,2170880,2170880,0,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,552,0,0,0,552,0,287,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,644,0,2215936,2215936,3170304,544,0,546,0,552,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,140,0,0,53264,18,49172,57366,24,8192,28,102432,249856,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,151640,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640,53264,18,49172,57366,24,8192,28,102432,253952,110630,114730,106539,0,0,32856,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,192512,53264,18,18,49172,0,57366,0,2232445,184320,2232445,0,2240641,2240641,184320,2240641,102432,0,0,0,221184,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3108864,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,0,0,0,45056,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,127,127,53264,18,49172,258071,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,204800,53264,18,49172,57366,24,27,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,33,0,33,33,33,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,0,0,0,0,0,0,0,0,0,0,139,2170880,2170880,2170880,2416640,67,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,0,0,97,97,0,97,97,97,45,2030,45,45,45,45,67,1573,67,67,67,67,67,67,67,67,67,67,67,1699,67,67,67,67,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,97,97,97,1355,97,97,97,1358,97,97,97,641,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,45,1187,45,45,45,45,45,0,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,592,97,97,97,97,97,97,97,97,97,97,1531,45,45,45,45,45,45,45,45,45,45,45,45,1680,45,45,45,641,0,924,0,925,41606,0,0,0,0,45,45,45,45,45,45,1186,45,45,45,45,45,45,67,67,37139,37139,24853,24853,0,70179,282,0,0,65820,65820,369,287,97,0,0,97,97,0,97,2028,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1767,67,67,67,0,0,0,0,0,0,1612,97,97,97,97,97,97,0,1785,97,97,97,97,97,97,0,0,97,97,97,97,1790,97,0,0,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,241664,2387968,2392064,2170880,2170880,2433024,53264,19,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,274432,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,270336,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,1134711,53264,18,49172,57366,24,8192,28,102432,0,1126440,1126440,1126440,0,0,1126400,53264,18,49172,57366,24,8192,28,102432,36,110630,114730,106539,0,0,217088,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,94,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,96,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,24666,53264,18,18,49172,0,57366,0,24,24,24,126,28,28,28,28,102432,53264,122,123,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,2170880,2170880,4256099,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1319,0,0,0,0,97,97,97,97,97,97,97,1109,97,97,97,97,1113,132,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,146,150,45,45,45,45,45,175,45,180,45,186,45,189,45,45,203,67,256,67,67,270,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,293,297,97,97,97,97,97,322,97,327,97,333,97,0,0,97,2026,0,2027,97,97,45,45,45,45,45,45,67,67,67,1685,67,67,67,67,67,67,67,1690,67,336,97,97,350,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,2424832,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2617344,2170880,45,439,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,525,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,97,622,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,1527,369,648,45,45,45,45,45,45,45,45,45,659,45,45,45,45,408,45,45,45,45,45,45,45,45,45,45,45,1239,45,45,45,67,729,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,762,67,746,67,67,67,67,67,67,67,67,67,759,67,67,67,67,0,0,0,1477,0,1086,0,0,0,1479,0,1090,67,67,796,67,67,799,67,67,67,67,67,67,67,67,67,67,67,67,1291,67,67,67,811,67,67,67,67,67,816,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,833,97,97,97,97,97,97,97,97,1380,0,0,0,45,45,45,45,45,1185,45,45,45,45,45,45,45,386,45,45,45,45,45,45,45,45,1810,45,45,45,45,45,45,67,97,97,844,97,97,97,97,97,97,97,97,97,857,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,45,45,97,97,97,894,97,97,897,97,97,97,97,97,97,97,97,97,0,0,0,1382,45,45,45,97,909,97,97,97,97,97,914,97,97,97,97,97,97,97,923,67,67,1079,67,67,67,67,67,37689,1085,25403,1089,66365,1093,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,148,1114,97,97,97,97,97,97,1122,97,97,97,97,97,97,97,97,97,606,97,97,97,97,97,97,97,97,97,97,1173,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,145,45,45,67,67,67,67,67,1762,67,67,67,1766,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,1934,67,67,1255,67,67,67,67,67,67,67,67,67,67,67,67,67,1035,67,67,67,67,67,67,1297,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,97,1327,97,97,97,97,97,97,97,97,97,97,97,97,33344,97,97,97,1335,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,97,97,1377,97,97,97,97,97,97,0,1179,0,45,45,45,45,670,45,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,67,67,1438,67,67,1442,67,67,67,67,67,67,67,67,67,67,67,67,1592,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,0,0,1305,0,0,0,0,0,1311,0,0,0,1317,0,0,0,0,0,0,0,97,97,1322,97,97,1491,97,97,1495,97,97,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,1551,45,1553,45,1504,97,97,97,97,97,97,97,97,97,97,1513,97,97,97,97,0,45,45,45,45,1536,45,45,45,45,1540,45,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,67,67,67,1700,67,67,67,97,1648,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,1541,0,97,97,97,97,0,1940,0,97,97,97,97,97,97,45,45,2011,45,45,45,2015,67,67,2017,67,67,67,2021,97,67,67,812,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,97,97,910,97,97,97,97,97,97,97,97,97,97,97,923,0,0,0,45,45,45,45,1184,45,45,45,45,1188,45,45,45,45,1414,45,45,45,1417,45,1419,45,45,45,45,45,443,45,45,45,45,45,45,453,45,45,67,67,67,67,1244,67,67,67,67,1248,67,67,67,67,67,67,67,0,37139,24853,0,0,0,282,41098,65820,97,1324,97,97,97,97,1328,97,97,97,97,97,97,97,97,97,0,0,930,45,45,45,45,97,97,97,97,1378,97,97,97,97,0,1179,0,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,45,975,45,45,45,45,67,67,1923,67,1925,67,67,1927,67,97,97,97,97,97,0,0,97,97,97,97,1985,45,45,45,45,45,45,1560,45,45,45,45,45,45,45,45,45,946,45,45,950,45,45,45,0,97,97,97,1939,0,0,0,97,1943,97,97,1945,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,990,45,45,45,67,257,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,337,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,370,2170880,2170880,2170880,2416640,401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,459,461,67,67,67,67,67,67,67,67,475,67,480,67,67,67,67,67,67,1054,67,67,67,67,67,67,67,67,67,67,1698,67,67,67,67,67,484,67,67,487,67,67,67,67,67,67,67,67,67,67,67,67,67,1459,67,67,97,556,558,97,97,97,97,97,97,97,97,572,97,577,97,97,0,0,1896,97,97,97,97,97,97,1903,45,45,45,45,983,45,45,45,45,988,45,45,45,45,45,45,1195,45,45,45,45,45,45,45,45,45,45,1549,45,45,45,45,45,581,97,97,584,97,97,97,97,97,97,97,97,97,97,97,97,97,1153,97,97,369,0,45,45,45,45,45,45,45,45,45,45,45,662,45,45,45,684,45,45,45,45,45,45,45,45,45,45,45,45,1004,45,45,45,67,67,67,749,67,67,67,67,67,67,67,67,67,761,67,67,67,67,67,67,1068,67,67,67,1071,67,67,67,67,1076,794,795,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,544,97,97,97,97,847,97,97,97,97,97,97,97,97,97,859,97,0,0,2025,97,20480,97,97,2029,45,45,45,45,45,45,67,67,67,1575,67,67,67,67,67,67,67,67,67,1775,67,67,67,97,97,97,97,892,893,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1515,97,993,994,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,992,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,67,1607,67,67,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,97,97,596,97,45,1556,1557,45,45,45,45,45,45,45,45,45,45,45,45,45,45,696,45,1596,1597,67,67,67,67,67,67,67,67,67,67,67,67,67,67,499,67,97,97,97,1621,97,97,97,97,97,97,97,97,97,97,97,97,97,1346,97,97,97,97,1740,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,45,45,67,97,97,97,97,97,97,1836,0,97,97,97,97,97,0,0,97,97,97,1984,97,45,45,45,45,45,45,1808,45,45,45,45,45,45,45,45,67,739,67,67,67,67,67,744,45,45,1909,45,45,45,45,45,45,45,67,1917,67,1918,67,67,67,67,67,67,1247,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,1922,67,67,67,67,67,67,67,97,1930,97,1931,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,1576,67,67,67,67,1580,67,67,0,97,97,1938,97,0,0,0,97,97,97,97,97,97,45,45,45,699,45,45,45,704,45,45,45,45,45,45,45,45,987,45,45,45,45,45,45,45,67,67,97,97,97,97,0,0,97,97,97,2006,97,97,97,97,0,45,1533,45,45,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,722,723,45,45,45,45,45,45,2045,67,67,67,2047,0,0,97,97,97,2051,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,409,45,45,45,45,45,45,45,45,45,1957,45,67,67,67,67,67,1836,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,45,67,67,67,1761,67,67,67,1764,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,45,45,420,45,45,422,45,45,425,45,45,45,45,45,45,45,387,45,45,45,45,397,45,45,45,67,460,67,67,67,67,67,67,67,67,67,67,67,67,67,67,515,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,97,0,2039,97,97,97,97,97,45,45,45,45,1426,45,45,45,67,67,67,67,67,67,67,67,67,1689,67,67,67,97,557,97,97,97,97,97,97,97,97,97,97,97,97,97,97,612,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,896,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,97,45,939,45,45,45,45,943,45,45,45,45,45,45,45,45,45,45,1916,67,67,67,67,67,45,67,67,67,67,67,67,67,1015,67,67,67,67,1019,67,67,67,67,67,67,1271,67,67,67,67,67,67,1277,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,67,67,67,804,67,67,67,67,67,1077,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2543616,2170880,2170880,2170880,2170880,2170880,2629632,1169,97,1171,97,97,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,936,45,45,67,67,214,67,220,67,67,233,67,243,67,248,67,67,67,67,67,67,1298,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,1617,97,0,0,0,45,45,45,1183,45,45,45,45,45,45,45,45,45,393,45,45,45,45,45,45,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,1281,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,776,1323,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,907,45,1412,45,45,45,45,45,45,45,1418,45,45,45,45,45,45,686,45,45,45,690,45,45,695,45,45,67,67,67,67,67,1465,67,67,67,67,67,67,67,67,67,67,67,97,97,97,1712,97,97,97,97,1741,97,97,97,45,45,45,45,45,45,45,45,45,426,45,45,45,45,45,45,67,67,67,1924,67,67,67,67,67,97,97,97,97,97,0,0,97,97,1983,97,97,45,45,1987,45,1988,45,0,97,97,97,97,0,0,0,1942,97,97,97,97,97,45,45,45,700,45,45,45,45,45,45,45,45,45,45,711,45,45,153,45,45,166,45,176,45,181,45,45,188,191,196,45,204,255,258,263,67,271,67,67,0,37139,24853,0,0,0,282,41098,65820,97,97,97,294,97,300,97,97,313,97,323,97,328,97,97,335,338,343,97,351,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,41098,0,140,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,45,1411,67,67,486,67,67,67,67,67,67,67,67,67,67,67,67,67,1251,67,67,501,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,67,67,67,67,1443,67,67,67,67,67,67,67,67,67,67,1263,67,67,67,67,67,97,97,583,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1526,97,598,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,0,97,97,1796,97,97,97,97,97,97,97,45,45,45,45,45,1744,45,45,45,369,0,651,45,653,45,654,45,656,45,45,45,660,45,45,45,45,1558,45,45,45,45,45,45,45,45,1566,45,45,681,45,683,45,45,45,45,45,45,45,45,691,692,694,45,45,45,716,45,45,45,45,45,45,45,45,45,45,45,45,709,45,45,712,45,714,45,45,45,718,45,45,45,45,45,45,45,726,45,45,45,733,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,747,67,67,67,67,67,67,67,67,67,760,67,67,67,0,0,0,0,0,0,97,1613,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,67,764,67,67,67,67,768,67,770,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,1977,67,778,779,781,67,67,67,67,67,67,788,789,67,67,792,793,67,67,67,813,67,67,67,67,67,67,67,67,67,824,37689,544,25403,546,70179,0,0,66365,66365,552,0,836,97,838,97,839,97,841,97,97,97,845,97,97,97,97,97,97,97,97,97,858,97,97,0,1728,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,1802,45,97,97,862,97,97,97,97,866,97,868,97,97,97,97,97,97,0,0,97,97,1788,97,97,97,0,0,97,97,876,877,879,97,97,97,97,97,97,886,887,97,97,890,891,97,97,97,97,97,97,97,899,97,97,97,903,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,1646,97,97,97,97,911,97,97,97,97,97,97,97,97,97,922,923,45,955,45,957,45,45,45,45,45,45,45,45,45,45,45,45,195,45,45,45,45,45,981,982,45,45,45,45,45,45,989,45,45,45,45,45,170,45,45,45,45,45,45,45,45,45,45,411,45,45,45,45,45,67,1023,67,67,67,67,67,67,1031,67,1033,67,67,67,67,67,67,67,817,819,67,67,67,67,67,37689,544,67,1065,67,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,1078,67,67,1081,1082,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2437406,2171166,2171166,97,1115,97,1117,97,97,97,97,97,97,1125,97,1127,97,97,97,0,97,97,97,0,97,97,97,97,1644,97,97,97,0,97,97,97,0,97,97,1642,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,97,316,97,97,97,97,97,97,97,97,97,1159,97,97,97,97,97,97,97,97,97,97,97,97,97,1502,97,97,97,97,97,1172,97,97,1175,1176,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,935,45,45,45,1233,45,45,45,1236,45,45,45,45,45,45,45,67,67,67,67,67,67,1873,67,67,45,45,1218,45,45,45,1223,45,45,45,45,45,45,45,1230,45,45,67,67,215,219,222,67,230,67,67,244,246,249,67,67,67,67,67,67,1882,97,97,97,97,0,0,0,97,97,97,97,97,97,45,1904,45,1905,45,67,67,67,67,67,1258,67,1260,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,67,67,67,1283,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,67,818,67,67,67,67,67,67,37689,544,67,67,1295,67,67,67,67,67,67,67,67,0,0,0,0,0,0,2174976,0,0,97,97,97,1326,97,97,97,97,97,97,97,97,97,97,97,97,97,1514,97,97,97,97,97,1338,97,1340,97,97,97,97,97,97,97,97,97,97,97,1500,97,97,1503,97,1363,97,97,97,97,97,97,97,1370,97,97,97,97,97,97,97,563,97,97,97,97,97,97,578,97,1375,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,685,45,45,45,45,45,45,45,45,45,45,45,1003,45,45,45,45,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1778,97,97,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,609,97,97,97,45,1542,45,45,45,45,45,45,45,1548,45,45,45,45,45,1554,45,1570,1571,45,67,67,67,67,67,67,1578,67,67,67,67,67,67,67,1055,67,67,67,67,67,1061,67,67,1582,67,67,67,67,67,67,67,1588,67,67,67,67,67,1594,67,67,67,67,67,97,2038,0,97,97,97,97,97,2044,45,45,45,995,45,45,45,45,1e3,45,45,45,45,45,45,45,1809,45,1811,45,45,45,45,45,67,1610,1611,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,1618,1647,1649,97,97,97,1652,97,1654,1655,97,0,45,45,45,1658,45,45,67,67,216,67,67,67,67,234,67,67,67,67,252,254,1845,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,945,45,947,45,45,45,45,45,67,67,67,67,67,1881,97,97,97,97,97,0,0,0,97,97,97,97,97,1902,45,45,45,45,45,45,1908,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1921,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,0,97,1937,97,97,1940,0,0,97,97,97,97,97,97,1947,1948,1949,45,45,45,1952,45,1954,45,45,45,45,1959,1960,1961,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,67,67,67,757,67,67,67,67,67,67,1964,67,1966,67,67,67,67,1971,1972,1973,97,0,0,0,97,97,1104,97,97,97,97,97,97,97,97,97,97,884,97,97,97,889,97,97,1978,97,0,0,1981,97,97,97,97,45,45,45,45,45,45,736,45,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,45,67,67,67,67,0,2049,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,933,45,45,45,45,1234,45,45,45,45,45,45,45,45,45,45,67,97,97,288,97,97,97,97,97,97,317,97,97,97,97,97,97,0,0,97,1787,97,97,97,97,0,0,45,45,378,45,45,45,45,45,390,45,45,45,45,45,45,45,424,45,45,45,431,433,45,45,45,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,67,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,97,97,632,97,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,97,97,855,97,97,97,97,67,97,97,97,97,97,97,1837,0,97,97,97,97,97,0,0,0,1897,97,97,97,97,97,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,97,2010,45,45,45,45,45,45,2016,67,67,67,67,67,67,2022,45,2046,67,67,67,0,0,2050,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,932,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,45,45,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,701,702,45,45,705,706,45,45,45,45,45,45,703,45,45,45,45,45,45,45,45,45,719,45,45,45,45,45,725,45,45,45,369,649,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1216,25403,546,70179,0,0,66365,66365,552,834,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,97,1799,97,97,45,45,45,1569,45,45,45,1572,67,67,67,67,67,67,67,67,67,67,67,0,0,0,1306,0,67,67,67,1598,67,67,67,67,67,67,67,67,1606,67,67,1609,97,97,97,1650,97,97,1653,97,97,97,0,45,45,1657,45,45,45,1206,45,45,45,45,45,45,45,45,45,45,45,45,1421,45,45,45,1703,67,67,67,67,67,67,67,67,67,67,97,97,1711,97,97,0,1895,0,97,97,97,97,97,97,45,45,45,45,45,958,45,960,45,45,45,45,45,45,45,45,1913,45,45,1915,67,67,67,67,67,67,67,466,67,67,67,67,67,67,481,67,45,1749,45,45,45,45,45,45,45,45,1755,45,45,45,45,45,173,45,45,45,45,45,45,45,45,45,45,974,45,45,45,45,45,67,67,67,67,67,1773,67,67,67,67,67,67,67,97,97,97,97,1886,0,0,0,97,97,67,2035,2036,67,67,97,0,0,97,2041,2042,97,97,45,45,45,45,1662,45,45,45,45,45,45,45,45,45,45,45,1397,45,45,45,45,151,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,437,205,45,67,67,67,218,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,67,97,97,97,97,298,97,97,97,97,97,97,97,97,97,97,97,870,97,97,97,97,97,97,97,97,352,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,365,0,41098,0,140,45,45,45,45,45,1427,45,45,67,67,67,67,67,67,67,1435,520,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1037,617,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,923,45,1232,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,1919,67,1759,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1021,45,154,45,162,45,45,45,45,45,45,45,45,45,45,45,45,964,45,45,45,206,45,67,67,67,67,221,67,229,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,67,67,755,67,67,67,67,67,67,67,67,785,67,67,67,67,67,67,67,67,802,67,67,67,807,67,67,67,97,97,97,97,353,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,366,0,0,0,140,2170880,2170880,2170880,2416640,402,45,45,45,45,45,45,45,410,45,45,45,45,45,45,45,674,45,45,45,45,45,45,45,45,389,45,394,45,45,398,45,45,45,45,441,45,45,45,45,45,447,45,45,45,454,45,45,67,67,67,67,67,67,67,67,67,67,67,1768,67,67,67,67,67,488,67,67,67,67,67,67,67,496,67,67,67,67,67,67,67,1774,67,67,67,67,67,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,97,97,67,67,523,67,67,527,67,67,67,67,67,533,67,67,67,540,97,97,97,585,97,97,97,97,97,97,97,593,97,97,97,97,97,97,1784,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,0,0,18,18,24,24,0,28,28,97,97,620,97,97,624,97,97,97,97,97,630,97,97,97,637,713,45,45,45,45,45,45,721,45,45,45,45,45,45,45,45,1197,45,45,45,45,45,45,45,45,730,732,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1581,67,45,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,67,775,67,67,67,67,1066,67,67,67,67,67,67,67,67,67,67,67,67,479,67,67,67,67,67,67,1080,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,287,0,0,0,287,0,2379776,2170880,2170880,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,97,920,97,97,0,0,0,0,45,1181,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,45,1219,45,45,45,45,45,45,1226,45,45,45,45,45,45,959,45,45,45,45,45,45,45,45,45,184,45,45,45,45,202,45,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1266,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1279,67,67,67,67,67,272,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,67,1286,67,67,67,67,67,67,67,67,67,1293,67,67,67,1296,67,67,67,67,67,67,67,0,0,0,0,0,281,94,0,0,97,97,97,1366,97,97,97,97,97,97,97,97,97,1373,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,0,97,1376,97,97,97,97,97,97,97,0,0,0,45,45,1384,45,45,67,208,67,67,67,67,67,67,237,67,67,67,67,67,67,67,1069,1070,67,67,67,67,67,67,67,0,37140,24854,0,0,0,0,41098,65821,45,1423,45,45,45,45,45,45,67,67,1431,67,67,67,67,67,67,67,1083,37689,0,25403,0,66365,0,0,0,1436,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1830,67,1452,1453,67,67,67,67,1456,67,67,67,67,67,67,67,67,67,771,67,67,67,67,67,67,1461,67,67,67,1464,67,1466,67,67,67,67,67,67,1470,67,67,67,67,67,67,1587,67,67,67,67,67,67,67,67,1595,1489,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1129,97,1505,1506,97,97,97,97,1510,97,97,97,97,97,97,97,97,97,1163,1164,97,97,97,97,97,1516,97,97,97,1519,97,1521,97,97,97,97,97,97,1525,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,67,67,67,1600,67,67,67,67,67,67,67,67,67,67,67,1301,0,0,0,1307,97,97,1620,97,97,97,97,97,97,97,1627,97,97,97,97,97,97,913,97,97,97,97,919,97,97,97,0,97,97,97,1781,97,97,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,1792,1860,45,1862,1863,45,1865,45,67,67,67,67,67,67,67,67,1875,67,1877,1878,67,1880,67,97,97,97,97,97,1887,0,1889,97,97,18,0,139621,0,0,0,0,0,0,364,237568,0,367,0,97,1893,0,0,0,97,1898,1899,97,1901,97,45,45,45,45,45,2014,45,67,67,67,67,67,2020,67,97,1989,45,1990,45,45,45,67,67,67,67,67,67,1996,67,1997,67,67,67,67,67,273,67,0,37139,24853,0,0,0,0,41098,65820,67,67,97,97,97,97,0,0,97,97,2005,0,97,2007,97,97,18,0,139621,0,0,0,642,0,133,364,0,0,367,41606,0,97,97,2056,2057,0,2059,45,67,0,97,45,67,0,97,45,45,67,209,67,67,67,223,67,67,67,67,67,67,67,67,67,786,67,67,67,791,67,67,45,45,940,45,45,45,45,45,45,45,45,45,45,45,45,45,45,727,45,45,67,67,67,67,67,67,67,67,1016,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,142,45,45,67,210,67,67,67,225,67,67,239,67,67,67,250,67,67,67,67,67,464,67,67,67,67,67,476,67,67,67,67,67,67,67,1709,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,1843,0,67,259,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,289,97,97,97,303,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,97,339,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,0,358,0,0,0,0,0,0,41098,0,140,45,45,45,45,45,1953,45,1955,45,45,45,67,67,67,67,67,67,67,1687,1688,67,67,67,67,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1203,45,458,67,67,67,67,67,67,67,67,67,470,477,67,67,67,67,67,67,67,1970,97,97,97,1974,0,0,0,97,1103,97,97,97,97,97,97,97,97,97,97,97,1372,97,97,97,97,67,522,67,67,67,67,67,67,67,67,67,67,67,536,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,1701,67,555,97,97,97,97,97,97,97,97,97,567,574,97,97,97,97,97,301,97,309,97,97,97,97,97,97,97,97,97,900,97,97,97,905,97,97,97,619,97,97,97,97,97,97,97,97,97,97,97,633,97,97,18,0,139621,0,0,362,0,0,0,364,0,0,367,41606,369,649,45,45,45,45,45,45,45,45,45,45,45,45,663,664,67,67,67,67,750,751,67,67,67,67,758,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,67,1057,1058,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,67,67,67,67,67,67,512,67,67,67,97,97,97,97,895,97,97,97,97,97,97,97,97,97,97,97,902,97,97,97,97,67,67,1051,67,67,67,67,67,67,67,67,67,67,67,1062,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1302,0,0,0,1308,97,97,97,97,1145,97,97,97,97,97,97,97,97,97,97,97,1139,97,97,97,97,1156,97,97,97,97,97,97,1161,97,97,97,97,97,1166,97,97,18,640,139621,0,641,0,0,0,0,364,0,0,367,41606,67,67,67,67,1257,67,67,67,67,67,67,67,67,67,67,67,0,0,1305,0,0,97,97,1337,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1630,97,67,1474,67,67,0,0,0,0,0,0,0,0,0,0,0,0,0,2380062,2171166,2171166,97,1529,97,97,0,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,45,45,67,67,67,67,1707,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1891,1739,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,1198,45,1200,45,45,45,45,97,97,1894,0,0,97,97,97,97,97,97,45,45,45,45,45,672,45,45,45,45,45,45,45,45,45,45,45,1420,45,45,45,45,67,67,1965,67,1967,67,67,67,97,97,97,97,0,1976,0,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,97,97,1979,0,0,97,1982,97,97,97,1986,45,45,45,45,45,735,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,1770,67,67,2e3,97,97,97,2002,0,97,97,97,0,97,97,97,97,97,97,1798,97,97,97,45,45,45,2034,67,67,67,67,97,0,0,2040,97,97,97,97,45,45,45,45,1752,45,45,45,1753,1754,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,675,45,45,45,45,45,45,438,45,45,45,45,45,445,45,45,45,45,45,45,45,45,67,1430,67,67,67,67,67,67,67,67,67,524,67,67,67,67,67,531,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1096,97,97,97,621,97,97,97,97,97,628,97,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,665,45,45,45,45,45,45,45,45,45,676,45,45,45,45,45,942,45,45,45,45,45,45,45,45,45,45,707,708,45,45,45,45,763,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,809,810,67,67,67,67,783,67,67,67,67,67,67,67,67,67,67,67,0,1303,0,0,0,97,861,97,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,45,45,956,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,67,67,67,67,1027,67,67,67,67,1032,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1097,1064,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,67,1098,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,331,97,97,97,97,1158,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,1309,0,0,0,1315,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1374,97,45,45,1543,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1240,67,67,1583,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1252,67,97,97,97,1635,97,97,97,0,97,97,97,97,97,97,97,97,1800,97,45,45,45,97,97,1793,97,97,97,97,97,97,97,97,97,97,45,45,45,1743,45,45,45,1746,45,0,97,97,97,97,97,1851,97,45,45,45,45,1856,45,45,45,45,1864,45,45,67,67,1869,67,67,67,67,1874,67,0,97,97,45,67,2058,97,45,67,0,97,45,67,0,97,45,45,67,211,67,67,67,67,67,67,240,67,67,67,67,67,67,67,1444,67,67,67,67,67,67,67,67,67,509,67,67,67,67,67,67,67,67,67,268,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,290,97,97,97,305,97,97,319,97,97,97,330,97,97,18,640,139621,0,641,0,0,0,0,364,0,643,367,41606,97,97,348,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,45,45,380,45,45,45,45,45,45,395,45,45,45,400,369,0,45,45,45,45,45,45,45,45,658,45,45,45,45,45,972,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,745,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,67,67,37689,1086,25403,1090,66365,1094,0,0,97,843,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,1121,97,97,97,97,1126,97,97,97,97,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1400,45,67,67,67,1011,67,67,67,67,67,67,67,67,67,67,67,0,1304,0,0,0,1190,45,45,1193,1194,45,45,45,45,45,1199,45,1201,45,45,45,45,1911,45,45,45,45,45,67,67,67,67,67,67,67,1579,67,67,67,67,45,1205,45,45,45,45,45,45,45,45,1211,45,45,45,45,45,984,45,45,45,45,45,45,45,45,45,45,45,1550,45,45,45,45,45,1217,45,45,45,45,45,45,1225,45,45,45,45,1229,45,45,45,1388,45,45,45,45,45,45,1396,45,45,45,45,45,444,45,45,45,45,45,45,45,45,45,67,67,1574,67,67,67,67,67,67,67,67,67,67,1590,67,67,67,67,67,1254,67,67,67,67,67,1259,67,1261,67,67,67,67,1265,67,67,67,67,67,67,1708,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,0,0,67,67,67,67,1285,67,67,67,67,1289,67,67,67,67,67,67,67,67,37689,1087,25403,1091,66365,1095,0,0,97,97,97,97,1339,97,1341,97,97,97,97,1345,97,97,97,97,97,561,97,97,97,97,97,573,97,97,97,97,97,97,1717,97,0,97,97,97,97,97,97,97,591,97,97,97,97,97,97,97,97,97,1329,97,97,97,97,97,97,97,97,97,97,1351,97,97,97,97,97,97,1357,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,568,97,97,97,97,97,97,97,1365,97,97,97,97,1369,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1399,45,45,45,1413,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1669,45,1422,45,45,1425,45,45,1428,45,1429,67,67,67,67,67,67,67,67,1468,67,67,67,67,67,67,67,67,529,67,67,67,67,67,67,539,67,67,1475,67,0,0,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,97,97,1530,97,0,45,45,1534,45,45,45,45,45,45,45,45,1956,45,45,67,67,67,67,67,67,67,67,67,1599,67,67,1601,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,67,1632,97,1634,0,97,97,97,1640,97,97,97,1643,97,97,1645,97,97,97,97,97,912,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,1660,1661,45,45,45,45,1665,1666,45,45,45,45,45,1670,1692,1693,67,67,67,67,67,1697,67,67,67,67,67,67,67,1702,97,97,1714,1715,97,97,97,97,0,1721,1722,97,97,97,97,97,97,1353,97,97,97,97,97,97,97,97,1362,1726,97,0,0,97,97,97,0,97,97,97,1734,97,97,97,97,97,848,849,97,97,97,97,856,97,97,97,97,97,354,0,53264,0,18,18,24,24,0,28,28,45,45,1750,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1681,45,0,1846,97,97,97,97,97,97,45,45,1854,45,45,45,45,1859,67,67,67,1879,67,67,97,97,1884,97,97,0,0,0,97,97,97,1105,97,97,97,97,97,97,97,97,97,97,1344,97,97,97,1347,97,1892,97,0,0,0,97,97,97,1900,97,97,45,45,45,45,45,997,45,45,45,45,45,45,45,45,45,45,1002,45,45,1005,1006,45,67,67,67,67,67,1926,67,67,1928,97,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,1737,97,0,97,97,97,97,0,0,0,97,97,1944,97,97,1946,45,45,45,1544,45,45,45,45,45,45,45,45,45,45,45,45,190,45,45,45,152,155,45,163,45,45,177,179,182,45,45,45,193,197,45,45,45,1672,45,45,45,45,45,1677,45,1679,45,45,45,45,996,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,67,260,264,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,295,299,302,97,310,97,97,324,326,329,97,97,97,0,97,97,1639,0,1641,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,97,97,97,1523,97,97,97,97,97,97,97,97,1719,97,97,97,97,97,97,97,97,1720,97,97,97,97,97,97,97,312,97,97,97,97,97,97,97,97,1123,97,97,97,97,97,97,97,340,344,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,373,375,419,45,45,45,45,45,45,45,45,45,428,45,45,435,45,45,45,1751,45,45,45,45,45,45,45,45,45,45,45,45,1410,45,45,45,67,67,67,505,67,67,67,67,67,67,67,67,67,514,67,67,67,67,67,67,1969,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,0,97,2064,2065,0,2066,45,521,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,465,67,67,67,474,67,67,67,67,67,67,67,1467,67,67,67,67,67,67,67,67,67,97,97,97,97,97,1933,0,97,97,97,602,97,97,97,97,97,97,97,97,97,611,97,97,18,640,139621,358,641,0,0,0,0,364,0,0,367,0,618,97,97,97,97,97,97,97,97,97,97,631,97,97,97,97,97,881,97,97,97,97,97,97,97,97,97,97,569,97,97,97,97,97,369,0,45,652,45,45,45,45,45,657,45,45,45,45,45,45,1235,45,45,45,45,45,45,45,45,67,67,67,1432,67,67,67,67,67,67,67,766,67,67,67,67,67,67,67,67,773,67,67,67,0,1305,0,1311,0,1317,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,97,0,97,97,97,1724,97,97,97,777,67,67,782,67,67,67,67,67,67,67,67,67,67,67,67,535,67,67,67,67,67,67,67,814,67,67,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,0,97,837,97,97,97,97,97,97,1496,97,97,97,97,97,97,97,97,97,97,918,97,97,97,97,0,842,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1168,97,97,97,97,864,97,97,97,97,97,97,97,97,871,97,97,97,0,1637,97,97,0,97,97,97,97,97,97,97,97,97,97,1801,45,45,97,875,97,97,880,97,97,97,97,97,97,97,97,97,97,97,1151,1152,97,97,97,67,67,67,1040,67,67,67,67,67,67,67,67,67,67,67,67,790,67,67,67,1180,0,649,45,45,45,45,45,45,45,45,45,45,45,45,45,200,45,45,67,67,67,1454,67,67,67,67,67,67,67,67,67,67,67,67,806,67,67,67,0,0,0,1481,0,1094,0,0,97,1483,97,97,97,97,97,97,304,97,97,318,97,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,97,97,1332,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,1633,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,1381,0,0,45,45,45,45,97,97,1727,0,97,97,97,0,97,97,97,97,97,97,97,97,626,97,97,97,97,97,97,636,45,45,1760,67,67,67,67,67,67,67,1765,67,67,67,67,67,67,67,1299,67,67,67,0,0,0,0,0,0,97,97,97,97,1616,97,97,1803,45,45,45,45,1807,45,45,45,45,45,1813,45,45,45,67,67,1684,67,67,67,67,67,67,67,67,67,67,67,822,67,67,37689,544,67,67,1818,67,67,67,67,1822,67,67,67,67,67,1828,67,67,67,67,67,97,0,0,97,97,97,97,97,45,45,45,2012,2013,45,45,67,67,67,2018,2019,67,67,97,67,97,97,97,1833,97,97,0,0,97,97,1840,97,97,0,0,97,97,97,0,97,97,1733,97,1735,97,97,97,0,97,97,97,1849,97,97,97,45,45,45,45,45,1857,45,45,45,1910,45,1912,45,45,1914,45,67,67,67,67,67,67,67,67,67,67,1017,67,67,1020,67,45,1861,45,45,45,45,45,67,67,67,67,67,1872,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,67,1446,67,67,67,67,67,1876,67,67,67,67,67,97,97,97,97,97,0,0,0,1890,97,97,97,97,97,1134,97,97,97,97,97,97,97,97,97,97,570,97,97,97,97,580,1935,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1906,45,67,67,67,67,2048,0,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,931,45,45,45,45,45,45,1674,45,1676,45,45,45,45,45,45,45,446,45,45,45,45,45,45,45,67,67,67,67,1871,67,67,67,67,0,97,97,45,67,0,97,2060,2061,0,2063,45,67,0,97,45,45,156,45,45,45,45,45,45,45,45,45,192,45,45,45,45,1673,45,45,45,45,45,45,45,45,45,45,45,429,45,45,45,45,67,67,67,269,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,349,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,374,45,45,67,67,213,217,67,67,67,67,67,242,67,247,67,253,45,45,698,45,45,45,45,45,45,45,45,45,45,45,45,45,399,45,45,0,0,0,0,925,41606,0,929,0,0,45,45,45,45,45,45,1391,45,45,1395,45,45,45,45,45,45,423,45,45,45,45,45,45,45,436,45,67,67,67,67,1041,67,1043,67,67,67,67,67,67,67,67,67,67,1776,67,67,97,97,97,1099,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,888,97,97,97,1131,97,97,97,97,1135,97,1137,97,97,97,97,97,97,97,1497,97,97,97,97,97,97,97,97,97,883,97,97,97,97,97,97,1310,0,0,0,1316,0,0,0,0,1100,0,0,0,97,97,97,97,97,1107,97,97,97,97,97,97,97,97,1343,97,97,97,97,97,97,1348,0,0,1317,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,1112,97,45,1804,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1868,67,1870,67,67,67,67,67,1817,67,67,1819,67,67,67,67,67,67,67,67,67,67,67,67,823,67,37689,544,67,97,1832,97,97,1834,97,0,0,97,97,97,97,97,0,0,97,97,97,0,1732,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,97,1177,0,0,925,0,0,0,0,97,97,97,97,0,0,1941,97,97,97,97,97,97,45,45,45,1991,1992,45,67,67,67,67,67,67,67,67,67,1998,134,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,941,45,45,944,45,45,45,45,45,45,952,45,45,207,67,67,67,67,67,226,67,67,67,67,67,67,67,67,67,820,67,67,67,67,37689,544,369,650,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1682,25403,546,70179,0,0,66365,66365,552,835,97,97,97,97,97,97,97,1522,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,1725,67,67,67,1695,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,1036,67,67,67,265,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,296,97,97,97,97,314,97,97,97,97,332,334,97,97,97,97,97,1146,1147,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,97,97,345,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,372,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,1213,45,45,45,45,404,406,45,45,45,45,45,45,45,45,45,45,45,45,45,434,45,45,45,440,45,45,45,45,45,45,45,45,451,452,45,45,45,67,1683,67,67,67,1686,67,67,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,490,492,67,67,67,67,67,67,67,67,67,67,67,1447,67,67,1450,67,67,67,67,67,526,67,67,67,67,67,67,67,67,537,538,67,67,67,67,67,506,67,67,508,67,67,511,67,67,67,67,0,1476,0,0,0,0,0,1478,0,0,0,0,0,0,0,0,97,97,1484,97,97,97,97,97,97,865,97,97,97,97,97,97,97,97,97,97,1499,97,97,97,97,97,97,97,97,97,587,589,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,97,97,97,97,623,97,97,97,97,97,97,97,97,634,635,97,97,97,97,97,1160,97,97,97,97,97,97,97,97,97,97,97,1628,97,97,97,97,369,0,45,45,45,45,45,655,45,45,45,45,45,45,45,45,999,45,1001,45,45,45,45,45,45,45,45,715,45,45,45,720,45,45,45,45,45,45,45,45,728,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,840,97,97,97,97,97,1174,97,97,97,97,0,0,925,0,0,0,0,0,0,0,1100,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,97,938,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,680,45,968,45,970,45,973,45,45,45,45,45,45,45,45,45,45,962,45,45,45,45,45,979,45,45,45,45,45,985,45,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,688,45,45,45,45,45,45,45,1007,1008,67,67,67,67,67,1014,67,67,67,67,67,67,67,67,67,1045,67,67,67,67,67,67,67,1038,67,67,67,67,67,67,1044,67,1046,67,1049,67,67,67,67,67,67,800,67,67,67,67,67,67,808,67,67,0,0,0,1102,97,97,97,97,97,1108,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,97,1371,97,97,97,97,97,97,97,97,1132,97,97,97,97,97,97,1138,97,1140,97,1143,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,45,1191,45,45,45,45,45,1196,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,991,45,67,67,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,1048,67,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,97,1386,45,1387,45,45,45,45,45,45,45,45,45,45,45,45,45,455,45,457,45,45,1424,45,45,45,45,45,67,67,67,67,1433,67,1434,67,67,67,67,67,767,67,67,67,67,67,67,67,67,67,67,67,1591,67,1593,67,67,45,45,1805,45,45,45,45,45,45,45,45,45,1814,45,45,1816,67,67,67,67,1820,67,67,67,67,67,67,67,67,67,1829,67,67,67,67,67,815,67,67,67,67,821,67,67,67,37689,544,67,1831,97,97,97,97,1835,0,0,97,97,97,97,97,0,0,97,97,97,1731,97,97,97,97,97,97,97,97,97,853,97,97,97,97,97,97,0,97,97,97,97,1850,97,97,45,45,45,45,45,45,45,45,1547,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,961,45,45,45,45,965,45,967,1907,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1920,0,1936,97,97,97,0,0,0,97,97,97,97,97,97,45,45,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,67,67,97,97,97,97,0,0,28672,97,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,2054,97,97,291,97,97,97,97,97,97,320,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,97,12288,0,925,926,1179,0,45,377,45,45,45,381,45,45,392,45,45,396,45,45,45,45,971,45,45,45,45,45,45,45,45,45,45,45,45,1756,45,45,45,67,67,67,67,463,67,67,67,467,67,67,478,67,67,482,67,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,1472,67,502,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1460,67,97,97,97,97,560,97,97,97,564,97,97,575,97,97,579,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,930,97,599,97,97,97,97,97,97,97,97,97,97,97,97,97,97,872,97,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1758,0,362,0,0,925,41606,0,0,0,0,45,45,934,45,45,45,164,168,174,178,45,45,45,45,45,194,45,45,45,165,45,45,45,45,45,45,45,45,45,199,45,45,45,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,67,1060,67,67,67,67,67,67,1052,1053,67,67,67,67,67,67,67,67,67,67,1063,97,1157,97,97,97,97,97,97,97,97,97,97,97,97,1167,97,97,97,97,97,1379,97,97,97,0,0,0,45,1383,45,45,45,1806,45,45,45,45,45,45,1812,45,45,45,45,67,67,67,67,67,1577,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,1282,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1471,67,45,1402,45,45,45,45,45,45,45,45,45,45,45,45,45,45,417,45,67,1462,67,67,67,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,1517,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1128,97,97,97,97,1636,97,97,97,0,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,1705,67,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,1842,0,0,1779,97,97,97,1782,97,0,0,97,97,97,97,97,97,0,0,97,97,97,1789,97,97,0,0,0,97,1847,97,97,97,97,97,45,45,45,45,45,45,45,45,1675,45,45,45,45,45,45,45,45,737,738,67,740,67,741,67,743,67,67,67,67,67,67,1968,67,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,2062,97,45,67,0,97,45,67,67,97,97,2001,97,0,0,2004,97,97,0,97,97,97,97,1797,97,97,97,97,97,45,45,45,67,261,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,292,97,97,97,97,311,315,321,325,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,97,97,1330,97,97,1333,1334,97,341,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,363,364,0,367,41098,369,140,45,45,45,45,1221,45,45,45,45,45,45,45,45,45,45,45,413,45,45,416,45,376,45,45,45,45,382,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,45,45,403,45,45,45,45,45,45,45,45,45,45,414,45,45,45,418,67,67,67,462,67,67,67,67,468,67,67,67,67,67,67,67,67,1602,67,1604,67,67,67,67,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,500,67,67,67,67,67,1067,67,67,67,67,67,1072,67,67,67,67,67,67,274,0,37139,24853,0,0,0,0,41098,65820,67,67,504,67,67,67,67,67,67,67,510,67,67,67,517,519,541,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,554,97,97,97,559,97,97,97,97,565,97,97,97,97,97,97,97,1718,0,97,97,97,97,97,97,97,898,97,97,97,97,97,97,906,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,597,97,97,97,97,97,1520,97,97,97,97,97,97,97,97,97,97,0,45,1656,45,45,45,97,97,601,97,97,97,97,97,97,97,607,97,97,97,614,616,638,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,369,0,45,45,45,45,45,45,45,45,45,45,661,45,45,45,407,45,45,45,45,45,45,45,45,45,45,45,45,45,1815,45,67,45,667,45,45,45,45,45,45,45,45,45,45,678,45,45,45,421,45,45,45,45,45,45,45,45,45,45,45,45,976,977,45,45,45,682,45,45,45,45,45,45,45,45,45,45,693,45,45,697,67,67,748,67,67,67,67,754,67,67,67,67,67,67,67,67,67,1274,67,67,67,67,67,67,67,67,765,67,67,67,67,769,67,67,67,67,67,67,67,67,67,1589,67,67,67,67,67,67,67,67,780,67,67,784,67,67,67,67,67,67,67,67,67,67,67,1777,67,97,97,97,97,97,97,846,97,97,97,97,852,97,97,97,97,97,97,97,1742,45,45,45,45,45,45,45,1747,97,97,97,863,97,97,97,97,867,97,97,97,97,97,97,97,308,97,97,97,97,97,97,97,97,97,97,12288,1178,925,0,1179,0,97,97,97,878,97,97,882,97,97,97,97,97,97,97,97,97,97,12288,0,925,0,1179,0,908,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,0,954,45,45,45,45,45,45,45,45,45,45,963,45,45,966,45,45,157,45,45,171,45,45,45,45,45,45,45,45,45,45,948,45,45,45,45,45,1022,67,67,1026,67,67,67,1030,67,67,67,67,67,67,67,67,67,1603,1605,67,67,67,1608,67,67,67,1039,67,67,1042,67,67,67,67,67,67,67,67,67,67,471,67,67,67,67,67,0,1100,0,97,97,97,97,97,97,97,97,97,97,97,97,97,904,97,97,97,97,1116,97,97,1120,97,97,97,1124,97,97,97,97,97,97,562,97,97,97,571,97,97,97,97,97,97,97,97,97,1133,97,97,1136,97,97,97,97,97,97,97,97,915,917,97,97,97,97,97,0,97,1170,97,97,97,97,97,97,97,97,0,0,925,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,45,1993,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,1278,67,0,0,0,45,45,1182,45,45,45,45,45,45,45,45,45,1189,1204,45,45,45,1207,45,45,1209,45,1210,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,45,689,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,236,67,67,67,67,67,67,67,801,67,67,67,805,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,1249,67,67,67,67,67,67,507,67,67,67,67,67,67,67,67,67,67,1300,0,0,0,0,0,1267,67,67,1269,67,1270,67,67,67,67,67,67,67,67,67,1280,97,1349,97,1350,97,97,97,97,97,97,97,97,97,1360,97,97,97,0,1980,97,97,97,97,97,45,45,45,45,45,45,673,45,45,45,45,677,45,45,45,45,1401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,953,67,1437,67,1440,67,67,67,67,1445,67,67,67,1448,67,67,67,67,67,67,1029,67,67,67,67,67,67,67,67,67,67,1825,67,67,67,67,67,1473,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,1320,0,834,97,97,97,97,1490,97,1493,97,97,97,97,1498,97,97,97,1501,97,97,97,0,97,1638,97,0,97,97,97,97,97,97,97,97,916,97,97,97,97,97,97,0,1528,97,97,97,0,45,45,45,1535,45,45,45,45,45,45,45,1867,67,67,67,67,67,67,67,67,67,97,97,97,97,1932,0,0,1555,45,45,45,45,45,45,45,45,45,45,45,45,45,1567,45,45,158,45,45,172,45,45,45,183,45,45,45,45,201,45,45,67,212,67,67,67,67,231,235,241,245,67,67,67,67,67,67,493,67,67,67,67,67,67,67,67,67,67,472,67,67,67,67,67,97,97,97,97,1651,97,97,97,97,97,0,45,45,45,45,45,45,45,1539,45,45,45,67,1704,67,1706,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,1841,97,0,1844,97,97,97,97,1716,97,97,97,0,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1385,1748,45,45,45,45,45,45,45,45,45,45,45,45,45,1757,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,97,97,1780,97,97,97,0,0,1786,97,97,97,97,97,0,0,97,97,1730,0,97,97,97,97,97,1736,97,1738,67,97,97,97,97,97,97,0,1838,97,97,97,97,97,0,0,97,1729,97,0,97,97,97,97,97,97,97,97,1162,97,97,97,1165,97,97,97,45,1950,45,45,45,45,45,45,45,45,1958,67,67,67,1962,67,67,67,67,67,1246,67,67,67,67,67,67,67,67,67,67,67,97,1710,97,97,97,1999,67,97,97,97,97,0,2003,97,97,97,0,97,97,2008,2009,45,67,67,67,67,0,0,97,97,97,97,45,2052,67,2053,0,0,0,0,925,41606,0,0,930,0,45,45,45,45,45,45,1392,45,1394,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,45,1563,1565,45,45,45,1568,0,97,2055,45,67,0,97,45,67,0,97,45,67,28672,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,679,45,45,67,67,266,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,346,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,362,0,364,0,367,41098,369,140,371,45,45,45,379,45,45,45,388,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,449,45,45,45,45,45,67,67,542,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,97,97,97,97,1622,97,97,97,97,97,97,97,1629,97,97,0,1794,1795,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1745,45,45,97,639,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,45,731,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,251,67,67,67,67,67,798,67,67,67,67,67,67,67,67,67,67,67,67,1073,67,67,67,860,97,97,97,97,97,97,97,97,97,97,97,97,97,97,873,0,0,1101,97,97,97,97,97,97,97,97,97,97,97,97,97,921,97,0,67,67,67,67,1245,67,67,67,67,67,67,67,67,67,67,67,67,1250,67,67,1253,0,0,1312,0,0,0,1318,0,0,0,0,0,0,97,97,97,97,1106,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,97,1155,97,97,1325,97,97,97,97,97,97,97,97,97,97,97,97,97,1141,97,97,67,67,1439,67,1441,67,67,67,67,67,67,67,67,67,67,67,67,1264,67,67,67,97,97,1492,97,1494,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,97,67,67,67,2037,67,97,0,0,97,97,97,2043,97,45,45,45,442,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,232,67,67,67,67,67,67,67,67,1823,67,67,67,67,67,67,67,67,97,97,97,97,1975,0,0,97,874,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1142,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,65,86,117,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,63,84,115,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,61,82,113,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,59,80,111,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,57,78,109,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,55,76,107,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,53,74,105,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,51,72,103,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,49,70,101,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,47,68,99,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,45,67,97,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,213085,53264,18,49172,57366,24,8192,28,102432,0,0,0,44,0,0,32863,53264,18,49172,57366,24,8192,28,102432,0,41,41,41,0,0,1138688,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,89,53264,18,18,49172,0,57366,0,24,24,24,0,127,127,127,127,102432,67,262,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,342,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,360,0,0,364,0,367,41098,369,140,45,45,45,45,717,45,45,45,45,45,45,45,45,45,45,45,412,45,45,45,45,45,67,1009,67,67,67,67,67,67,67,67,67,67,67,67,67,1292,67,67,1294,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,1615,97,97,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,66,87,118,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,64,85,116,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,62,83,114,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,60,81,112,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,58,79,110,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,56,77,108,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,54,75,106,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,52,73,104,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,50,71,102,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,48,69,100,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,46,67,98,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,233472,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,69724,53264,18,18,49172,0,57366,262144,24,24,24,0,28,28,28,28,102432,45,45,161,45,45,45,45,45,45,45,45,45,45,45,45,45,710,45,45,28,139621,359,0,0,0,364,0,367,41098,369,140,45,45,45,45,1389,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,45,67,503,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1449,67,67,97,600,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1154,97,0,0,0,0,925,41606,927,0,0,0,45,45,45,45,45,45,1866,67,67,67,67,67,67,67,67,67,67,772,67,67,67,67,67,45,45,969,45,45,45,45,45,45,45,45,45,45,45,45,45,951,45,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,45,0,0,0,1314,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1488,67,67,267,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,347,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,361,0,0,364,0,367,41098,369,140,45,45,45,45,734,45,45,45,67,67,67,67,67,742,67,67,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,1214,45,45,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1361,97,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,45,45,0,0,0,0,2220032,0,0,1130496,0,0,0,0,2170880,2171020,2170880,2170880,18,0,0,131072,0,0,0,90112,0,2220032,0,0,0,0,0,0,0,0,97,97,97,1485,97,97,97,97,0,45,45,45,45,45,1537,45,45,45,45,45,1390,45,1393,45,45,45,45,1398,45,45,45,2170880,2171167,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,0,0,0,0,0,2183168,0,0,0,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2721252,2744320,2170880,2170880,2170880,2834432,2840040,2170880,2908160,2170880,2170880,2936832,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3014656,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,0,0,0,0,2220032,0,0,0,1142784,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3215360,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,543,0,545,0,0,2183168,0,0,831,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,2170880,2170880,3092480,2170880,2170880,3125248,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,0,0,0,67,67,37139,37139,24853,24853,0,0,0,0,0,65820,65820,0,287,97,97,97,97,97,1783,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,1791,0,0,546,70179,0,0,0,0,552,0,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,97,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,0,0,147456,0,0,0,0,925,41606,0,928,0,0,45,45,45,45,45,45,998,45,45,45,45,45,45,45,45,45,1562,45,1564,45,45,45,45,0,2158592,2158592,0,0,0,0,2232320,2232320,2232320,0,2240512,2240512,2240512,2240512,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640],r.EXPECTED=[291,300,304,341,315,309,305,295,319,323,327,329,296,333,337,339,342,346,350,294,356,360,312,367,352,371,363,375,379,383,387,391,395,726,399,405,518,684,405,405,405,405,808,405,405,405,512,405,405,405,431,405,405,406,405,405,404,405,405,405,405,405,405,405,908,631,410,415,405,414,419,608,405,429,602,405,435,443,405,441,641,478,405,447,451,450,456,643,461,460,762,679,465,469,741,473,477,482,486,492,932,931,523,498,504,720,405,510,596,405,516,941,580,522,929,527,590,589,897,939,534,538,547,551,555,559,563,567,571,969,575,708,690,689,579,584,634,405,594,731,405,600,882,405,606,895,786,452,612,405,615,620,876,624,628,638,647,651,655,659,663,667,676,683,688,695,694,791,405,699,437,405,706,714,405,712,825,870,405,718,724,769,768,823,730,735,745,751,422,755,759,425,766,902,810,587,775,888,887,405,773,992,405,779,962,405,785,781,986,790,795,797,506,500,499,801,805,814,820,829,833,837,841,845,849,853,857,861,616,865,869,868,488,405,874,816,405,880,738,405,886,892,543,405,901,906,913,912,918,494,541,922,926,936,945,949,953,957,530,966,973,960,702,701,405,979,981,405,985,747,405,990,998,914,405,996,1004,672,975,974,1014,1002,1008,670,1012,405,405,405,405,405,401,1018,1022,1026,1106,1071,1111,1111,1111,1082,1145,1030,1101,1034,1038,1106,1106,1106,1106,1046,1206,1052,1106,1072,1111,1111,1042,1134,1065,1111,1112,1056,1160,1207,1062,1204,1208,1069,1106,1106,1106,1076,1111,1207,1161,1122,1205,1064,1094,1106,1106,1107,1111,1111,1111,1078,1086,1207,1092,1098,1046,1058,1106,1106,1110,1111,1111,1116,1120,1161,1126,1202,1104,1106,1145,1146,1129,1138,1088,1151,1048,1157,1153,1132,1141,1165,1107,1111,1172,1179,1109,1183,1175,1143,1147,1187,1108,1191,1195,1144,1199,1168,1212,1216,1220,1224,1228,1232,1236,1557,1247,1241,1241,1038,1434,1241,1241,1241,1241,1254,1275,1617,1241,1280,1287,1241,1241,1241,1287,1241,2114,1291,1241,1243,1241,2049,1824,2094,2095,1520,1309,1241,1241,1302,1241,1321,1311,1241,1241,1313,1778,1325,1336,1241,1241,1325,1330,1353,1241,1241,1695,1354,1241,1241,1241,1294,1686,1331,1241,1696,1368,1241,1338,1370,1241,1392,1399,1364,2017,1406,2016,1405,1716,1406,1407,1422,1417,1421,1241,1241,1241,1349,1426,1241,1774,1756,1241,1773,1241,1241,1345,1964,1812,1432,1241,1241,1345,1993,1459,1241,1241,1241,1395,1848,1767,1465,1241,1241,1394,1847,1242,1477,1241,1241,1428,1241,1445,1492,1241,1241,1438,1241,1499,1241,1241,1241,1455,1241,1818,1448,1241,1250,1241,2026,1623,1449,1241,1612,1616,1241,1614,1241,1257,1241,1241,1985,1292,1586,1512,1241,1517,2050,1526,1674,1519,1524,1647,2051,1532,1537,1551,1544,1550,1555,1561,1571,1578,1584,1590,1591,1653,1595,1602,1606,1610,1634,1628,1640,1633,1645,1241,1241,1241,1469,1241,1970,1651,1241,1270,1241,1241,1819,1449,1241,1293,1664,1241,1241,1481,1485,1574,1672,1241,1241,1513,1317,1487,1684,1241,1241,1533,1299,1694,1241,1241,1295,1241,1241,1241,1546,1700,1241,1241,1707,1241,1713,1241,1849,1715,1241,1720,1241,1276,1267,1241,1241,2107,1657,1864,1241,1881,1241,1326,1292,1241,1685,1358,1724,1338,1241,1363,1362,1342,1340,1361,1339,1833,1372,1360,1833,1833,1342,1343,1835,1341,1731,1738,1344,1241,1745,1241,1379,1241,1241,2092,1241,1388,1761,1754,1241,1386,1241,1400,1760,1241,1241,1241,1598,1734,1241,1241,1241,1635,1645,1241,1780,1766,1241,1241,1332,1771,1241,1241,1629,2079,1241,1242,1784,1241,1241,1680,1639,2063,1790,1241,1241,1741,1241,1241,1800,1241,1241,1762,1473,1241,1806,1241,1241,1786,1240,1709,1241,1241,1241,1668,1811,1241,1940,1241,1401,1974,1241,1408,1413,1382,1241,1816,1241,1241,1802,2086,1811,1241,1817,1945,1823,2095,2095,2047,2094,2046,2080,1241,1409,1312,1376,2096,2048,1241,1241,1807,1241,1241,1241,2035,1241,1241,1828,1241,2057,2061,1241,1241,1843,1241,2059,1241,1241,1241,1690,1847,1241,1241,1241,1703,2102,1848,1241,1241,1853,1292,1848,1241,2016,1857,1241,2002,1868,1241,1436,1241,1241,1271,1305,1241,1874,1241,1241,1884,2037,1892,1241,1890,1241,1461,1241,1241,1795,1241,1241,1891,1241,1878,1241,1888,1241,1888,1905,1896,2087,1912,1903,1241,1911,1906,1916,1905,2027,1863,1925,2088,1859,1861,1922,1927,1931,1935,1494,1241,1241,1918,1907,1939,1917,1944,1949,1241,1241,1451,1955,1241,1241,1241,1796,1727,2061,1241,1241,1899,1241,1660,1968,1241,1241,1951,1678,1978,1241,1241,1241,1839,1241,1241,1984,1982,1241,1488,1241,1241,1624,1450,1989,1241,1241,1241,1870,1995,1292,1241,1241,1958,1261,1241,1996,1241,1241,1241,2039,2008,1241,1241,1750,2e3,1241,1256,2001,1960,1241,1564,1241,1504,1241,1241,1442,1241,1241,1564,1528,1263,1241,1508,1241,1241,1468,1498,2006,1540,2015,1539,2014,1748,2013,1539,1831,2014,2012,1500,1567,2022,2021,1241,1580,1241,1241,2033,2037,1791,2045,2031,1241,1621,1241,1641,2044,1241,1241,1241,2093,1241,1241,2055,1241,1241,2067,1241,1283,1241,1241,1241,2101,2071,1241,1241,1241,2073,1848,2040,1241,1241,1241,2077,1241,1241,2106,1241,1241,2084,1241,2111,1241,1241,1381,1380,1241,1241,1241,2100,1241,2129,2118,2122,2126,2197,2133,3010,2825,2145,2698,2156,2226,2160,2161,2165,2174,2293,2194,2630,2201,2203,2152,3019,2226,2263,2209,2213,2218,2269,2292,2269,2269,2184,2226,2238,2148,2151,3017,2245,2214,2269,2269,2185,2226,2292,2269,2291,2269,2269,2269,2292,2205,3019,2226,2226,2160,2160,2160,2261,2160,2160,2160,2262,2276,2160,2160,2277,2216,2283,2216,2269,2269,2268,2269,2267,2269,2269,2269,2271,2568,2292,2269,2293,2269,2182,2190,2269,2186,2226,2226,2226,2226,2227,2160,2160,2160,2160,2263,2160,2275,2277,2282,2215,2217,2269,2269,2291,2269,2269,2293,2291,2269,2220,2269,2295,2294,2269,2269,2305,2233,2262,2278,2218,2269,2234,2226,2226,2228,2160,2160,2160,2289,2220,2294,2294,2269,2269,2304,2269,2160,2160,2287,2269,2269,2305,2269,2269,2312,2269,2269,2225,2226,2160,2287,2289,2219,2304,2295,2314,2234,2226,2314,2269,2226,2226,2160,2288,2219,2222,2304,2296,2269,2224,2160,2160,2269,2302,2294,2314,2224,2226,2288,2220,2294,2269,2290,2269,2269,2293,2269,2269,2269,2269,2270,2221,2313,2225,2227,2160,2300,2269,2225,2261,2309,2234,2229,2223,2318,2318,2318,2328,2336,2340,2344,2350,2637,2712,2358,2362,2372,2135,2378,2398,2135,2135,2135,2135,2136,2417,2241,2135,2378,2135,2135,2980,2984,2135,3006,2135,2135,2135,2945,2931,2425,2400,2135,2135,2135,2954,2135,2481,2433,2135,2135,2988,2824,2135,2135,2482,2434,2135,2135,2440,2445,2452,2135,2135,2998,3002,2961,2441,2446,2453,2463,2974,2135,2135,2135,2140,2642,2709,2459,2470,2465,2135,2135,3005,2135,2135,2987,2823,2458,2469,2464,2975,2135,2135,2135,2353,2488,2447,2324,2974,2135,2409,2459,2448,2135,2961,2487,2446,2476,2323,2973,2135,2135,2135,2354,2476,2974,2135,2135,2135,2957,2135,2135,2960,2135,2135,2135,2363,2409,2459,2474,2465,2487,2571,2973,2135,2135,2168,2973,2135,2135,2135,2959,2135,2135,2135,2506,2135,2957,2488,2170,2135,2135,2135,2960,2135,2818,2493,2135,2135,3033,2135,2135,2135,2934,2819,2494,2135,2135,2135,2976,2780,2499,2135,2135,2135,3e3,2968,2135,2935,2135,2135,2135,2364,2507,2135,2135,2934,2135,2135,2780,2492,2507,2135,2135,2506,2780,2135,2135,2782,2780,2135,2782,2135,2783,2374,2514,2135,2135,2135,3007,2530,2974,2135,2135,2135,3008,2135,2135,2134,2135,2526,2531,2975,2135,2135,3042,2581,2575,2956,2135,2135,2135,2394,2135,2508,2535,2840,2844,2495,2135,2135,2136,2684,2537,2842,2846,2135,2136,2561,2581,2551,2536,2841,2845,2975,3043,2582,2843,2555,2135,3040,3044,2538,2844,2975,2135,2135,2253,2644,2672,2542,2554,2135,2135,2346,2873,2551,2555,2135,2135,2135,2381,2559,2565,2538,2553,2135,2560,2914,2576,2590,2135,2135,2135,2408,2136,2596,2624,2135,2135,2135,2409,2135,2618,2597,3008,2135,2135,2380,2956,2601,2135,2135,2135,2410,2620,2624,2135,2136,2383,2135,2135,2783,2623,2135,2135,2393,2888,2136,2621,3008,2135,2618,2618,2622,2135,2135,2405,2414,2619,2384,2624,2135,2136,2950,2135,2138,2135,2139,2135,2604,2623,2135,2140,2878,2665,2957,2622,2135,2135,2428,2762,2606,2612,2135,2135,2501,2586,2604,3038,2135,2604,3036,2387,2958,2386,2135,2141,2135,2421,2387,2385,2135,2385,2384,2384,2135,2386,2628,2384,2135,2135,2501,2596,2591,2135,2135,2135,2400,2135,2634,2135,2135,2559,2580,2575,2648,2135,2135,2135,2429,2649,2135,2135,2135,2435,2654,2658,2135,2135,2135,2436,2649,2178,2659,2135,2135,2595,2601,2669,2677,2135,2135,2616,2957,2879,2665,2691,2135,2363,2367,2900,2878,2664,2690,2975,2877,2643,2670,2974,2671,2975,2135,2135,2619,2608,2669,2673,2135,2135,2653,2177,2672,2135,2135,2135,2486,2168,2251,2255,2695,2974,2709,2135,2135,2135,2487,2169,2399,2716,2975,2135,2363,2770,2776,2640,2717,2135,2135,2729,2135,2135,2641,2718,2135,2135,2135,2505,2135,2640,2257,2974,2135,2727,2975,2135,2365,2332,2895,2957,2135,2959,2135,2365,2749,2754,2959,2958,2958,2135,2380,2793,2799,2135,2735,2738,2135,2381,2135,2135,2940,2974,2135,2744,2135,2135,2739,2519,2976,2745,2135,2135,2135,2509,2755,2135,2135,2135,2510,2772,2778,2135,2135,2740,2520,2135,2771,2777,2135,2135,2759,2750,2792,2798,2135,2135,2781,2392,2779,2135,2135,2135,2521,2135,2679,2248,2135,2135,2681,2480,2135,2135,2786,3e3,2135,2679,2683,2135,2135,2416,2135,2135,2135,2525,2135,2730,2135,2135,2135,2560,2581,2135,2805,2135,2135,2804,2962,2832,2974,2135,2382,2135,2135,2958,2135,2135,2960,2135,2829,2833,2975,2961,2965,2969,2973,2968,2972,2135,2135,2135,2641,2135,2515,2966,2970,2851,2478,2135,2135,2808,2135,2809,2135,2135,2135,2722,2852,2479,2135,2135,2815,2135,2135,2766,2853,2480,2135,2857,2479,2135,2388,2723,2135,2364,2331,2894,2858,2480,2135,2135,2850,2478,2135,2135,2135,2806,2864,2135,2399,2256,2974,2865,2135,2135,2862,2135,2135,2135,2685,2807,2865,2135,2135,2807,2863,2135,2135,2135,2686,2884,2807,2135,2809,2807,2135,2135,2807,2806,2705,2810,2808,2700,2869,2702,2702,2702,2704,2883,2135,2135,2135,2730,2884,2135,2135,2135,2731,2321,2546,2135,2135,2876,2255,2889,2322,2547,2135,2401,2135,2135,2135,2949,2367,2893,2544,2973,2906,2973,2135,2135,2877,2663,2368,2901,2907,2974,2366,2899,2905,2972,2920,2974,2135,2135,2911,2900,2920,2363,2913,2918,2465,2941,2975,2135,2135,2924,2928,2974,2945,2931,2135,2135,2135,2765,2136,2955,2135,2135,2939,2931,2380,2135,2135,2380,2135,2135,2135,2780,2507,2137,2135,2137,2135,2139,2135,2806,2810,2135,2135,2135,2992,2135,2135,2962,2966,2970,2974,2135,2135,2787,3014,2135,2521,2993,2135,2135,2135,2803,2135,2135,2135,2618,2607,2997,3001,2135,2135,2963,2967,2971,2975,2135,2135,2791,2797,2135,3009,2999,3003,2787,3001,2135,2135,2964,2968,2785,2999,3003,2135,2135,2135,2804,2785,2999,3004,2135,2135,2135,2807,2135,2135,3023,2135,2135,2135,2811,2135,2135,3027,2135,2135,2135,2837,2968,3028,2135,2135,2135,2875,2135,2784,3029,2135,2408,2457,2446,0,14,0,-2120220672,1610612736,-2074083328,-2002780160,-2111830528,1073872896,1342177280,1075807216,4096,16384,2048,8192,0,8192,0,0,0,0,1,0,0,0,2,0,-2145386496,8388608,1073741824,0,2147483648,2147483648,2097152,2097152,2097152,536870912,0,0,134217728,33554432,1536,268435456,268435456,268435456,268435456,128,256,32,0,65536,131072,524288,16777216,268435456,2147483648,1572864,1835008,640,32768,65536,262144,1048576,2097152,196608,196800,196608,196608,0,131072,131072,131072,196608,196624,196608,196624,196608,196608,128,4096,16384,16384,2048,0,4,0,0,2147483648,2097152,0,1024,32,32,0,65536,1572864,1048576,32768,32768,32768,32768,196608,196608,196608,64,64,196608,196608,131072,131072,131072,131072,268435456,268435456,64,196736,196608,196608,196608,131072,196608,196608,16384,4,4,4,2,32,32,65536,1048576,12582912,1073741824,0,0,2,8,16,96,2048,32768,0,0,131072,268435456,268435456,268435456,256,256,196608,196672,196608,196608,196608,196608,4,0,256,256,256,256,32,32,32768,32,32,32,32,32768,268435456,268435456,268435456,196608,196608,196608,196624,196608,196608,196608,16,16,16,268435456,196608,64,64,64,196608,196608,196608,196672,268435456,64,64,196608,196608,16,196608,196608,196608,268435456,64,196608,131072,262144,4194304,25165824,33554432,134217728,268435456,268435456,196608,262152,8,256,512,3072,16384,200,-1073741816,8392713,40,8392718,520,807404072,40,520,100663304,0,0,-540651761,-540651761,257589048,0,262144,0,0,3,8,256,0,4,6,4100,8388612,0,0,0,3,4,8,256,512,1024,0,2097152,0,0,-537854471,-537854471,0,100663296,0,0,1,2,0,0,0,16384,0,0,0,96,14336,0,0,0,7,8,234881024,0,0,0,8,0,0,0,0,262144,0,0,16,64,384,512,0,1,1,0,12582912,0,0,0,0,33554432,67108864,-606084144,-606084144,-606084138,0,0,28,32,768,1966080,-608174080,0,0,0,14,35056,16,64,896,24576,98304,98304,131072,262144,524288,1048576,4194304,25165824,1048576,62914560,134217728,-805306368,0,384,512,16384,65536,131072,262144,29360128,33554432,134217728,268435456,1073741824,2147483648,262144,524288,1048576,29360128,33554432,524288,1048576,16777216,33554432,134217728,268435456,1073741824,0,0,0,123856,1966080,0,64,384,16384,65536,131072,16384,65536,524288,268435456,2147483648,0,0,524288,2147483648,0,0,1,16,0,256,524288,0,0,0,25,96,128,-537854471,0,0,0,32,7404800,-545259520,0,0,0,60,0,249,64768,1048576,6291456,6291456,25165824,100663296,402653184,1073741824,96,128,1280,2048,4096,57344,6291456,57344,6291456,8388608,16777216,33554432,201326592,1342177280,2147483648,0,57344,6291456,8388608,100663296,134217728,2147483648,0,0,0,1,8,16,64,128,64,128,256,1024,131072,131072,131072,262144,524288,16777216,57344,6291456,8388608,67108864,134217728,64,256,1024,2048,4096,57344,64,256,0,24576,32768,6291456,67108864,134217728,0,1,64,256,24576,32768,4194304,32768,4194304,67108864,0,0,64,256,0,0,24576,32768,0,16384,4194304,67108864,64,16384,0,0,1,64,256,16384,4194304,67108864,0,0,0,16384,0,16384,16384,0,-470447874,-470447874,-470447874,0,0,128,0,0,8,96,2048,32768,262144,8388608,35056,1376256,-471859200,0,0,14,16,224,2048,32768,2097152,4194304,8388608,-486539264,0,96,128,2048,32768,262144,2097152,262144,2097152,8388608,33554432,536870912,1073741824,2147483648,0,1610612736,2147483648,0,0,1,524288,1048576,12582912,0,0,0,151311,264503296,2097152,8388608,33554432,1610612736,2147483648,262144,8388608,33554432,536870912,67108864,4194304,0,4194304,0,4194304,4194304,0,0,524288,8388608,536870912,1073741824,2147483648,1,4097,8388609,96,2048,32768,1073741824,2147483648,0,96,2048,2147483648,0,0,96,2048,0,0,1,12582912,0,0,0,0,1641895695,1641895695,0,0,0,249,7404800,15,87808,1835008,1639972864,0,768,5120,16384,65536,1835008,1835008,12582912,16777216,1610612736,0,3,4,8,768,4096,65536,0,0,256,512,786432,8,256,512,4096,16384,1835008,16384,1835008,12582912,1610612736,0,0,0,256,0,0,0,4,8,16,32,1,2,8,256,16384,524288,16384,524288,1048576,12582912,1610612736,0,0,0,8388608,0,0,0,524288,4194304,0,0,0,8388608,-548662288,-548662288,-548662288,0,0,256,16384,65536,520093696,-1073741824,0,0,0,16777216,0,16,32,960,4096,4980736,520093696,1073741824,0,32,896,4096,57344,1048576,6291456,8388608,16777216,100663296,134217728,268435456,2147483648,0,512,786432,4194304,33554432,134217728,268435456,0,786432,4194304,134217728,268435456,0,524288,4194304,268435456,0,0,0,0,0,4194304,4194304,-540651761,0,0,0,2,4,8,16,96,128,264503296,-805306368,0,0,0,8,256,512,19456,131072,3072,16384,131072,262144,8388608,16777216,512,1024,2048,16384,131072,262144,131072,262144,8388608,33554432,201326592,268435456,0,3,4,256,1024,2048,57344,16384,131072,8388608,33554432,134217728,268435456,0,3,256,1024,16384,131072,33554432,134217728,1073741824,2147483648,0,0,256,524288,2147483648,0,3,256,33554432,134217728,1073741824,0,1,2,33554432,1,2,134217728,1073741824,0,1,2,134217728,0,0,0,64,0,0,0,16,32,896,4096,786432,4194304,16777216,33554432,201326592,268435456,1073741824,2147483648,0,0,0,15,0,4980736,4980736,4980736,70460,70460,3478332,0,0,1008,4984832,520093696,60,4864,65536,0,0,0,12,16,32,256,512,4096,65536,0,0,0,67108864,0,0,0,12,0,256,512,65536,0,0,1024,512,131072,131072,4,16,32,65536,0,4,16,32,0,0,0,4,16,0,0,16384,67108864,0,0,1,24,96,128,256,1024],r.TOKEN=["(0)","JSONChar","JSONCharRef","JSONPredefinedCharRef","ModuleDecl","Annotation","OptionDecl","Operator","Variable","Tag","EndTag","PragmaContents","DirCommentContents","DirPIContents","CDataSectionContents","AttrTest","Wildcard","EQName","IntegerLiteral","DecimalLiteral","DoubleLiteral","PredefinedEntityRef","'\"\"'","EscapeApos","AposChar","ElementContentChar","QuotAttrContentChar","AposAttrContentChar","NCName","QName","S","CharRef","CommentContents","DocTag","DocCommentContents","EOF","'!'","'\"'","'#'","'#)'","'$$'","''''","'('","'(#'","'(:'","'(:~'","')'","'*'","'*'","','","'-->'","'.'","'/'","'/>'","':'","':)'","';'","'<!--'","'<![CDATA['","'<?'","'='","'>'","'?'","'?>'","'NaN'","'['","']'","']]>'","'after'","'all'","'allowing'","'ancestor'","'ancestor-or-self'","'and'","'any'","'append'","'array'","'as'","'ascending'","'at'","'attribute'","'base-uri'","'before'","'boundary-space'","'break'","'by'","'case'","'cast'","'castable'","'catch'","'check'","'child'","'collation'","'collection'","'comment'","'constraint'","'construction'","'contains'","'content'","'context'","'continue'","'copy'","'copy-namespaces'","'count'","'decimal-format'","'decimal-separator'","'declare'","'default'","'delete'","'descendant'","'descendant-or-self'","'descending'","'diacritics'","'different'","'digit'","'distance'","'div'","'document'","'document-node'","'element'","'else'","'empty'","'empty-sequence'","'encoding'","'end'","'entire'","'eq'","'every'","'exactly'","'except'","'exit'","'external'","'first'","'following'","'following-sibling'","'for'","'foreach'","'foreign'","'from'","'ft-option'","'ftand'","'ftnot'","'ftor'","'function'","'ge'","'greatest'","'group'","'grouping-separator'","'gt'","'idiv'","'if'","'import'","'in'","'index'","'infinity'","'inherit'","'insensitive'","'insert'","'instance'","'integrity'","'intersect'","'into'","'is'","'item'","'json'","'json-item'","'key'","'language'","'last'","'lax'","'le'","'least'","'let'","'levels'","'loop'","'lowercase'","'lt'","'minus-sign'","'mod'","'modify'","'module'","'most'","'namespace'","'namespace-node'","'ne'","'next'","'no'","'no-inherit'","'no-preserve'","'node'","'nodes'","'not'","'object'","'occurs'","'of'","'on'","'only'","'option'","'or'","'order'","'ordered'","'ordering'","'paragraph'","'paragraphs'","'parent'","'pattern-separator'","'per-mille'","'percent'","'phrase'","'position'","'preceding'","'preceding-sibling'","'preserve'","'previous'","'processing-instruction'","'relationship'","'rename'","'replace'","'return'","'returning'","'revalidation'","'same'","'satisfies'","'schema'","'schema-attribute'","'schema-element'","'score'","'self'","'sensitive'","'sentence'","'sentences'","'skip'","'sliding'","'some'","'stable'","'start'","'stemming'","'stop'","'strict'","'strip'","'structured-item'","'switch'","'text'","'then'","'thesaurus'","'times'","'to'","'treat'","'try'","'tumbling'","'type'","'typeswitch'","'union'","'unique'","'unordered'","'updating'","'uppercase'","'using'","'validate'","'value'","'variable'","'version'","'weight'","'when'","'where'","'while'","'wildcards'","'window'","'with'","'without'","'word'","'words'","'xquery'","'zero-digit'","'{'","'{{'","'|'","'}'","'}}'"]},{}],2:[function(e,t,n){"use strict";var r=e("./JSONiqTokenizer").JSONiqTokenizer,i=e("./lexer").Lexer,s="NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit".split("|"),o=s.map(function(e){return{name:"'"+e+"'",token:"keyword"}}),u=s.map(function(e){return{name:"'"+e+"'",token:"text",next:function(e){e.pop()}}}),a="constant.language",f="constant",l="comment",c="xml-pe",h="constant.buildin",p=function(e){return"'"+e+"'"},d={start:[{name:p("(#"),token:h,next:function(e){e.push("Pragma")}},{name:p("(:"),token:"comment",next:function(e){e.push("Comment")}},{name:p("(:~"),token:"comment.doc",next:function(e){e.push("CommentDoc")}},{name:p("<!--"),token:l,next:function(e){e.push("XMLComment")}},{name:p("<?"),token:c,next:function(e){e.push("PI")}},{name:p("''"),token:"string",next:function(e){e.push("AposString")}},{name:p('"'),token:"string",next:function(e){e.push("QuotString")}},{name:"Annotation",token:"support.function"},{name:"ModuleDecl",token:"keyword",next:function(e){e.push("Prefix")}},{name:"OptionDecl",token:"keyword",next:function(e){e.push("_EQName")}},{name:"AttrTest",token:"support.type"},{name:"Variable",token:"variable"},{name:p("<![CDATA["),token:a,next:function(e){e.push("CData")}},{name:"IntegerLiteral",token:f},{name:"DecimalLiteral",token:f},{name:"DoubleLiteral",token:f},{name:"Operator",token:"keyword.operator"},{name:"EQName",token:function(e){return s.indexOf(e)!==-1?"keyword":"support.function"}},{name:p("("),token:"lparen"},{name:p(")"),token:"rparen"},{name:"Tag",token:"meta.tag",next:function(e){e.push("StartTag")}},{name:p("}"),token:"text",next:function(e){e.length>1&&e.pop()}},{name:p("{"),token:"text",next:function(e){e.push("start")}}].concat(o),_EQName:[{name:"EQName",token:"text",next:function(e){e.pop()}}].concat(u),Prefix:[{name:"NCName",token:"text",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(">"),token:"meta.tag",next:function(e){e.push("TagContent")}},{name:"QName",token:"entity.other.attribute-name"},{name:p("="),token:"text"},{name:p("''"),token:"string",next:function(e){e.push("AposAttr")}},{name:p('"'),token:"string",next:function(e){e.push("QuotAttr")}},{name:p("/>"),token:"meta.tag.r",next:function(e){e.pop()}}],TagContent:[{name:"ElementContentChar",token:"text"},{name:p("<![CDATA["),token:a,next:function(e){e.push("CData")}},{name:p("<!--"),token:l,next:function(e){e.push("XMLComment")}},{name:"Tag",token:"meta.tag",next:function(e){e.push("StartTag")}},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"text"},{name:p("}}"),token:"text"},{name:p("{"),token:"text",next:function(e){e.push("start")}},{name:"EndTag",token:"meta.tag",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p("''"),token:"string",next:function(e){e.pop()}},{name:"EscapeApos",token:"constant.language.escape"},{name:"AposAttrContentChar",token:"string"},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"string"},{name:p("}}"),token:"string"},{name:p("{"),token:"text",next:function(e){e.push("start")}}],QuotAttr:[{name:p('"'),token:"string",next:function(e){e.pop()}},{name:"EscapeQuot",token:"constant.language.escape"},{name:"QuotAttrContentChar",token:"string"},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"string"},{name:p("}}"),token:"string"},{name:p("{"),token:"text",next:function(e){e.push("start")}}],Pragma:[{name:"PragmaContents",token:h},{name:p("#"),token:h},{name:p("#)"),token:h,next:function(e){e.pop()}}],Comment:[{name:"CommentContents",token:"comment"},{name:p("(:"),token:"comment",next:function(e){e.push("Comment")}},{name:p(":)"),token:"comment",next:function(e){e.pop()}}],CommentDoc:[{name:"DocCommentContents",token:"comment.doc"},{name:"DocTag",token:"comment.doc.tag"},{name:p("(:"),token:"comment.doc",next:function(e){e.push("CommentDoc")}},{name:p(":)"),token:"comment.doc",next:function(e){e.pop()}}],XMLComment:[{name:"DirCommentContents",token:l},{name:p("-->"),token:l,next:function(e){e.pop()}}],CData:[{name:"CDataSectionContents",token:a},{name:p("]]>"),token:a,next:function(e){e.pop()}}],PI:[{name:"DirPIContents",token:c},{name:p("?"),token:c},{name:p("?>"),token:c,next:function(e){e.pop()}}],AposString:[{name:p("''"),token:"string",next:function(e){e.pop()}},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:"EscapeApos",token:"constant.language.escape"},{name:"AposChar",token:"string"}],QuotString:[{name:p('"'),token:"string",next:function(e){e.pop()}},{name:"JSONPredefinedCharRef",token:"constant.language.escape"},{name:"JSONCharRef",token:"constant.language.escape"},{name:"JSONChar",token:"string"}]};n.JSONiqLexer=function(){return new i(r,d)}},{"./JSONiqTokenizer":1,"./lexer":3}],3:[function(e,t,n){"use strict";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:"WS",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i==="start"||!i?'["start"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u["parse_"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name==="WS"&&(a.push({type:"text",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name=="function"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name==="EOF")break;if(c.value==="")throw"Encountered empty string lexical rule.";a.push({type:l===null?"text":typeof l.token=="function"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:"text",value:n.substring(m)}),{tokens:a,state:JSON.stringify(["start"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}]},{},[2])(2)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml","ace/token_iterator"],function(e,t,n){"use strict";function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../behaviour/xml").XmlBehaviour,u=e("../../token_iterator").TokenIterator,f=function(){this.inherit(s,["braces","parens","string_dquotes"]),this.inherit(o),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===">"||e!=="StartTag")return;if(!f||!a(f,"meta.tag")&&(!a(f,"text")||!f.value.match("/"))){do f=o.stepBackward();while(f&&(a(f,"string")||a(f,"keyword.operator")||a(f,"entity.attribute-name")||a(f,"text")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,"meta.tag")||c!==null&&c.value.match("/"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:"></"+h+">",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/jsoniq",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/xquery/jsoniq_lexer","ace/range","ace/mode/behaviour/xquery","ace/mode/folding/cstyle","ace/anchor"],function(e,t,n){"use strict";var r=e("../worker/worker_client").WorkerClient,i=e("../lib/oop"),s=e("./text").Mode,o=e("./text_highlight_rules").TextHighlightRules,u=e("./xquery/jsoniq_lexer").JSONiqLexer,a=e("../range").Range,f=e("./behaviour/xquery").XQueryBehaviour,l=e("./folding/cstyle").FoldMode,c=e("../anchor").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit("complete",{data:{pos:n,prefix:r}}),t.$worker.on("complete",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\s+$/.test(t)?/^\s*[\}\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\s*[\}\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\s*\(:(.*):\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:"(:"+s+":)")},this.createWorker=function(e){var t=new r(["ace"],"ace/mode/xquery_worker","XQueryWorker"),n=this;return t.attachToDocument(e.getDocument()),t.on("ok",function(t){e.clearAnnotations()}),t.on("markers",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf("language_highlight_")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,"language_highlight_"+(e.type?e.type:"default"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||"warning",text:e.message};u(),n.on("change",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id="ace/mode/jsoniq"}.call(h.prototype),t.Mode=h})
\ No newline at end of file
diff --git a/js/ace/mode-jsp.js b/js/ace/mode-jsp.js
new file mode 100644
index 0000000..4eab86e
--- /dev/null
+++ b/js/ace/mode-jsp.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define("ace/mode/jsp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/java_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./java_highlight_rules").JavaHighlightRules,o=function(){i.call(this);var e="request|response|out|session|application|config|pageContext|page|Exception",t="page|include|taglib",n=[{token:"comment",regex:"<%--",push:"jsp-dcomment"},{token:"meta.tag",regex:"<%@?|<%=?|<jsp:[^>]+>",push:"jsp-start"}],r=[{token:"meta.tag",regex:"%>|<\\/jsp:[^>]+>",next:"pop"},{token:"variable.language",regex:e},{token:"keyword",regex:t}];for(var o in this.$rules)this.$rules[o].unshift.apply(this.$rules[o],n);this.embedRules(s,"jsp-",r,["start"]),this.addRules({"jsp-dcomment":[{token:"comment",regex:".*?--%>",next:"pop"}]}),this.normalizeRules()};r.inherits(o,i),t.JspHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/jsp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./jsp_highlight_rules").JspHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.$id="ace/mode/jsp"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-jsx.js b/js/ace/mode-jsx.js
new file mode 100644
index 0000000..f4d0a7d
--- /dev/null
+++ b/js/ace/mode-jsx.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),r="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},s.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+r+")"},{token:function(r){return r=="this"?"variable.language":r=="function"?"storage.type":e.hasOwnProperty(r)||n.hasOwnProperty(r)?"keyword":t.hasOwnProperty(r)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(r)?"language.support.class":"identifier"},regex:r},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(u,o),t.JsxHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";function f(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a}var r=e("../lib/oop"),i=e("./text").Mode,s=e("./jsx_highlight_rules").JsxHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode;r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/jsx"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-julia.js b/js/ace/mode-julia.js
new file mode 100644
index 0000000..785d116
--- /dev/null
+++ b/js/ace/mode-julia.js
@@ -0,0 +1 @@
+ace.define("ace/mode/julia_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{include:"#function_decl"},{include:"#function_call"},{include:"#type_decl"},{include:"#keyword"},{include:"#operator"},{include:"#number"},{include:"#string"},{include:"#comment"}],"#bracket":[{token:"keyword.bracket.julia",regex:"\\(|\\)|\\[|\\]|\\{|\\}|,"}],"#comment":[{token:["punctuation.definition.comment.julia","comment.line.number-sign.julia"],regex:"(#)(?!\\{)(.*$)"}],"#function_call":[{token:["support.function.julia","text"],regex:"([a-zA-Z0-9_]+!?)([\\w\\xff-\\u218e\\u2455-\\uffff]*\\()"}],"#function_decl":[{token:["keyword.other.julia","meta.function.julia","entity.name.function.julia","meta.function.julia","text"],regex:"(function|macro)(\\s*)([a-zA-Z0-9_\\{]+!?)([\\w\\xff-\\u218e\\u2455-\\uffff]*)([(\\\\{])"}],"#keyword":[{token:"keyword.other.julia",regex:"\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\b"},{token:"keyword.control.julia",regex:"\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\b"},{token:"storage.modifier.variable.julia",regex:"\\b(?:global|local|const|export|import|importall|using)\\b"},{token:"variable.macro.julia",regex:"@[\\w\\xff-\\u218e\\u2455-\\uffff]+\\b"}],"#number":[{token:"constant.numeric.julia",regex:"\\b0(?:x|X)[0-9a-fA-F]*|(?:\\b[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]*)?(?:im)?|\\bInf(?:32)?\\b|\\bNaN(?:32)?\\b|\\btrue\\b|\\bfalse\\b"}],"#operator":[{token:"keyword.operator.update.julia",regex:"=|:=|\\+=|-=|\\*=|/=|//=|\\.//=|\\.\\*=|\\\\=|\\.\\\\=|^=|\\.^=|%=|\\|=|&=|\\$=|<<=|>>="},{token:"keyword.operator.ternary.julia",regex:"\\?|:"},{token:"keyword.operator.boolean.julia",regex:"\\|\\||&&|!"},{token:"keyword.operator.arrow.julia",regex:"->|<-|-->"},{token:"keyword.operator.relation.julia",regex:">|<|>=|<=|==|!=|\\.>|\\.<|\\.>=|\\.>=|\\.==|\\.!=|\\.=|\\.!|<:|:>"},{token:"keyword.operator.range.julia",regex:":"},{token:"keyword.operator.shift.julia",regex:"<<|>>"},{token:"keyword.operator.bitwise.julia",regex:"\\||\\&|~"},{token:"keyword.operator.arithmetic.julia",regex:"\\+|-|\\*|\\.\\*|/|\\./|//|\\.//|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^"},{token:"keyword.operator.isa.julia",regex:"::"},{token:"keyword.operator.dots.julia",regex:"\\.(?=[a-zA-Z])|\\.\\.+"},{token:"keyword.operator.interpolation.julia",regex:"\\$#?(?=.)"},{token:["variable","keyword.operator.transposed-variable.julia"],regex:"([\\w\\xff-\\u218e\\u2455-\\uffff]+)((?:'|\\.')*\\.?')"},{token:"text",regex:"\\[|\\("},{token:["text","keyword.operator.transposed-matrix.julia"],regex:"([\\]\\)])((?:'|\\.')*\\.?')"}],"#string":[{token:"punctuation.definition.string.begin.julia",regex:"'",push:[{token:"punctuation.definition.string.end.julia",regex:"'",next:"pop"},{include:"#string_escaped_char"},{defaultToken:"string.quoted.single.julia"}]},{token:"punctuation.definition.string.begin.julia",regex:'"',push:[{token:"punctuation.definition.string.end.julia",regex:'"',next:"pop"},{include:"#string_escaped_char"},{defaultToken:"string.quoted.double.julia"}]},{token:"punctuation.definition.string.begin.julia",regex:'\\b[\\w\\xff-\\u218e\\u2455-\\uffff]+"',push:[{token:"punctuation.definition.string.end.julia",regex:'"[\\w\\xff-\\u218e\\u2455-\\uffff]*',next:"pop"},{include:"#string_custom_escaped_char"},{defaultToken:"string.quoted.custom-double.julia"}]},{token:"punctuation.definition.string.begin.julia",regex:"`",push:[{token:"punctuation.definition.string.end.julia",regex:"`",next:"pop"},{include:"#string_escaped_char"},{defaultToken:"string.quoted.backtick.julia"}]}],"#string_custom_escaped_char":[{token:"constant.character.escape.julia",regex:'\\\\"'}],"#string_escaped_char":[{token:"constant.character.escape.julia",regex:"\\\\(?:\\\\|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)"}],"#type_decl":[{token:["keyword.control.type.julia","meta.type.julia","entity.name.type.julia","entity.other.inherited-class.julia","punctuation.separator.inheritance.julia","entity.other.inherited-class.julia"],regex:"(type|immutable)(\\s+)([a-zA-Z0-9_]+)(?:(\\s*)(<:)(\\s*[.a-zA-Z0-9_:]+))?"},{token:["other.typed-variable.julia","support.type.julia"],regex:"([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)"}]},this.normalizeRules()};s.metaData={fileTypes:["jl"],firstLineMatch:"^#!.*\\bjulia\\s*$",foldingStartMarker:"^\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\b(?!.*\\bend\\b).*$",foldingStopMarker:"^\\s*(?:end)\\b.*$",name:"Julia",scopeName:"source.julia"},r.inherits(s,i),t.JuliaHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/julia",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/julia_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./julia_highlight_rules").JuliaHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.blockComment="",this.$id="ace/mode/julia"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-latex.js b/js/ace/mode-latex.js
new file mode 100644
index 0000000..e747521
--- /dev/null
+++ b/js/ace/mode-latex.js
@@ -0,0 +1 @@
+ace.define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"%.*$"},{token:["keyword","lparen","variable.parameter","rparen","lparen","storage.type","rparen"],regex:"(\\\\(?:documentclass|usepackage|input))(?:(\\[)([^\\]]*)(\\]))?({)([^}]*)(})"},{token:["keyword","lparen","variable.parameter","rparen"],regex:"(\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?"},{token:["storage.type","lparen","variable.parameter","rparen"],regex:"(\\\\(?:begin|end))({)(\\w*)(})"},{token:"storage.type",regex:"\\\\[a-zA-Z]+"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"constant.character.escape",regex:"\\\\[^a-zA-Z]?"},{token:"string",regex:"\\${1,2}",next:"equation"}],equation:[{token:"comment",regex:"%.*$"},{token:"string",regex:"\\${1,2}",next:"start"},{token:"constant.character.escape",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"error",regex:"^\\s*$",next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define("ace/mode/folding/latex",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/^\s*\\(begin)|(section|subsection|paragraph)\b|{\s*$/,this.foldingStopMarker=/^\s*\\(end)\b|^\s*}/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):i[2]?this.latexSection(e,n,i[0].length-1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.latexBlock=function(e,t,n){var r={"\\begin":1,"\\end":-1},i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!="storage.type"&&u.type!="constant.character.escape")return;var a=u.value,f=r[a],l=function(){var e=i.stepForward(),t=e.type=="lparen"?i.stepForward().value:"";return f===-1&&(i.stepBackward(),t&&i.stepBackward()),t},c=[l()],h=f===-1?i.getCurrentTokenColumn():e.getLine(t).length,p=t;i.step=f===-1?i.stepBackward:i.stepForward;while(u=i.step()){if(!u||u.type!="storage.type"&&u.type!="constant.character.escape")continue;var d=r[u.value];if(!d)continue;var v=l();if(d===f)c.unshift(v);else if(c.shift()!==v||!c.length)break}if(c.length)return;var t=i.getCurrentTokenRow();return f===-1?new s(t,e.getLine(t).length,p,h):(i.stepBackward(),new s(p,h,t,i.getCurrentTokenColumn()))},this.latexSection=function(e,t,n){var r=["\\subsection","\\section","\\begin","\\end","\\paragraph"],i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!="storage.type")return;var a=r.indexOf(u.value),f=0,l=t;while(u=i.stepForward()){if(u.type!=="storage.type")continue;var c=r.indexOf(u.value);if(c>=2){f||(l=i.getCurrentTokenRow()-1),f+=c==2?1:-1;if(f<0)break}else if(c>=a)break}f||(l=i.getCurrentTokenRow()-1);while(l>t&&!/\S/.test(e.getLine(l)))l--;return new s(t,e.getLine(t).length,l,e.getLine(l).length)}}.call(u.prototype)}),ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/latex_highlight_rules","ace/mode/folding/latex","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./latex_highlight_rules").LatexHighlightRules,o=e("./folding/latex").FoldMode,u=e("../range").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(a,i),function(){this.type="text",this.lineCommentStart="%",this.$id="ace/mode/latex"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-less.js b/js/ace/mode-less.js
new file mode 100644
index 0000000..48b2d35
--- /dev/null
+++ b/js/ace/mode-less.js
@@ -0,0 +1 @@
+ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join("|"+e[i])).split("|"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|hue|saturation|lightness|alpha|round|ceil|floor|percentage|color|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem".split("|")),n=i.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),r=i.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare|when|not|and".split("|")),o=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),u="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:u+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:u},{token:function(e){return s.hasOwnProperty(e)?"keyword":"variable"},regex:"@[a-z0-9_\\-@]*\\b"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":o.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(o,s),t.LessHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/less",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/less_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./less_highlight_rules").LessHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/css").CssBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/less"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-liquid.js b/js/ace/mode-liquid.js
new file mode 100644
index 0000000..cde4363
--- /dev/null
+++ b/js/ace/mode-liquid.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/liquid_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./html_highlight_rules").HtmlHighlightRules,o=function(){s.call(this);var e="date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split",t="capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow",n="forloop|tablerowloop",r="assign",i=this.createKeywordMapper({"variable.language":n,keyword:t,"support.function":e,"keyword.definition":r},"identifier");for(var o in this.$rules)this.$rules[o].unshift({token:"variable",regex:"{%",push:"liquid-start"},{token:"variable",regex:"{{",push:"liquid-start"});this.addRules({"liquid-start":[{token:"variable",regex:"}}",next:"pop"},{token:"variable",regex:"%}",next:"pop"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"/|\\*|\\-|\\+|=|!=|\\?\\:"},{token:"paren.lparen",regex:/[\[\({]/},{token:"paren.rparen",regex:/[\])}]/},{token:"text",regex:"\\s+"}]}),this.normalizeRules()};r.inherits(o,i),t.LiquidHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./liquid_highlight_rules").LiquidHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i),function(){this.blockComment={start:"<!--",end:"-->"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/liquid"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-lisp.js b/js/ace/mode-lisp.js
new file mode 100644
index 0000000..830ec74
--- /dev/null
+++ b/js/ace/mode-lisp.js
@@ -0,0 +1 @@
+ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="case|do|let|loop|if|else|when",t="eq|neq|and|or",n="null|nil",r="cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn",i=this.createKeywordMapper({"keyword.control":e,"keyword.operator":t,"constant.language":n,"support.function":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.lisp","text","entity.name.function.lisp"],regex:"(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:["punctuation.definition.constant.character.lisp","constant.character.lisp"],regex:"(#)((?:\\w|[\\\\+-=<>'\"&#])+)"},{token:["punctuation.definition.variable.lisp","variable.other.global.lisp","punctuation.definition.variable.lisp"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.lisp",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"}]}};r.inherits(s,i),t.LispHighlightRules=s}),ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lisp_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lisp_highlight_rules").LispHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=";",this.$id="ace/mode/lisp"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-live_script.js b/js/ace/mode-live_script.js
new file mode 100644
index 0000000..5248253
--- /dev/null
+++ b/js/ace/mode-live_script.js
@@ -0,0 +1 @@
+ace.define("ace/mode/live_script_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"punctuation.definition.comment.livescript",regex:"\\/\\*",push:[{token:"punctuation.definition.comment.livescript",regex:"\\*\\/",next:"pop"},{token:"storage.type.annotation.livescriptscript",regex:"@\\w*"},{defaultToken:"comment.block.livescript"}]},{token:["punctuation.definition.comment.livescript","comment.line.number-sign.livescript"],regex:"(#)(?!\\{)(.*$)"},{token:["variable.parameter.function.livescript","meta.inline.function.livescript","storage.type.function.livescript","meta.inline.function.livescript","variable.parameter.function.livescript","meta.inline.function.livescript","storage.type.function.livescript"],regex:"(\\s*\\!?\\(\\s*[^()]*?\\))(\\s*)(!?[~-]{1,2}>)|(\\s*\\!?)(\\(?[^()]*?\\)?)(\\s*)(<[~-]{1,2}!?)",comment:"match stuff like: a -> \u2026 "},{token:["keyword.operator.new.livescript","meta.class.instance.constructor","entity.name.type.instance.livescript"],regex:"(new)(\\s+)(\\w+(?:\\.\\w*)*)"},{token:"keyword.illegal.livescript",regex:"\\bp(?:ackage|r(?:ivate|otected)|ublic)|interface|enum|static|yield\\b"},{token:"punctuation.definition.string.begin.livescript",regex:"'''",push:[{token:"punctuation.definition.string.end.livescript",regex:"'''",next:"pop"},{defaultToken:"string.quoted.heredoc.livescript"}]},{token:"punctuation.definition.string.begin.livescript",regex:'"""',push:[{token:"punctuation.definition.string.end.livescript",regex:'"""',next:"pop"},{token:"constant.character.escape.livescript",regex:"\\\\."},{include:"#interpolated_livescript"},{defaultToken:"string.quoted.double.heredoc.livescript"}]},{token:"punctuation.definition.string.begin.livescript",regex:"``",push:[{token:"punctuation.definition.string.end.livescript",regex:"``",next:"pop"},{token:"constant.character.escape.livescript",regex:"\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{defaultToken:"string.quoted.script.livescript"}]},{token:"string.array-literal.livescript",regex:"<\\[",push:[{token:"string.array-literal.livescript",regex:"\\]>",next:"pop"},{defaultToken:"string.array-literal.livescript"}]},{token:"string.regexp.livescript",regex:"/{2}(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}"},{token:"string.regexp.livescript",regex:"/{2}$",push:[{token:"string.regexp.livescript",regex:"/{2}[imgy]{0,4}",next:"pop"},{include:"#embedded_spaced_comment"},{include:"#interpolated_livescript"},{defaultToken:"string.regexp.livescript"}]},{token:"string.regexp.livescript",regex:"/{2}",push:[{token:"string.regexp.livescript",regex:"/{2}[imgy]{0,4}",next:"pop"},{token:"constant.character.escape.livescript",regex:"\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{include:"#interpolated_livescript"},{defaultToken:"string.regexp.livescript"}]},{token:"string.regexp.livescript",regex:"/(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])"},{token:"keyword.control.livescript",regex:"\\b(?<![\\.\\$\\-])(?:t(?:h(?:is|row|en)|ry|ypeof!?|il|o)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction|rom|allthrough)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith|hen)|o(?:f|r|therwise)|return|break|let|var|loop|match|by)(?!\\-|\\s*:)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)\n				\\b(?<![\\.\\$\\-])(?:\n		        t(?:h(?:is|row|en)|ry|ypeof!?|il|o)\n		        |c(?:on(?:tinue|st)|a(?:se|tch)|lass)\n		        |i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])\n		        |d(?:e(?:fault|lete|bugger)|o)\n		        |f(?:or(?:\\s+own)?|inally|unction|rom|allthrough)\n		        |s(?:uper|witch)\n		        |e(?:lse|x(?:tends|port)|val)\n		        |a(?:nd|rguments)\n		        |n(?:ew|ot)\n		        |un(?:less|til)\n		        |w(?:hile|ith|hen)\n		        |o(?:f|r|therwise)\n		        |return|break|let|var|loop\n		        |match\n		        |by\n				)(?!\\-|\\s*:)\\b\n			"},{token:"keyword.operator.livescript",regex:"\\b(?<![\\.\\$\\-])(?:instanceof|new|delete|typeof|and|or|is|isnt|not)(?!\\-|\\s*:)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)\n				\\b(?<![\\.\\$\\-])(\n					instanceof|new|delete|typeof|and|or|is|isnt|not\n				)(?!\\-|\\s*:)\\b\n			"},{token:"keyword.operator.livescript",regex:"and=|or=|%|&|\\^|\\*|\\/|(?<![a-zA-Z$_])(?:\\-)?\\-(?!\\-?>)|\\+\\+|\\+|~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<(?!\\[)|(?<!\\])>|(?<!\\w)!(?!(?:[~\\-]+)?>)|&&|\\.\\.(?:\\.)?|\\s\\.\\s|\\?|\\||\\|\\||\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\.=|&=|\\(\\.|\\.\\)|\\^=",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)\n				and=|or=|%|&|\\^|\\*|\\/|(?<![a-zA-Z$_])(\\-)?\\-(?!\\-?>)|\\+\\+|\\+|\n				~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\n				>>>=|<>|<(?!\\[)|(?<!\\])>|(?<!\\w)!(?!([~\\-]+)?>)|&&|\\.\\.(\\.)?|\\s\\.\\s|\\?|\\||\\|\\||\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\.=|&=|\\(\\.|\\.\\)|\n				\\^=\n			"},{token:["variable.assignment.livescript","variable.assignment.livescript","variable.assignment.livescript","punctuation.separator.key-value","keyword.operator.livescript","variable.assignment.livescript"],regex:"([a-zA-Z\\$_])((?:[\\w$.-])*)(\\s*)(?!\\::)(?:(:)|(=))(\\s*)(?!(?:\\s*!?\\s*\\(.*\\))?\\s*!?[~-]{1,2}>)"},{token:"keyword.operator.livescript",regex:"(?<=\\s|^)[\\[\\{](?=.*?[\\]\\}]\\s+[:=])",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<=\\s|^)([\\[\\{])(?=.*?[\\]\\}]\\s+[:=])",push:[{token:"keyword.operator.livescript",regex:"[\\]\\}]\\s*[:=]",next:"pop"},{include:"#variable_name"},{include:"#instance_variable"},{include:"#single_quoted_string"},{include:"#double_quoted_string"},{include:"#numeric"},{defaultToken:"meta.variable.assignment.destructured.livescript"}]},{token:["meta.function.livescript","entity.name.function.livescript","entity.name.function.livescript","entity.name.function.livescript","entity.name.function.livescript","variable.parameter.function.livescript","entity.name.function.livescript","storage.type.function.livescript"],regex:"(\\s*)(?=[a-zA-Z\\$_])([a-zA-Z\\$_])((?:[\\w$.:-])*)(\\s*)([:=])((?:\\s*!?\\s*\\(.*\\))?)(\\s*)(!?[~-]{1,2}>)"},{token:"storage.type.function.livescript",regex:"!?[~-]{1,2}>"},{token:"constant.language.boolean.true.livescript",regex:"\\b(?<!\\.)(?:true|on|yes)(?!\\s*[:=])\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"\\b(?<!\\.)(true|on|yes)(?!\\s*[:=])\\b"},{token:"constant.language.boolean.false.livescript",regex:"\\b(?<!\\.)(?:false|off|no)(?!\\s*[:=])\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"\\b(?<!\\.)(false|off|no)(?!\\s*[:=])\\b"},{token:"constant.language.null.livescript",regex:"\\b(?<!\\.)(?:null|void)(?!\\s*[:=])\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"\\b(?<!\\.)(null|void)(?!\\s*[:=])\\b"},{token:"variable.language.livescript",regex:"\\b(?<!\\.)(?:super|this|extends)(?!\\s*[:=])\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"\\b(?<!\\.)(super|this|extends)(?!\\s*[:=])\\b"},{token:["storage.type.class.livescript","meta.class.livescript","entity.name.type.class.livescript","meta.class.livescript","keyword.control.inheritance.livescript","meta.class.livescript","entity.other.inherited-class.livescript"],regex:"(class\\b)(\\s+)((?:@?[a-zA-Z$_][\\w$.-]*)?)(?:(\\s+)(extends)(\\s+)(@?[a-zA-Z$_][\\w$.-]*))?"},{token:"keyword.other.livescript",regex:"\\b(?:debugger|\\\\)\\b"},{token:"support.class.livescript",regex:"\\b(?:Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|Int(?:8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(?:8|16|32|64)Array|XMLHttpRequest)\\b"},{token:"entity.name.type.object.livescript",regex:"\\bconsole\\b"},{token:"support.function.console.livescript",regex:"(?<=console\\.)(?:debug|warn|info|log|error|time(?:End|-end)|assert)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"((?<=console\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\b"},{token:"support.function.livescript",regex:"\\b(?:decodeURI(?:Component)?|encodeURI(?:Component)?|eval|parse(?:Float|Int)|require)\\b"},{token:"support.function.prelude.livescript",regex:"(?<![.-])\\b(?:map|filter|reject|partition|find|each|head|tail|last|initial|empty|values|keys|length|cons|append|join|reverse|fold(?:l|r)?1?|unfoldr|and(?:List|-list)|or(?:List|-list)|any|all|unique|sum|product|mean|compact|concat(?:Map|-map)?|maximum|minimum|scan(?:l|r)?1?|replicate|slice|apply|split(?:At|-at)?|take(?:While|-while)?|drop(?:While|-while)?|span|first|break(?:It|-it)|list(?:ToObj|-to-obj)|obj(?:ToFunc|-to-func)|pairs(?:ToObj|-to-obj)|obj(?:ToPairs|-to-pairs|ToLists|-to-lists)|zip(?:All|-all)?(?:With|-with)?|compose|curry|partial|flip|fix|sort(?:With|-with|By|-by)?|group(?:By|-by)|break(?:List|-list|Str|-str)|difference|intersection|union|average|flatten|chars|unchars|repeat|lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|round|ceiling|floor|is(?:It|-it)NaN|even|odd|gcd|lcm|disabled__id)\\b(?![.-])",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)(?<![.-])\\b(\n				map|filter|reject|partition|find|each|head|tail|last|initial|empty|\n				values|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\n				and(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\n				concat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\n				split(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\n				break(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\n				pairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\n				zip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\n				sort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\n				difference|intersection|union|average|flatten|chars|unchars|repeat|\n				lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\n				recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\n				round|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\n			)\\b(?![.-])",comment:'Generated by DOM query from http://gkz.github.com/prelude-ls/:\n	      [].slice\n	        .call(document.querySelectorAll(".nav-pills li a"))\n	        .map(function(_) {return _.innerText})\n	        .filter(function(_) {return _.trim() !== \'})\n	        .slice(2)\n	        .join("|")\n     		'},{token:"support.function.semireserved.livescript",regex:"(?<![.-])\\b(?:that|it|e)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)(?<![.-])\\b(that|it|e)\\b"},{token:"support.function.method.array.livescript",regex:"(?<=(?:\\.|\\]|\\)))(?:apply|call|concat|every|filter|for(?:Each|-each)|from|has(?:Own|-own)(?:Property|-property)|index(?:Of|-of)|is(?:Prototype|-prototype)(?:Of|-of)|join|last(?:Index|-index)(?:Of|-of)|map|of|pop|property(?:Is|-is)(?:Enumerable|-enumerable)|push|reduce(?:Right|-right)?|reverse|shift|slice|some|sort|splice|to(?:Locale|-locale)?(?:String|-string)|unshift|valueOf)\\b(?!-)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)((?<=(\\.|\\]|\\)))(\n				apply|call|concat|every|filter|for(Each|-each)|\n				from|has(Own|-own)(Property|-property)|index(Of|-of)|\n				is(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\n				map|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\n				reduce(Right|-right)?|reverse|shift|slice|some|sort|\n				splice|to(Locale|-locale)?(String|-string)|unshift|valueOf\n			))\\b(?!-) "},{token:"support.function.static.array.livescript",regex:"(?<=Array\\.)isArray\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)((?<=Array\\.)(\n				isArray\n			))\\b"},{token:"support.function.static.object.livescript",regex:"(?<=Object\\.)(?:create|ace.define(?:Propert|-propert)(?:ies|y)|freeze|get(?:Own|-own)(?:Property|-property)(?:Descriptors?|Names)|get(?:Property|-property)(?:Descriptor|Names)|getPrototypeOf|is(?:(?:Extensible|-extensible)|(?:Frozen|-frozen)|(?:Sealed|-sealed))?|keys|prevent(?:Extensions|-extensions)|seal)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)((?<=Object\\.)(\n				create|ace.define(Propert|-propert)(ies|y)|freeze|\n				get(Own|-own)(Property|-property)(Descriptors?|Names)|\n				get(Property|-property)(Descriptor|Names)|getPrototypeOf|\n				is((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\n				keys|prevent(Extensions|-extensions)|seal\n			))\\b"},{token:"support.function.static.math.livescript",regex:"(?<=Math\\.)(?:abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)((?<=Math\\.)(\n				abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\n				hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\n				tan|tanh|trunc\n			))\\b"},{token:"support.function.static.number.livescript",regex:"(?<=Number\\.)(?:is(?:Finite|Integer|NaN)|to(?:Integer|-integer))\\b",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?x)((?<=Number\\.)(\n				is(Finite|Integer|NaN)|to(Integer|-integer)\n			))\\b"},{token:"constant.language.livescript",regex:"\\b(?:Infinity|NaN|undefined)\\b"},{token:"punctuation.terminator.statement.livescript",regex:"\\;"},{token:"meta.delimiter.object.comma.livescript",regex:",[ |\\t]*"},{token:"meta.delimiter.method.period.livescript",regex:"\\."},{token:"meta.brace.curly.livescript",regex:"\\{|\\}"},{token:"meta.brace.round.livescript",regex:"\\(|\\)"},{token:"meta.brace.square.livescript",regex:"\\[|\\]\\s*"},{include:"#instance_variable"},{include:"#backslash_string"},{include:"#single_quoted_string"},{include:"#double_quoted_string"},{include:"#numeric"}],"#backslash_string":[{token:"string.quoted.single.livescript",regex:"\\\\(?:[\\\\)\\s,\\};\\]])?",push:[{token:"punctuation.definition.string.end.livescript",regex:"[\\\\)\\s,\\};\\]]",next:"pop"},{defaultToken:"string.quoted.single.livescript"}]}],"#double_quoted_string":[{token:"punctuation.definition.string.begin.livescript",regex:'"',push:[{token:"punctuation.definition.string.end.livescript",regex:'"',next:"pop"},{token:"constant.character.escape.livescript",regex:"\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{include:"#interpolated_livescript"},{defaultToken:"string.quoted.double.livescript"}]}],"#embedded_comment":[{token:["punctuation.definition.comment.livescript","comment.line.number-sign.livescript"],regex:"(?<!\\\\)(#)(.*$)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\\\)(#).*$\\n"}],"#embedded_spaced_comment":[{token:["punctuation.definition.comment.livescript","comment.line.number-sign.livescript"],regex:"(?<!\\\\)(#\\s)(.*$)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\\\)(#\\s).*$\\n"}],"#constructor_variable":[{token:"variable.other.readwrite.constructor.livescript",regex:"[a-zA-Z$_][\\w$-]*@{2}(?:[a-zA-Z$_][\\w$-]*)?"}],"#instance_variable":[{token:"variable.other.readwrite.instance.livescript",regex:"(?<!\\S)@(?:[a-zA-Z$_][\\w$-]*)?",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<!\\S)(@)([a-zA-Z$_][\\w$-]*)?"}],"#interpolated_livescript":[{todo:{token:"punctuation.section.embedded.livescript",regex:"\\#\\{",push:[{token:"punctuation.section.embedded.livescript",regex:"\\}",next:"pop"},{include:"$self"},{defaultToken:"source.livescript.embedded.source"}]}},{todo:{token:"source.livescript.embedded.source.simple",regex:"\\#",push:[{token:"source.livescript.embedded.source.simple",regex:"",next:"pop"},{include:"$self"},{defaultToken:"source.livescript.embedded.source.simple"}]}}],"#numeric":[{token:"constant.numeric.livescript",regex:"(?<![\\$@a-zA-Z_])(?:[0-9]+r[0-9_]+|(?:16r|0[xX])[0-9a-fA-F_]+|[0-9]+(?:\\.[0-9_]+)?(?:e[+\\-]?[0-9_]+)?[_a-zA-Z]*)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<![\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\.[0-9_]+)?(e[+\\-]?[0-9_]+)?)[_a-zA-Z]*)"}],"#single_quoted_string":[{token:"punctuation.definition.string.begin.livescript",regex:"'",push:[{token:"punctuation.definition.string.end.livescript",regex:"'",next:"pop"},{token:"constant.character.escape.livescript",regex:"\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"},{defaultToken:"string.quoted.single.livescript"}]}],"#variable_name":[{token:"variable.assignment.livescript",regex:"[a-zA-Z\\$_][\\w$-]*(?:\\.\\w+)*(?!\\-)"}]},this.normalizeRules()};s.metaData={comment:"LiveScript Syntax: version 1",fileTypes:["ls","Slakefile","ls.erb"],firstLineMatch:"^#!.*\\bls",foldingStartMarker:"^\\s*class\\s+\\S.*$|.*(->|=>)\\s*$|.*[\\[{]\\s*$",foldingStopMarker:"^\\s*$|^\\s*[}\\]]\\s*$",keyEquivalent:"^~C",name:"LiveScript",scopeName:"source.livescript"},r.inherits(s,i),t.LiveScriptHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/live_script",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/live_script_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./live_script_highlight_rules").LiveScriptHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id="ace/mode/live_script"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-livescript.js b/js/ace/mode-livescript.js
new file mode 100644
index 0000000..76ef153
--- /dev/null
+++ b/js/ace/mode-livescript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/livescript",["require","exports","module","ace/tokenizer","ace/mode/matching_brace_outdent","ace/range","ace/mode/text"],function(e,t,n){function u(e,t){function n(){}return n.prototype=(e.superclass=t).prototype,(e.prototype=new n).constructor=e,typeof t.extended=="function"&&t.extended(e),e}function a(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,i,s,o;r="(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*",t.Mode=i=function(t){function o(){var t;this.$tokenizer=new(e("../tokenizer").Tokenizer)(o.Rules);if(t=e("../mode/matching_brace_outdent"))this.$outdent=new t.MatchingBraceOutdent;this.$id="ace/mode/livescript"}var n,i=u((a(o,t).displayName="LiveScriptMode",o),t).prototype,s=o;return n=RegExp("(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+r+")?))\\s*$"),i.getNextLineIndent=function(e,t,r){var i,s;return i=this.$getIndent(t),s=this.$tokenizer.getLineTokens(t,e).tokens,(!s.length||s[s.length-1].type!=="comment")&&e==="start"&&n.test(t)&&(i+=r),i},i.toggleCommentLines=function(t,n,r,i){var s,o,u,a,f,l;s=/^(\s*)#/,o=new(e("../range").Range)(0,0,0,0);for(u=r;u<=i;++u)a=u,(f=s.test(l=n.getLine(a)))?l=l.replace(s,"$1"):l=l.replace(/^\s*/,"$&#"),o.end.row=o.start.row=a,o.end.column=l.length+1,n.replace(o,l);return 1-f*2},i.checkOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.checkOutdent(t,n):void 8},i.autoOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.autoOutdent(t,n):void 8},o}(e("../mode/text").Mode),s="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",o={defaultToken:"string"},i.Rules={start:[{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+s},{token:"constant.language",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+s},{token:"invalid.illegal",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+s},{token:"language.support.class",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+s},{token:"language.support.function",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+s},{token:"variable.language",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+s},{token:"identifier",regex:r+"\\s*:(?![:=])"},{token:"variable",regex:r},{token:"keyword.operator",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword.variable",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"keyword.operator",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"string.doc",regex:"'''",next:"qdoc"},{token:"string.doc",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"string.regex",regex:"//",next:"heregex"},{token:"comment.doc",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"string.regex",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[)}\\]]",next:"key"},{token:"keyword.operator",regex:"[\\^!|&%+\\-]+"},{token:"text",regex:"\\s+"}],heregex:[{token:"string.regex",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"string.regex",regex:"\\s*#{"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{defaultToken:"string.regex"}],key:[{token:"keyword.operator",regex:"[.?@!]+"},{token:"identifier",regex:r,next:"start"},{token:"text",regex:"",next:"start"}],comment:[{token:"comment.doc",regex:".*?\\*/",next:"start"},{defaultToken:"comment.doc"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},o],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},o],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},o],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},o],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},o],words:[{token:"string",regex:".*?\\]>",next:"key"},o]}})
\ No newline at end of file
diff --git a/js/ace/mode-logiql.js b/js/ace/mode-logiql.js
new file mode 100644
index 0000000..db12dd6
--- /dev/null
+++ b/js/ace/mode-logiql.js
@@ -0,0 +1 @@
+ace.define("ace/mode/logiql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.block",regex:"/\\*",push:[{token:"comment.block",regex:"\\*/",next:"pop"},{defaultToken:"comment.block"}]},{token:"comment.single",regex:"//.*"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?[fd]?"},{token:"string",regex:'"',push:[{token:"string",regex:'"',next:"pop"},{defaultToken:"string"}]},{token:"constant.language",regex:"\\b(true|false)\\b"},{token:"entity.name.type.logicblox",regex:"`[a-zA-Z_:]+(\\d|\\a)*\\b"},{token:"keyword.start",regex:"->",comment:"Constraint"},{token:"keyword.start",regex:"-->",comment:"Level 1 Constraint"},{token:"keyword.start",regex:"<-",comment:"Rule"},{token:"keyword.start",regex:"<--",comment:"Level 1 Rule"},{token:"keyword.end",regex:"\\.",comment:"Terminator"},{token:"keyword.other",regex:"!",comment:"Negation"},{token:"keyword.other",regex:",",comment:"Conjunction"},{token:"keyword.other",regex:";",comment:"Disjunction"},{token:"keyword.operator",regex:"<=|>=|!=|<|>",comment:"Equality"},{token:"keyword.other",regex:"@",comment:"Equality"},{token:"keyword.operator",regex:"\\+|-|\\*|/",comment:"Arithmetic operations"},{token:"keyword",regex:"::",comment:"Colon colon"},{token:"support.function",regex:"\\b(agg\\s*<<)",push:[{include:"$self"},{token:"support.function",regex:">>",next:"pop"}]},{token:"storage.modifier",regex:"\\b(lang:[\\w:]*)"},{token:["storage.type","text"],regex:"(export|sealed|clauses|block|alias|alias_all)(\\s*\\()(?=`)"},{token:"entity.name",regex:"[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\(|\\[))"},{token:"variable.parameter",regex:"([a-zA-Z][a-zA-Z_0-9]*|_)\\s*(?=(,|\\.|<-|->|\\)|\\]|=))"}]},this.normalizeRules()};r.inherits(s,i),t.LogiQLHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/logiql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/logiql_highlight_rules","ace/mode/folding/coffee","ace/token_iterator","ace/range","ace/mode/behaviour/cstyle","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./logiql_highlight_rules").LogiQLHighlightRules,o=e("./folding/coffee").FoldMode,u=e("../token_iterator").TokenIterator,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./matching_brace_outdent").MatchingBraceOutdent,c=function(){this.HighlightRules=s,this.foldingRules=new o,this.$outdent=new l,this.$behaviour=new f};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(/comment|string/.test(o))return r;if(s.length&&s[s.length-1].type=="comment.single")return r;var u=t.match();return/(-->|<--|<-|->|{)\s*$/.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)?!0:n!=="\n"&&n!=="\r\n"?!1:/^\s+/.test(t)?!0:!1},this.autoOutdent=function(e,t,n){if(this.$outdent.autoOutdent(t,n))return;var r=t.getLine(n),i=r.match(/^\s+/),s=r.lastIndexOf(".")+1;if(!i||!n||!s)return 0;var o=t.getLine(n+1),u=this.getMatching(t,{row:n,column:s});if(!u||u.start.row==n)return 0;s=i[0].length;var f=this.$getIndent(t.getLine(u.start.row));t.replace(new a(n+1,0,n+1,s),f)},this.getMatching=function(e,t,n){t==undefined&&(t=e.selection.lead),typeof t=="object"&&(n=t.column,t=t.row);var r=e.getTokenAt(t,n),i="keyword.start",s="keyword.end",o;if(!r)return;if(r.type==i){var f=new u(e,t,n);f.step=f.stepForward}else{if(r.type!=s)return;var f=new u(e,t,n);f.step=f.stepBackward}while(o=f.step())if(o.type==i||o.type==s)break;if(!o||o.type==r.type)return;var l=f.getCurrentTokenColumn(),t=f.getCurrentTokenRow();return new a(t,l,t,l+o.value.length)},this.$id="ace/mode/logiql"}.call(c.prototype),t.Mode=c})
\ No newline at end of file
diff --git a/js/ace/mode-lsl.js b/js/ace/mode-lsl.js
new file mode 100644
index 0000000..026000b
--- /dev/null
+++ b/js/ace/mode-lsl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/lsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function s(){var e=this.createKeywordMapper({"constant.language.float.lsl":"DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI","constant.language.integer.lsl":"ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_CHARACTER_TIME|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR","constant.language.integer.boolean.lsl":"FALSE|TRUE","constant.language.quaternion.lsl":"ZERO_ROTATION","constant.language.string.lsl":"EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED","constant.language.vector.lsl":"TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR","invalid.broken.lsl":"LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH","invalid.deprecated.lsl":"ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect","invalid.illegal.lsl":"event","invalid.unimplemented.lsl":"CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera","reserved.godmode.lsl":"llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask","reserved.log.lsl":"print","keyword.control.lsl":"do|else|for|if|jump|return|while","storage.type.lsl":"float|integer|key|list|quaternion|rotation|string|vector","support.function.lsl":"llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64","support.function.event.lsl":"at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result"},"identifier");this.$rules={start:[{token:"comment.line.double-slash.lsl",regex:"\\/\\/.*$"},{token:"comment.block.begin.lsl",regex:"\\/\\*",next:"comment"},{token:"string.quoted.double.lsl",start:'"',end:'"',next:[{token:"constant.character.escape.lsl",regex:/\\[tn"\\]/}]},{token:"constant.numeric.lsl",regex:"(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\b"},{token:"entity.name.state.lsl",regex:"\\b((state)\\s+[A-Za-z_]\\w*|default)\\b"},{token:e,regex:"\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"support.function.user-defined.lsl",regex:/\b([a-zA-Z_]\w*)(?=\(.*?\))/},{token:"keyword.operator.lsl",regex:"\\+\\+|\\-\\-|<<|>>|&&?|\\|\\|?|\\^|~|[!%<>=*+\\-\\/]=?"},{token:"invalid.illegal.keyword.operator.lsl",regex:":=?"},{token:"punctuation.operator.lsl",regex:"\\,|\\;"},{token:"paren.lparen.lsl",regex:"[\\[\\(\\{]"},{token:"paren.rparen.lsl",regex:"[\\]\\)\\}]"},{token:"text.lsl",regex:"\\s+"}],comment:[{token:"comment.block.end.lsl",regex:"\\*\\/",next:"start"},{token:"comment.block.lsl",regex:".+"}]},this.normalizeRules()}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules;r.inherits(s,i),t.LSLHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/lsl",["require","exports","module","ace/mode/lsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/text","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./lsl_highlight_rules").LSLHighlightRules,i=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("../range").Range,o=e("./text").Mode,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../lib/oop"),l=function(){this.HighlightRules=r,this.$outdent=new i,this.$behaviour=new u,this.foldingRules=new a};f.inherits(l,o),function(){this.lineCommentStart=["//"],this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==="comment.block.lsl")return r;if(e==="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/lsl"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-lua.js b/js/ace/mode-lua.js
new file mode 100644
index 0000000..cd503e7
--- /dev/null
+++ b/js/ace/mode-lua.js
@@ -0,0 +1 @@
+ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not",t="true|false|nil|_G|_VERSION",n="string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber",r="string|package|os|io|math|debug|table|coroutine",i="",s="setn|foreach|foreachi|gcinfo|log10|maxn",o=this.createKeywordMapper({keyword:e,"support.function":n,"invalid.deprecated":s,"constant.library":r,"constant.language":t,"invalid.illegal":i,"variable.language":"self"},"identifier"),u="(?:(?:[1-9]\\d*)|(?:0))",a="(?:0[xX][\\dA-Fa-f]+)",f="(?:"+u+"|"+a+")",l="(?:\\.\\d+)",c="(?:\\d+)",h="(?:(?:"+c+"?"+l+")|(?:"+c+"\\.))",p="(?:"+h+")";this.$rules={start:[{stateName:"bracketedComment",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),"comment"},regex:/\-\-\[=*\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next="","comment"},regex:/\]=*\]/,next:"start"},{defaultToken:"comment"}]},{token:"comment",regex:"\\-\\-.*$"},{stateName:"bracketedString",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),"comment"},regex:/\[=*\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next="","comment"},regex:/\]=*\]/,next:"start"},{defaultToken:"comment"}]},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:p},{token:"constant.numeric",regex:f+"\\b"},{token:o,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+|\\w+"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/,this.foldingStopMarker=/\bend\b|^\s*}|\]=*\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]=="then"&&/\belseif\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type==="keyword")return"start"}else{if(!o[2])return"start";var u=e.bgTokenizer.getState(n)||"";if(u[0]=="bracketedComment"||u[0]=="bracketedString")return"start"}}if(t!="markbeginend"||!s||i&&s)return"";var o=r.match(this.foldingStopMarker);if(o[0]==="end"){if(e.getTokenAt(n,o.index+1).type==="keyword")return"end"}else{if(o[0][0]!=="]")return"end";var u=e.bgTokenizer.getState(n-1)||"";if(u[0]=="bracketedComment"||u[0]=="bracketedString")return"end"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]==="end"&&e.getTokenAt(n,i.index+1).type==="keyword"?this.luaBlock(e,n,i.index+1):i[0][0]==="]"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={"function":1,"do":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!="keyword")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!=="keyword")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!="elseif")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lua_highlight_rules").LuaHighlightRules,o=e("./folding/lua").FoldMode,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type=="keyword"?i.value in e&&(n+=e[i.value]):i.type=="paren.lparen"?n++:i.type=="paren.rparen"&&n--}return n<0?-1:n>0?1:0}this.lineCommentStart="--",this.blockComment={start:"--[",end:"]--"};var e={"function":1,then:1,"do":1,"else":1,elseif:1,repeat:1,end:-1,until:-1},t=["else","elseif","end","until"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e=="start"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,"\n")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!="\n"&&r!="\r"&&r!="\r\n")return!1;if(n.match(/^\s*[\)\}\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type=="keyword"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,"start").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/lua_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/lua"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-luapage.js b/js/ace/mode-luapage.js
new file mode 100644
index 0000000..7ea4928
--- /dev/null
+++ b/js/ace/mode-luapage.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not",t="true|false|nil|_G|_VERSION",n="string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber",r="string|package|os|io|math|debug|table|coroutine",i="",s="setn|foreach|foreachi|gcinfo|log10|maxn",o=this.createKeywordMapper({keyword:e,"support.function":n,"invalid.deprecated":s,"constant.library":r,"constant.language":t,"invalid.illegal":i,"variable.language":"self"},"identifier"),u="(?:(?:[1-9]\\d*)|(?:0))",a="(?:0[xX][\\dA-Fa-f]+)",f="(?:"+u+"|"+a+")",l="(?:\\.\\d+)",c="(?:\\d+)",h="(?:(?:"+c+"?"+l+")|(?:"+c+"\\.))",p="(?:"+h+")";this.$rules={start:[{stateName:"bracketedComment",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),"comment"},regex:/\-\-\[=*\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next="","comment"},regex:/\]=*\]/,next:"start"},{defaultToken:"comment"}]},{token:"comment",regex:"\\-\\-.*$"},{stateName:"bracketedString",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),"comment"},regex:/\[=*\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next="","comment"},regex:/\]=*\]/,next:"start"},{defaultToken:"comment"}]},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:p},{token:"constant.numeric",regex:f+"\\b"},{token:o,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+|\\w+"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/,this.foldingStopMarker=/\bend\b|^\s*}|\]=*\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]=="then"&&/\belseif\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type==="keyword")return"start"}else{if(!o[2])return"start";var u=e.bgTokenizer.getState(n)||"";if(u[0]=="bracketedComment"||u[0]=="bracketedString")return"start"}}if(t!="markbeginend"||!s||i&&s)return"";var o=r.match(this.foldingStopMarker);if(o[0]==="end"){if(e.getTokenAt(n,o.index+1).type==="keyword")return"end"}else{if(o[0][0]!=="]")return"end";var u=e.bgTokenizer.getState(n-1)||"";if(u[0]=="bracketedComment"||u[0]=="bracketedString")return"end"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]==="end"&&e.getTokenAt(n,i.index+1).type==="keyword"?this.luaBlock(e,n,i.index+1):i[0][0]==="]"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={"function":1,"do":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!="keyword")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!=="keyword")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!="elseif")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lua_highlight_rules").LuaHighlightRules,o=e("./folding/lua").FoldMode,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type=="keyword"?i.value in e&&(n+=e[i.value]):i.type=="paren.lparen"?n++:i.type=="paren.rparen"&&n--}return n<0?-1:n>0?1:0}this.lineCommentStart="--",this.blockComment={start:"--[",end:"]--"};var e={"function":1,then:1,"do":1,"else":1,elseif:1,repeat:1,end:-1,until:-1},t=["else","elseif","end","until"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e=="start"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,"\n")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!="\n"&&r!="\r"&&r!="\r\n")return!1;if(n.match(/^\s*[\)\}\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type=="keyword"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,"start").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/lua_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/lua"}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/luapage_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/lua_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./lua_highlight_rules").LuaHighlightRules,o=function(){i.call(this);var e=[{token:"keyword",regex:"<\\%\\=?",push:"lua-start"},{token:"keyword",regex:"<\\?lua\\=?",push:"lua-start"}],t=[{token:"keyword",regex:"\\%>",next:"pop"},{token:"keyword",regex:"\\?>",next:"pop"}];this.embedRules(s,"lua-",t,["start"]);for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.normalizeRules()};r.inherits(o,i),t.LuaPageHighlightRules=o}),ace.define("ace/mode/luapage",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/lua","ace/mode/luapage_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./lua").Mode,o=e("./luapage_highlight_rules").LuaPageHighlightRules,u=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({"lua-":s})};r.inherits(u,i),function(){this.$id="ace/mode/luapage"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-lucene.js b/js/ace/mode-lucene.js
new file mode 100644
index 0000000..6b482d3
--- /dev/null
+++ b/js/ace/mode-lucene.js
@@ -0,0 +1 @@
+ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"constant.character.negation",regex:"[\\-]"},{token:"constant.character.interro",regex:"[\\?]"},{token:"constant.character.asterisk",regex:"[\\*]"},{token:"constant.character.proximity",regex:"~[0-9]+\\b"},{token:"keyword.operator",regex:"(?:AND|OR|NOT)\\b"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"keyword",regex:"[\\S]+:"},{token:"string",regex:'".*?"'},{token:"text",regex:"\\s+"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}),ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lucene_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lucene_highlight_rules").LuceneHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/lucene"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-makefile.js b/js/ace/mode-makefile.js
new file mode 100644
index 0000000..4d12335
--- /dev/null
+++ b/js/ace/mode-makefile.js
@@ -0,0 +1 @@
+ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z_][a-zA-Z0-9_]*",c="(?:(?:\\$"+l+")|(?:"+l+"=))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"constant",regex:/\\./},{token:["text","comment"],regex:/(^|\s)(#.*)$/},{token:"string",regex:'"',push:[{token:"constant.language.escape",regex:/\\(?:[$abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/},{token:"constant",regex:/\$\w+/},{token:"string",regex:'"',next:"pop"},{defaultToken:"string"}]},{regex:"<<<",token:"keyword.operator"},{stateName:"heredoc",regex:"(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:"constant",value:i[1]},{type:"text",value:i[2]},{type:"string",value:i[3]},{type:"support.class",value:i[4]},{type:"string",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^	+"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"variable.language",regex:h},{token:"variable",regex:c},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",start:"'",end:"'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/makefile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/sh_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./sh_highlight_rules"),o=function(){var e=this.createKeywordMapper({keyword:s.reservedKeywords,"support.function.builtin":s.languageConstructs,"invalid.deprecated":"debugger"},"string");this.$rules={start:[{token:"string.interpolated.backtick.makefile",regex:"`",next:"shell-start"},{token:"punctuation.definition.comment.makefile",regex:/#(?=.)/,next:"comment"},{token:["keyword.control.makefile"],regex:"^(?:\\s*\\b)(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\b)"},{token:["entity.name.function.makefile","text"],regex:"^([^\\t ]+(?:\\s[^\\t ]+)*:)(\\s*.*)"}],comment:[{token:"punctuation.definition.comment.makefile",regex:/.+\\/},{token:"punctuation.definition.comment.makefile",regex:".+",next:"start"}],"shell-start":[{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:"\\w+"},{token:"string.interpolated.backtick.makefile",regex:"`",next:"start"}]}};r.inherits(o,i),t.MakefileHighlightRules=o}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/makefile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/makefile_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./makefile_highlight_rules").MakefileHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.$indentWithTabs=!0,this.$id="ace/mode/makefile"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-markdown.js b/js/ace/mode-markdown.js
new file mode 100644
index 0000000..b9fe2f9
--- /dev/null
+++ b/js/ace/mode-markdown.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"<!--",end:"-->"},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";function c(e,t){return{token:"support.function",regex:"^\\s*```"+e+"\\s*$",push:t+"start"}}var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./css_highlight_rules").CssHighlightRules,l=function(e){return"(?:[^"+i.escapeRegExp(e)+"\\\\]|\\\\.)*"},h=function(){a.call(this),this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s*[^ #]|\s+#.)/,next:"header"},c("(?:javascript|js)","jscode-"),c("xml","xmlcode-"),c("html","htmlcode-"),c("css","csscode-"),{token:"support.function",regex:"^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+l("]")+")(\\]s*\\[)("+l("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\[)("+l("]")+")(\\]\\()"+'((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)'+'(\\s*"'+l('"')+'"\\s*)?'+"(\\))"},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},{token:"support.function",regex:"^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:[{token:"support.function",regex:"^\\s*```",next:"start"},{token:"support.function",regex:".+"}]}),this.embedRules(o,"jscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(a,"htmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(f,"csscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(u,"xmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="`"?e.bgTokenizer.getState(n)=="start"?"end":"start":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e=="="?6:e=="-"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]=="`"){if(e.bgTokenizer.getState(n)!=="start"){while(++n<o){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(u,i,n,0)}while(n-->0){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(n,r.length,u,0)}var f,c="markup.heading";if(l(n)){var p=h();while(++n<o){if(!l(n))continue;var d=h();if(d>=p)break}a=n-(!f||["=","-"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/xml","ace/mode/html","ace/mode/markdown_highlight_rules","ace/mode/folding/markdown"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript").Mode,o=e("./xml").Mode,u=e("./html").Mode,a=e("./markdown_highlight_rules").MarkdownHighlightRules,f=e("./folding/markdown").FoldMode,l=function(){this.HighlightRules=a,this.createModeDelegates({"js-":s,"xml-":o,"html-":u}),this.foldingRules=new f};r.inherits(l,i),function(){this.type="text",this.blockComment={start:"<!--",end:"-->"},this.getNextLineIndent=function(e,t,n){if(e=="listblock"){var r=/^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(t);if(!r)return"";var i=r[2];return i||(i=parseInt(r[3],10)+1+"."),r[1]+i+r[4]}return this.$getIndent(t)},this.$id="ace/mode/markdown"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-mask.js b/js/ace/mode-mask.js
new file mode 100644
index 0000000..ff8c612
--- /dev/null
+++ b/js/ace/mode-mask.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";function c(e,t){return{token:"support.function",regex:"^\\s*```"+e+"\\s*$",push:t+"start"}}var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./css_highlight_rules").CssHighlightRules,l=function(e){return"(?:[^"+i.escapeRegExp(e)+"\\\\]|\\\\.)*"},h=function(){a.call(this),this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s*[^ #]|\s+#.)/,next:"header"},c("(?:javascript|js)","jscode-"),c("xml","xmlcode-"),c("html","htmlcode-"),c("css","csscode-"),{token:"support.function",regex:"^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+l("]")+")(\\]s*\\[)("+l("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\[)("+l("]")+")(\\]\\()"+'((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)'+'(\\s*"'+l('"')+'"\\s*)?'+"(\\))"},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},{token:"support.function",regex:"^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:[{token:"support.function",regex:"^\\s*```",next:"start"},{token:"support.function",regex:".+"}]}),this.embedRules(o,"jscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(a,"htmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(f,"csscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(u,"xmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define("ace/mode/mask_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/css_highlight_rules","ace/mode/markdown_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";function N(){function t(e,t,n){var r="js-"+e+"-",i=e==="block"?["start"]:["start","no_regex"];s(o,r,t,i,n)}function n(){s(u,"css-block-",/\}/)}function r(){s(a,"md-multiline-",/("""|''')/,[])}function i(){s(f,"html-multiline-",/("""|''')/)}function s(t,n,r,i,s){var o="pop",u=i||["start"];u.length===0&&(u=null),/block|multiline/.test(n)&&(o=n+"end",e.$rules[o]=[k("empty","","start")]),e.embedRules(t,n,[k(s||w,r,o)],u,u==null?!0:!1)}this.$rules={start:[k("comment","\\/\\/.*$"),k("comment","\\/\\*",[k("comment",".*?\\*\\/","start"),k("comment",".+")]),C.string("'''"),C.string('"""'),C.string('"'),C.string("'"),C.syntax(/(markdown|md)\b/,"md-multiline","multiline"),C.syntax(/html\b/,"html-multiline","multiline"),C.syntax(/(slot|event)\b/,"js-block","block"),C.syntax(/style\b/,"css-block","block"),C.syntax(/var\b/,"js-statement","attr"),C.tag(),k(b,"[[({>]"),k(w,"[\\])};]","start"),{caseInsensitive:!0}]};var e=this;t("interpolation",/\]/,w+"."+g),t("statement",/\)|}|;/),t("block",/\}/),n(),r(),i(),this.normalizeRules()}function k(e,t,n){var r,i,s;return arguments.length===4?(r=n,i=arguments[3]):typeof n=="string"?i=n:r=n,typeof e=="function"&&(s=e,e="empty"),{token:e,regex:t,push:r,next:i,onMatch:s}}t.MaskHighlightRules=N;var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./css_highlight_rules").CssHighlightRules,a=e("./markdown_highlight_rules").MarkdownHighlightRules,f=e("./html_highlight_rules").HtmlHighlightRules,l="keyword.support.constant.language",c="support.function.markup.bold",h="keyword",p="constant.language",d="keyword.control.markup.italic",v="support.variable.class",m="keyword.operator",g="markup.italic",y="markup.bold",b="paren.lparen",w="paren.rparen",E,S,x,T;(function(){E=i.arrayToMap("log".split("|")),x=i.arrayToMap(":dualbind|:bind|:import|slot|event|style|html|markdown|md".split("|")),S=i.arrayToMap("debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import".split("|")),T=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|"))})(),r.inherits(N,s);var C={string:function(e,t){var n=k("string.start",e,[k(b+"."+g,/~\[/,C.interpolation()),k("string.end",e,"pop"),{defaultToken:"string"}],t);if(e.length===1){var r=k("string.escape","\\\\"+e);n.push.unshift(r)}return n},interpolation:function(){return[k(d,/\s*\w*\s*:/),"js-interpolation-start"]},tagHead:function(e){return k(v,e,[k(v,/[\w\-_]+/),k(b+"."+g,/~\[/,C.interpolation()),C.goUp()])},tag:function(){return{token:"tag",onMatch:function(e){return void 0!==S[e]?h:void 0!==x[e]?p:void 0!==E[e]?"support.function":void 0!==T[e.toLowerCase()]?l:c},regex:/([@\w\-_:+]+)|((^|\s)(?=\s*(\.|#)))/,push:[C.tagHead(/\./),C.tagHead(/\#/),C.expression(),C.attribute(),k(b,/[;>{]/,"pop")]}},syntax:function(e,t,n){return{token:p,regex:e,push:{attr:[t+"-start",k(m,/;/,"start")],multiline:[C.tagHead(/\./),C.tagHead(/\#/),C.attribute(),C.expression(),k(b,/[>\{]/),k(m,/;/,"start"),k(b,/'''|"""/,[t+"-start"])],block:[C.tagHead(/\./),C.tagHead(/\#/),C.attribute(),C.expression(),k(b,/\{/,[t+"-start"])]}[n]}},attribute:function(){return k(function(e){return/^x\-/.test(e)?v+"."+y:v},/[\w_-]+/,[k(m,/\s*=\s*/,[C.string('"'),C.string("'"),C.word(),C.goUp()]),C.goUp()])},expression:function(){return k(b,/\(/,["js-statement-start"])},word:function(){return k("string",/[\w-_]+/)},goUp:function(){return k("text","","pop")},goStart:function(){return k("text","","start")}}}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/mask",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mask_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./mask_highlight_rules").MaskHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/css").CssBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/mask"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-matlab.js b/js/ace/mode-matlab.js
new file mode 100644
index 0000000..5e27ac5
--- /dev/null
+++ b/js/ace/mode-matlab.js
@@ -0,0 +1 @@
+ace.define("ace/mode/matlab_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while",t="true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout",n="abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztestadapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog",r="cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse",i=this.createKeywordMapper({"storage.type":r,"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"string",regex:"'",stateName:"qstring",next:[{token:"constant.language.escape",regex:"''"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}]},{token:"text",regex:"\\s+"},{regex:"",next:"noQstring"}],noQstring:[{regex:"^\\s*%{\\s*$",token:"comment.start",push:"blockComment"},{token:"comment",regex:"%[^\r\n]*"},{token:"string",regex:'"',stateName:"qqstring",next:[{token:"constant.language.escape",regex:/\\./},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=",next:"start"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\.",next:"start"},{token:"paren.lparen",regex:"[({\\[]",next:"start"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"},{token:"text",regex:"$",next:"start"}],blockComment:[{regex:"^\\s*%{\\s*$",token:"comment.start",push:"blockComment"},{regex:"^\\s*%}\\s*$",token:"comment.end",next:"pop"},{defaultToken:"comment"}]},this.normalizeRules()};r.inherits(s,i),t.MatlabHighlightRules=s}),ace.define("ace/mode/matlab",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matlab_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./matlab_highlight_rules").MatlabHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="%",this.blockComment={start:"%{",end:"%}"},this.$id="ace/mode/matlab"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-mel.js b/js/ace/mode-mel.js
new file mode 100644
index 0000000..f725538
--- /dev/null
+++ b/js/ace/mode-mel.js
@@ -0,0 +1 @@
+ace.define("ace/mode/mel_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:"storage.type.mel",regex:"\\b(matrix|string|vector|float|int|void)\\b"},{caseInsensitive:!0,token:"support.function.mel",regex:"\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\b"},{caseInsensitive:!0,token:"support.constant.mel",regex:"\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\b"},{caseInsensitive:!0,token:"keyword.control.mel",regex:"\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\b"},{token:"keyword.other.mel",regex:"\\b(global)\\b"},{caseInsensitive:!0,token:"constant.language.mel",regex:"\\b(null|undefined)\\b"},{token:"constant.numeric.mel",regex:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{token:"punctuation.definition.string.begin.mel",regex:'"',push:[{token:"constant.character.escape.mel",regex:"\\\\."},{token:"punctuation.definition.string.end.mel",regex:'"',next:"pop"},{defaultToken:"string.quoted.double.mel"}]},{token:["variable.other.mel","punctuation.definition.variable.mel"],regex:"(\\$)([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*?\\b)"},{token:"punctuation.definition.string.begin.mel",regex:"'",push:[{token:"constant.character.escape.mel",regex:"\\\\."},{token:"punctuation.definition.string.end.mel",regex:"'",next:"pop"},{defaultToken:"string.quoted.single.mel"}]},{token:"constant.language.mel",regex:"\\b(false|true|yes|no|on|off)\\b"},{token:"punctuation.definition.comment.mel",regex:"/\\*",push:[{token:"punctuation.definition.comment.mel",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.mel"}]},{token:["comment.line.double-slash.mel","punctuation.definition.comment.mel"],regex:"(//)(.*$\\n?)"},{caseInsensitive:!0,token:"keyword.operator.mel",regex:"\\b(instanceof)\\b"},{token:"keyword.operator.symbolic.mel",regex:"[-\\!\\%\\&\\*\\+\\=\\/\\?\\:]"},{token:["meta.preprocessor.mel","punctuation.definition.preprocessor.mel"],regex:"(^[ \\t]*)((?:#)[a-zA-Z]+)"},{token:["meta.function.mel","keyword.other.mel","storage.type.mel","entity.name.function.mel","punctuation.section.function.mel"],regex:"((?:global\\s*)?proc)\\s*(\\w+\\s*\\[?\\]?\\s+|\\s+)([A-Za-z_][A-Za-z0-9_\\.]*)(\\s*(\\())",push:[{include:"$self"},{token:"punctuation.section.function.mel",regex:"\\)",next:"pop"},{defaultToken:"meta.function.mel"}]}]},this.normalizeRules()};r.inherits(s,i),t.MELHighlightRules=s}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/mel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mel_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./mel_highlight_rules").MELHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/mel"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-mushcode.js b/js/ace/mode-mushcode.js
new file mode 100644
index 0000000..1830f09
--- /dev/null
+++ b/js/ace/mode-mushcode.js
@@ -0,0 +1 @@
+ace.define("ace/mode/mushcode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="@if|@ifelse|@switch|@halt|@dolist|@create|@scent|@sound|@touch|@ataste|@osound|@ahear|@aahear|@amhear|@otouch|@otaste|@drop|@odrop|@adrop|@dropfail|@odropfail|@smell|@oemit|@emit|@pemit|@parent|@clone|@taste|whisper|page|say|pose|semipose|teach|touch|taste|smell|listen|look|move|go|home|follow|unfollow|desert|dismiss|@tel",t="=#0",n="default|edefault|eval|get_eval|get|grep|grepi|hasattr|hasattrp|hasattrval|hasattrpval|lattr|nattr|poss|udefault|ufun|u|v|uldefault|xget|zfun|band|bnand|bnot|bor|bxor|shl|shr|and|cand|cor|eq|gt|gte|lt|lte|nand|neq|nor|not|or|t|xor|con|entrances|exit|followers|home|lcon|lexits|loc|locate|lparent|lsearch|next|num|owner|parent|pmatch|rloc|rnum|room|where|zone|worn|held|carried|acos|asin|atan|ceil|cos|e|exp|fdiv|fmod|floor|log|ln|pi|power|round|sin|sqrt|tan|aposs|andflags|conn|commandssent|controls|doing|elock|findable|flags|fullname|hasflag|haspower|hastype|hidden|idle|isbaker|lock|lstats|money|who|name|nearby|obj|objflags|photo|poll|powers|pendingtext|receivedtext|restarts|restarttime|subj|shortestpath|tmoney|type|visible|cat|element|elements|extract|filter|filterbool|first|foreach|fold|grab|graball|index|insert|itemize|items|iter|last|ldelete|map|match|matchall|member|mix|munge|pick|remove|replace|rest|revwords|setdiff|setinter|setunion|shuffle|sort|sortby|splice|step|wordpos|words|add|lmath|max|mean|median|min|mul|percent|sign|stddev|sub|val|bound|abs|inc|dec|dist2d|dist3d|div|floordiv|mod|modulo|remainder|vadd|vdim|vdot|vmag|vmax|vmin|vmul|vsub|vunit|regedit|regeditall|regeditalli|regediti|regmatch|regmatchi|regrab|regraball|regraballi|regrabi|regrep|regrepi|after|alphamin|alphamax|art|before|brackets|capstr|case|caseall|center|containsfansi|comp|decompose|decrypt|delete|edit|encrypt|escape|if|ifelse|lcstr|left|lit|ljust|merge|mid|ostrlen|pos|repeat|reverse|right|rjust|scramble|secure|space|spellnum|squish|strcat|strmatch|strinsert|stripansi|stripfansi|strlen|switch|switchall|table|tr|trim|ucstr|unsafe|wrap|ctitle|cwho|channels|clock|cflags|ilev|itext|inum|convsecs|convutcsecs|convtime|ctime|etimefmt|isdaylight|mtime|secs|msecs|starttime|time|timefmt|timestring|utctime|atrlock|clone|create|cook|dig|emit|lemit|link|oemit|open|pemit|remit|set|tel|wipe|zemit|fbcreate|fbdestroy|fbwrite|fbclear|fbcopy|fbcopyto|fbclip|fbdump|fbflush|fbhset|fblist|fbstats|qentries|qentry|play|ansi|break|c|asc|die|isdbref|isint|isnum|isletters|linecoords|localize|lnum|nameshort|null|objeval|r|rand|s|setq|setr|soundex|soundslike|valid|vchart|vchart2|vlabel|@@|bakerdays|bodybuild|box|capall|catalog|children|ctrailer|darttime|debt|detailbar|exploredroom|fansitoansi|fansitoxansi|fullbar|halfbar|isdarted|isnewbie|isword|lambda|lobjects|lplayers|lthings|lvexits|lvobjects|lvplayers|lvthings|newswrap|numsuffix|playerson|playersthisweek|randomad|randword|realrandword|replacechr|second|splitamount|strlenall|text|third|tofansi|totalac|unique|getaddressroom|listpropertycomm|listpropertyres|lotowner|lotrating|lotratingcount|lotvalue|boughtproduct|companyabb|companyicon|companylist|companyname|companyowners|companyvalue|employees|invested|productlist|productname|productowners|productrating|productratingcount|productsoldat|producttype|ratedproduct|soldproduct|topproducts|totalspentonproduct|totalstock|transfermoney|uniquebuyercount|uniqueproductsbought|validcompany|deletepicture|fbsave|getpicturesecurity|haspicture|listpictures|picturesize|replacecolor|rgbtocolor|savepicture|setpicturesecurity|showpicture|piechart|piechartlabel|createmaze|drawmaze|drawwireframe",r=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":n,"constant.language":t,keyword:e},"identifier"),i="(?:r|u|ur|R|U|UR|Ur|uR)?",s="(?:(?:[1-9]\\d*)|(?:0))",o="(?:0[oO]?[0-7]+)",u="(?:0[xX][\\dA-Fa-f]+)",a="(?:0[bB][01]+)",f="(?:"+s+"|"+o+"|"+u+"|"+a+")",l="(?:[eE][+-]?\\d+)",c="(?:\\.\\d+)",h="(?:\\d+)",p="(?:(?:"+h+"?"+c+")|(?:"+h+"\\.))",d="(?:(?:"+p+"|"+h+")"+l+")",v="(?:"+d+"|"+p+")";this.$rules={start:[{token:"variable",regex:"%[0-9]{1}"},{token:"variable",regex:"%q[0-9A-Za-z]{1}"},{token:"variable",regex:"%[a-zA-Z]{1}"},{token:"variable.language",regex:"%[a-z0-9-_]+"},{token:"constant.numeric",regex:"(?:"+v+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:v},{token:"constant.numeric",regex:f+"[lL]\\b"},{token:"constant.numeric",regex:f+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|#|%|<<|>>|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.MushCodeRules=s}),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define("ace/mode/mushcode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mushcode_highlight_rules","ace/mode/folding/pythonic","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./mushcode_highlight_rules").MushCodeRules,o=e("./folding/pythonic").FoldMode,u=e("../range").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o("\\:")};r.inherits(a,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id="ace/mode/mushcode"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-mysql.js b/js/ace/mode-mysql.js
new file mode 100644
index 0000000..733d692
--- /dev/null
+++ b/js/ace/mode-mysql.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/mysql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){function i(e){var t=e.start,n=e.escape;return{token:"string.start",regex:t,next:[{token:"constant.language.escape",regex:n},{token:"string.end",next:"start",regex:t},{defaultToken:"string"}]}}var e="alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat",t="by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric",n="charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee",r=this.createKeywordMapper({"support.function":t,keyword:e,constant:"false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat","variable.language":n},"identifier",!0);this.$rules={start:[{token:"comment",regex:"(?:-- |#).*$"},i({start:'"',escape:/\\[0'"bnrtZ\\%_]?/}),i({start:"'",escape:/\\[0'"bnrtZ\\%_]?/}),s.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"constant.class",regex:"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"constant.buildin",regex:"`[^`]*`"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(s,"doc-",[s.getEndRule("start")]),this.normalizeRules()};r.inherits(u,o),t.MysqlHighlightRules=u}),ace.define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("../mode/text").Mode,s=e("./mysql_highlight_rules").MysqlHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=["--","#"],this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/mysql"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-nix.js b/js/ace/mode-nix.js
new file mode 100644
index 0000000..4429a99
--- /dev/null
+++ b/js/ace/mode-nix.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c_cpp_highlight_rules").c_cppHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/nix_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="true|false",t="with|import|if|else|then|inherit",n="let|in|rec",r=this.createKeywordMapper({"constant.language.nix":e,"keyword.control.nix":t,"keyword.declaration.nix":n},"identifier");this.$rules={start:[{token:"comment",regex:/#.*$/},{token:"comment",regex:/\/\*/,next:"comment"},{token:"constant",regex:"<[^>]+>"},{regex:"(==|!=|<=?|>=?)",token:["keyword.operator.comparison.nix"]},{regex:"((?:[+*/%-]|\\~)=)",token:["keyword.operator.assignment.arithmetic.nix"]},{regex:"=",token:"keyword.operator.assignment.nix"},{token:"string",regex:"''",next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',push:"qqstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{regex:"}",token:function(e,t,n){return n[1]&&n[1].charAt(0)=="q"?"constant.language.escape":"text"},next:"pop"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqdoc:[{token:"constant.language.escape",regex:/\$\{/,push:"start"},{token:"string",regex:"''",next:"pop"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:/\$\{/,push:"start"},{token:"string",regex:'"',next:"pop"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:/\$\{/,push:"start"},{token:"string",regex:"'",next:"pop"},{defaultToken:"string"}]},this.normalizeRules()};r.inherits(s,i),t.NixHighlightRules=s}),ace.define("ace/mode/nix",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/nix_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("./nix_highlight_rules").NixHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/nix"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-objectivec.js b/js/ace/mode-objectivec.js
new file mode 100644
index 0000000..aec5735
--- /dev/null
+++ b/js/ace/mode-objectivec.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/objectivec_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/c_cpp_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./c_cpp_highlight_rules"),o=s.c_cppHighlightRules,u=function(){var e="\\\\(?:[abefnrtv'\"?\\\\]|[0-3]\\d{1,2}|[4-7]\\d?|222|x[a-zA-Z0-9]+)",t=[{regex:"\\b_cmd\\b",token:"variable.other.selector.objc"},{regex:"\\b(?:self|super)\\b",token:"variable.language.objc"}],n=new o,r=n.getRules();this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:["storage.type.objc","punctuation.definition.storage.type.objc","entity.name.type.objc","text","entity.other.inherited-class.objc"],regex:"(@)(interface|protocol)(?!.+;)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*:\\s*)([A-Za-z]+)"},{token:["storage.type.objc"],regex:"(@end)"},{token:["storage.type.objc","entity.name.type.objc","entity.other.inherited-class.objc"],regex:"(@implementation)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*?::\\s*(?:[A-Za-z][A-Za-z0-9]*))?"},{token:"string.begin.objc",regex:'@"',next:"constant_NSString"},{token:"storage.type.objc",regex:"\\bid\\s*<",next:"protocol_list"},{token:"keyword.control.macro.objc",regex:"\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\b"},{token:["punctuation.definition.keyword.objc","keyword.control.exception.objc"],regex:"(@)(try|catch|finally|throw)\\b"},{token:["punctuation.definition.keyword.objc","keyword.other.objc"],regex:"(@)(defs|encode)\\b"},{token:["storage.type.id.objc","text"],regex:"(\\bid\\b)(\\s|\\n)?"},{token:"storage.type.objc",regex:"\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\b"},{token:["punctuation.definition.storage.type.objc","storage.type.objc"],regex:"(@)(class|protocol)\\b"},{token:["punctuation.definition.storage.type.objc","punctuation"],regex:"(@selector)(\\s*\\()",next:"selectors"},{token:["punctuation.definition.storage.modifier.objc","storage.modifier.objc"],regex:"(@)(synchronized|public|private|protected|package)\\b"},{token:"constant.language.objc",regex:"\\bYES|NO|Nil|nil\\b"},{token:"support.variable.foundation",regex:"\\bNSApp\\b"},{token:["support.function.cocoa.leopard"],regex:"(?:\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\b)"},{token:["support.function.cocoa"],regex:"(?:\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\b)"},{token:["support.class.cocoa.leopard"],regex:"(?:\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\b)"},{token:["support.class.cocoa"],regex:"(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)"},{token:["support.type.cocoa.leopard"],regex:"(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)"},{token:["support.class.quartz"],regex:"(?:\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\b)"},{token:["support.type.quartz"],regex:"(?:\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\b)"},{token:["support.type.cocoa"],regex:"(?:\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\b)"},{token:["support.constant.cocoa"],regex:"(?:\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\b)"},{token:["support.constant.notification.cocoa.leopard"],regex:"(?:\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\b)"},{token:["support.constant.notification.cocoa"],regex:"(?:\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\b)"},{token:["support.constant.cocoa.leopard"],regex:"(?:\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\b)"},{token:["support.constant.cocoa"],regex:"(?:\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\b)"},{token:"support.function.C99.c",regex:s.cFunctions},{token:n.getKeywords(),regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.section.scope.begin.objc",regex:"\\[",next:"bracketed_content"},{token:"meta.function.objc",regex:"^(?:-|\\+)\\s*"}],constant_NSString:[{token:"constant.character.escape.objc",regex:e},{token:"invalid.illegal.unknown-escape.objc",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+'},{token:"punctuation.definition.string.end",regex:'"',next:"start"}],protocol_list:[{token:"punctuation.section.scope.end.objc",regex:">",next:"start"},{token:"support.other.protocol.objc",regex:"\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\b"}],selectors:[{token:"support.function.any-method.name-of-parameter.objc",regex:"\\b(?:[a-zA-Z_:][\\w]*)+"},{token:"punctuation",regex:"\\)",next:"start"}],bracketed_content:[{token:"punctuation.section.scope.end.objc",regex:"]",next:"start"},{token:["support.function.any-method.objc"],regex:"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)",next:"start"},{token:"support.function.any-method.objc",regex:"\\w+(?::|(?=]))",next:"start"}],bracketed_strings:[{token:"punctuation.section.scope.end.objc",regex:"]",next:"start"},{token:"keyword.operator.logical.predicate.cocoa",regex:"\\b(?:AND|OR|NOT|IN)\\b"},{token:["invalid.illegal.unknown-method.objc","punctuation.separator.arguments.objc"],regex:"\\b(w+)(:)"},{regex:"\\b(?:ALL|ANY|SOME|NONE)\\b",token:"constant.language.predicate.cocoa"},{regex:"\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",token:"constant.language.predicate.cocoa"},{regex:"\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",token:"keyword.operator.comparison.predicate.cocoa"},{regex:"\\bC(?:ASEINSENSITIVE|I)\\b",token:"keyword.other.modifier.predicate.cocoa"},{regex:"\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",token:"keyword.other.predicate.cocoa"},{regex:e,token:"constant.character.escape.objc"},{regex:"\\\\.",token:"invalid.illegal.unknown-escape.objc"},{token:"string",regex:'[^"\\\\]'},{token:"punctuation.definition.string.end.objc",regex:'"',next:"predicates"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],methods:[{token:"meta.function.objc",regex:"(?=\\{|#)|;",next:"start"}]};for(var u in r)this.$rules[u]?this.$rules[u].push&&this.$rules[u].push.apply(this.$rules[u],r[u]):this.$rules[u]=r[u];this.$rules.bracketed_content=this.$rules.bracketed_content.concat(this.$rules.start,t),this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,o),t.ObjectiveCHighlightRules=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/objectivec",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/objectivec_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./objectivec_highlight_rules").ObjectiveCHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/objectivec"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-ocaml.js b/js/ace/mode-ocaml.js
new file mode 100644
index 0000000..9c5a92d
--- /dev/null
+++ b/js/ace/mode-ocaml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/ocaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with",t="true|false",n="abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier"),i="(?:(?:[1-9]\\d*)|(?:0))",s="(?:0[oO]?[0-7]+)",o="(?:0[xX][\\dA-Fa-f]+)",u="(?:0[bB][01]+)",a="(?:"+i+"|"+s+"|"+o+"|"+u+")",f="(?:[eE][+-]?\\d+)",l="(?:\\.\\d+)",c="(?:\\d+)",h="(?:(?:"+c+"?"+l+")|(?:"+c+"\\.))",p="(?:(?:"+h+"|"+c+")"+f+")",d="(?:"+p+"|"+h+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+d+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:d},{token:"constant.numeric",regex:a+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.OcamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/ocaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ocaml_highlight_rules").OcamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i);var f=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,a=/^\s*\(\*(.*)\*\)/;for(i=n;i<=r;i++)if(!a.test(t.getLine(i))){o=!1;break}var f=new u(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(a)[1]:"(*"+s+"*)")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return(!i.length||i[i.length-1].type!=="comment")&&e==="start"&&f.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/ocaml"}).call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-pascal.js b/js/ace/mode-pascal.js
new file mode 100644
index 0000000..b553439
--- /dev/null
+++ b/js/ace/mode-pascal.js
@@ -0,0 +1 @@
+ace.define("ace/mode/pascal_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:"keyword.control.pascal",regex:"\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\b"},{caseInsensitive:!0,token:["variable.pascal","text","storage.type.prototype.pascal","entity.name.function.prototype.pascal"],regex:"\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?(?=(?:\\(.*?\\))?;\\s*(?:attribute|forward|external))"},{caseInsensitive:!0,token:["variable.pascal","text","storage.type.function.pascal","entity.name.function.pascal"],regex:"\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?"},{token:"constant.numeric.pascal",regex:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"punctuation.definition.comment.pascal",regex:"--.*$",push_:[{token:"comment.line.double-dash.pascal.one",regex:"$",next:"pop"},{defaultToken:"comment.line.double-dash.pascal.one"}]},{token:"punctuation.definition.comment.pascal",regex:"//.*$",push_:[{token:"comment.line.double-slash.pascal.two",regex:"$",next:"pop"},{defaultToken:"comment.line.double-slash.pascal.two"}]},{token:"punctuation.definition.comment.pascal",regex:"\\(\\*",push:[{token:"punctuation.definition.comment.pascal",regex:"\\*\\)",next:"pop"},{defaultToken:"comment.block.pascal.one"}]},{token:"punctuation.definition.comment.pascal",regex:"\\{",push:[{token:"punctuation.definition.comment.pascal",regex:"\\}",next:"pop"},{defaultToken:"comment.block.pascal.two"}]},{token:"punctuation.definition.string.begin.pascal",regex:'"',push:[{token:"constant.character.escape.pascal",regex:"\\\\."},{token:"punctuation.definition.string.end.pascal",regex:'"',next:"pop"},{defaultToken:"string.quoted.double.pascal"}]},{token:"punctuation.definition.string.begin.pascal",regex:"'",push:[{token:"constant.character.escape.apostrophe.pascal",regex:"''"},{token:"punctuation.definition.string.end.pascal",regex:"'",next:"pop"},{defaultToken:"string.quoted.single.pascal"}]},{token:"keyword.operator",regex:"[+\\-;,/*%]|:=|="}]},this.normalizeRules()};r.inherits(s,i),t.PascalHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/pascal",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pascal_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./pascal_highlight_rules").PascalHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=["--","//"],this.blockComment=[{start:"(*",end:"*)"},{start:"{",end:"}"}],this.$id="ace/mode/pascal"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-perl.js b/js/ace/mode-perl.js
new file mode 100644
index 0000000..02a5460
--- /dev/null
+++ b/js/ace/mode-perl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars",t="ARGV|ENV|INC|SIG",n="getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do",r=this.createKeywordMapper({keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment.doc",regex:"^=(?:begin|item)\\b",next:"block_comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"%#|\\$#|\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"comment",regex:"#.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],block_comment:[{token:"comment.doc",regex:"^=cut\\b",next:"start"},{defaultToken:"comment.doc"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./perl_highlight_rules").PerlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a({start:"^=(begin|item)\\b",end:"^=(cut)\\b"})};r.inherits(f,i),function(){this.lineCommentStart="#",this.blockComment=[{start:"=begin",end:"=cut"},{start:"=item",end:"=cut"}],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/perl"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-pgsql.js b/js/ace/mode-pgsql.js
new file mode 100644
index 0000000..929cfd5
--- /dev/null
+++ b/js/ace/mode-pgsql.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars",t="ARGV|ENV|INC|SIG",n="getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do",r=this.createKeywordMapper({keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment.doc",regex:"^=(?:begin|item)\\b",next:"block_comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"%#|\\$#|\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"comment",regex:"#.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],block_comment:[{token:"comment.doc",regex:"^=cut\\b",next:"start"},{defaultToken:"comment.doc"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield",t="True|False|None|NotImplemented|Ellipsis|__debug__",n="abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern",r=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":n,"constant.language":t,keyword:e},"identifier"),i="(?:r|u|ur|R|U|UR|Ur|uR)?",s="(?:(?:[1-9]\\d*)|(?:0))",o="(?:0[oO]?[0-7]+)",u="(?:0[xX][\\dA-Fa-f]+)",a="(?:0[bB][01]+)",f="(?:"+s+"|"+o+"|"+u+"|"+a+")",l="(?:[eE][+-]?\\d+)",c="(?:\\.\\d+)",h="(?:\\d+)",p="(?:(?:"+h+"?"+c+")|(?:"+h+"\\.))",d="(?:(?:"+p+"|"+h+")"+l+")",v="(?:"+d+"|"+p+")",m="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:i+'"{3}',next:"qqstring3"},{token:"string",regex:i+'"(?=.)',next:"qqstring"},{token:"string",regex:i+"'{3}",next:"qstring3"},{token:"string",regex:i+"'(?=.)",next:"qstring"},{token:"constant.numeric",regex:"(?:"+v+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:v},{token:"constant.numeric",regex:f+"[lL]\\b"},{token:"constant.numeric",regex:f+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring3:[{token:"constant.language.escape",regex:m},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:m},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:m},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:m},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/pgsql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/perl_highlight_rules","ace/mode/python_highlight_rules","ace/mode/json_highlight_rules","ace/mode/javascript_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=e("./perl_highlight_rules").PerlHighlightRules,a=e("./python_highlight_rules").PythonHighlightRules,f=e("./json_highlight_rules").JsonHighlightRules,l=e("./javascript_highlight_rules").JavaScriptHighlightRules,c=function(){var e="abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone",t="RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|json_object_field|json_object_field_text|json_object_keys|json_out|json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|range_after|range_before|range_cmp|range_contained_by|range_contains|range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists",n=this.createKeywordMapper({"support.function":t,keyword:e},"identifier",!0),r=[{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"variable.language",regex:'".*?"'},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:n,regex:"[a-zA-Z_][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\*"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}];this.$rules={start:[{token:"comment",regex:"--.*$"},s.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"keyword.statementBegin",regex:"^[a-zA-Z]+",next:"statement"},{token:"support.buildin",regex:"^\\\\[\\S]+.*$"}],statement:[{token:"comment",regex:"--.*$"},{token:"comment",regex:"\\/\\*",next:"commentStatement"},{token:"statementEnd",regex:";",next:"start"},{token:"string",regex:"\\$perl\\$",next:"perl-start"},{token:"string",regex:"\\$python\\$",next:"python-start"},{token:"string",regex:"\\$json\\$",next:"json-start"},{token:"string",regex:"\\$(js|javascript)\\$",next:"javascript-start"},{token:"string",regex:"\\$[\\w_0-9]*\\$$",next:"dollarSql"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarStatementString"}].concat(r),dollarSql:[{token:"comment",regex:"--.*$"},{token:"comment",regex:"\\/\\*",next:"commentDollarSql"},{token:"string",regex:"^\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarSqlString"}].concat(r),comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],commentStatement:[{token:"comment",regex:".*?\\*\\/",next:"statement"},{token:"comment",regex:".+"}],commentDollarSql:[{token:"comment",regex:".*?\\*\\/",next:"dollarSql"},{token:"comment",regex:".+"}],dollarStatementString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",regex:".+"}],dollarSqlString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"dollarSql"},{token:"string",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")]),this.embedRules(u,"perl-",[{token:"string",regex:"\\$perl\\$",next:"statement"}]),this.embedRules(a,"python-",[{token:"string",regex:"\\$python\\$",next:"statement"}]),this.embedRules(f,"json-",[{token:"string",regex:"\\$json\\$",next:"statement"}]),this.embedRules(l,"javascript-",[{token:"string",regex:"\\$(js|javascript)\\$",next:"statement"}])};r.inherits(c,o),t.PgsqlHighlightRules=c}),ace.define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pgsql_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("../mode/text").Mode,s=e("./pgsql_highlight_rules").PgsqlHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){return e=="start"||e=="keyword.statementEnd"?"":this.$getIndent(t)},this.$id="ace/mode/pgsql"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-php.js b/js/ace/mode-php.js
new file mode 100644
index 0000000..d5eb140
--- /dev/null
+++ b/js/ace/mode-php.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/php_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=function(){var e=s,t=i.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),n=i.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),r=i.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),o=i.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),u=i.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),a=i.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),f=i.arrayToMap("cfunction|old_function".split("|")),l=i.arrayToMap([]);this.$rules={start:[{token:"comment",regex:/(?:#|\/\/)(?:[^?]|\?[^>])*/},e.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"'",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:["keyword","text","support.class"],regex:"\\b(new)(\\s+)(\\w+)"},{token:["support.class","keyword.operator"],regex:"\\b(\\w+)(::)"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){return n.hasOwnProperty(e)?"keyword":o.hasOwnProperty(e)?"constant.language":u.hasOwnProperty(e)?"variable.language":l.hasOwnProperty(e)?"invalid.illegal":t.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":e.match(/^(\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*|self|parent)$/)?"variable":"identifier"},regex:/[a-zA-Z_$\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/},{onMatch:function(e,t,n){e=e.substr(3);if(e[0]=="'"||e[0]=='"')e=e.slice(1,-1);return n.unshift(this.next,e),"markup.list"},regex:/<<<(?:\w+|'\w+'|"\w+")$/,next:"heredoc"},{token:"keyword.operator",regex:"::|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|=|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],heredoc:[{onMatch:function(e,t,n){return n[1]!=e?"string":(n.shift(),n.shift(),"markup.list")},regex:"^\\w+(?=;?$)",next:"start"},{token:"string",regex:".*"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],qqstring:[{token:"constant.language.escape",regex:'\\\\(?:[nrtvef\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'},{token:"variable",regex:/\$[\w]+(?:\[[\w\]+]|[=\-]>\w+)?/},{token:"variable",regex:/\$\{[^"\}]+\}?/},{token:"string",regex:'"',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string",regex:"'",next:"start"},{defaultToken:"string"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(a,o);var f=function(){u.call(this);var e=[{token:"support.php_tag",regex:"<\\?(?:php|=)?",push:"php-start"}],t=[{token:"support.php_tag",regex:"\\?>",next:"pop"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(a,"php-",t,["start"]),this.normalizeRules()};r.inherits(f,u),t.PhpHighlightRules=f,t.PhpLangHighlightRules=a}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/php_highlight_rules","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/unicode","ace/mode/html","ace/mode/javascript","ace/mode/css"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./php_highlight_rules").PhpHighlightRules,o=e("./php_highlight_rules").PhpLangHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../unicode"),p=e("./html").Mode,d=e("./javascript").Mode,v=e("./css").Mode,m=function(e){this.HighlightRules=o,this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(m,i),function(){this.tokenRe=new RegExp("^["+h.packages.L+h.packages.Mn+h.packages.Mc+h.packages.Nd+h.packages.Pc+"_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+h.packages.L+h.packages.Mn+h.packages.Mc+h.packages.Nd+h.packages.Pc+"_]|s])+","g"),this.lineCommentStart=["//","#"],this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[\:]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o!="doc-start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/php-inline"}.call(m.prototype);var g=function(e){if(e&&e.inline){var t=new m;return t.createWorker=this.createWorker,t.inlinePhp=!0,t}p.call(this),this.HighlightRules=s,this.createModeDelegates({"js-":d,"css-":v,"php-":m}),this.foldingRules.subModes["php-"]=new c};r.inherits(g,p),function(){this.createWorker=function(e){var t=new f(["ace"],"ace/mode/php_worker","PhpWorker");return t.attachToDocument(e.getDocument()),this.inlinePhp&&t.call("setOptions",[{inline:!0}]),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/php"}.call(g.prototype),t.Mode=g})
\ No newline at end of file
diff --git a/js/ace/mode-plain_text.js b/js/ace/mode-plain_text.js
new file mode 100644
index 0000000..be72ab9
--- /dev/null
+++ b/js/ace/mode-plain_text.js
@@ -0,0 +1 @@
+ace.define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){return""},this.$id="ace/mode/plain_text"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-powershell.js b/js/ace/mode-powershell.js
new file mode 100644
index 0000000..a0130b0
--- /dev/null
+++ b/js/ace/mode-powershell.js
@@ -0,0 +1 @@
+ace.define("ace/mode/powershell_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="function|if|else|elseif|switch|while|default|for|do|until|break|continue|foreach|return|filter|in|trap|throw|param|begin|process|end",t="Get-Alias|Import-Alias|New-Alias|Set-Alias|Get-AuthenticodeSignature|Set-AuthenticodeSignature|Set-Location|Get-ChildItem|Clear-Item|Get-Command|Measure-Command|Trace-Command|Add-Computer|Checkpoint-Computer|Remove-Computer|Restart-Computer|Restore-Computer|Stop-Computer|Reset-ComputerMachinePassword|Test-ComputerSecureChannel|Add-Content|Get-Content|Set-Content|Clear-Content|Get-Command|Invoke-Command|Enable-ComputerRestore|Disable-ComputerRestore|Get-ComputerRestorePoint|Test-Connection|ConvertFrom-CSV|ConvertTo-CSV|ConvertTo-Html|ConvertTo-Xml|ConvertFrom-SecureString|ConvertTo-SecureString|Copy-Item|Export-Counter|Get-Counter|Import-Counter|Get-Credential|Get-Culture|Get-ChildItem|Get-Date|Set-Date|Remove-Item|Compare-Object|Get-Event|Get-WinEvent|New-Event|Remove-Event|Unregister-Event|Wait-Event|Clear-EventLog|Get-Eventlog|Limit-EventLog|New-Eventlog|Remove-EventLog|Show-EventLog|Write-EventLog|Get-EventSubscriber|Register-EngineEvent|Register-ObjectEvent|Register-WmiEvent|Get-ExecutionPolicy|Set-ExecutionPolicy|Export-Alias|Export-Clixml|Export-Console|Export-Csv|ForEach-Object|Format-Custom|Format-List|Format-Table|Format-Wide|Export-FormatData|Get-FormatData|Get-Item|Get-ChildItem|Get-Help|Add-History|Clear-History|Get-History|Invoke-History|Get-Host|Read-Host|Write-Host|Get-HotFix|Import-Clixml|Import-Csv|Invoke-Command|Invoke-Expression|Get-Item|Invoke-Item|New-Item|Remove-Item|Set-Item|Clear-ItemProperty|Copy-ItemProperty|Get-ItemProperty|Move-ItemProperty|New-ItemProperty|Remove-ItemProperty|Rename-ItemProperty|Set-ItemProperty|Get-Job|Receive-Job|Remove-Job|Start-Job|Stop-Job|Wait-Job|Stop-Process|Update-List|Get-Location|Pop-Location|Push-Location|Set-Location|Send-MailMessage|Add-Member|Get-Member|Move-Item|Compare-Object|Group-Object|Measure-Object|New-Object|Select-Object|Sort-Object|Where-Object|Out-Default|Out-File|Out-GridView|Out-Host|Out-Null|Out-Printer|Out-String|Convert-Path|Join-Path|Resolve-Path|Split-Path|Test-Path|Get-Pfxcertificate|Pop-Location|Push-Location|Get-Process|Start-Process|Stop-Process|Wait-Process|Enable-PSBreakpoint|Disable-PSBreakpoint|Get-PSBreakpoint|Set-PSBreakpoint|Remove-PSBreakpoint|Get-PSDrive|New-PSDrive|Remove-PSDrive|Get-PSProvider|Set-PSdebug|Enter-PSSession|Exit-PSSession|Export-PSSession|Get-PSSession|Import-PSSession|New-PSSession|Remove-PSSession|Disable-PSSessionConfiguration|Enable-PSSessionConfiguration|Get-PSSessionConfiguration|Register-PSSessionConfiguration|Set-PSSessionConfiguration|Unregister-PSSessionConfiguration|New-PSSessionOption|Add-PsSnapIn|Get-PsSnapin|Remove-PSSnapin|Get-Random|Read-Host|Remove-Item|Rename-Item|Rename-ItemProperty|Select-Object|Select-XML|Send-MailMessage|Get-Service|New-Service|Restart-Service|Resume-Service|Set-Service|Start-Service|Stop-Service|Suspend-Service|Sort-Object|Start-Sleep|ConvertFrom-StringData|Select-String|Tee-Object|New-Timespan|Trace-Command|Get-Tracesource|Set-Tracesource|Start-Transaction|Complete-Transaction|Get-Transaction|Use-Transaction|Undo-Transaction|Start-Transcript|Stop-Transcript|Add-Type|Update-TypeData|Get-Uiculture|Get-Unique|Update-Formatdata|Update-Typedata|Clear-Variable|Get-Variable|New-Variable|Remove-Variable|Set-Variable|New-WebServiceProxy|Where-Object|Write-Debug|Write-Error|Write-Host|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Set-WmiInstance|Invoke-WmiMethod|Get-WmiObject|Remove-WmiObject|Connect-WSMan|Disconnect-WSMan|Test-WSMan|Invoke-WSManAction|Disable-WSManCredSSP|Enable-WSManCredSSP|Get-WSManCredSSP|New-WSManInstance|Get-WSManInstance|Set-WSManInstance|Remove-WSManInstance|Set-WSManQuickConfig|New-WSManSessionOption",n=this.createKeywordMapper({"support.function":t,keyword:e},"identifier"),r="eq|ne|ge|gt|lt|le|like|notlike|match|notmatch|replace|contains|notcontains|ieq|ine|ige|igt|ile|ilt|ilike|inotlike|imatch|inotmatch|ireplace|icontains|inotcontains|is|isnot|as|and|or|band|bor|not";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment.start",regex:"<#",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"[$](?:[Tt]rue|[Ff]alse)\\b"},{token:"constant.language",regex:"[$][Nn]ull\\b"},{token:"variable.instance",regex:"[$][a-zA-Z][a-zA-Z0-9_]*\\b"},{token:n,regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"keyword.operator",regex:"\\-(?:"+r+")"},{token:"keyword.operator",regex:"&|\\*|\\+|\\-|\\=|\\+=|\\-="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"#>",next:"start"},{token:"doc.comment.tag",regex:"^\\.\\w+"},{token:"comment",regex:"\\w+"},{token:"comment",regex:"."}]}};r.inherits(s,i),t.PowershellHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/powershell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/powershell_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./powershell_highlight_rules").PowershellHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a({start:"^\\s*(<#)",end:"^[#\\s]>\\s*$"})};r.inherits(f,i),function(){this.lineCommentStart="#",this.blockComment={start:"<#",end:"#>"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id="ace/mode/powershell"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-praat.js b/js/ace/mode-praat.js
new file mode 100644
index 0000000..3705d54
--- /dev/null
+++ b/js/ace/mode-praat.js
@@ -0,0 +1 @@
+ace.define("ace/mode/praat_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="if|then|else|elsif|elif|endif|fi|endfor|endproc|while|endwhile|repeat|until|select|plus|minus|assert",t="macintosh|windows|unix|praatVersion|praatVersion\\$pi|undefined|newline\\$|tab\\$|shellDirectory\\$|homeDirectory\\$|preferencesDirectory\\$|temporaryDirectory\\$|defaultDirectory\\$",n="clearinfo|endSendPraat",r="writeInfo|writeInfoLine|appendInfo|appendInfoLine|writeFile|writeFileLine|appendFile|appendFileLine|abs|round|floor|ceiling|min|max|imin|imax|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|exp|ln|log10|log2|sinh|cosh|tanh|arcsinh|arccosh|actanh|sigmoid|invSigmoid|erf|erfc|randomUniform|randomInteger|randomGauss|randomPoisson|lnGamma|gaussP|gaussQ|invGaussQ|chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|fisherP|fisherQ|invFisherQ|binomialP|binomialQ|invBinomialP|invBinomialQ|hertzToBark|barkToHerz|hertzToMel|melToHertz|hertzToSemitones|semitonesToHerz|erb|hertzToErb|erbToHertz|phonToDifferenceLimens|differenceLimensToPhon|beta|besselI|besselK|selected|selected\\$|numberOfSelected|variableExists|index|rindex|startsWith|endsWith|index_regex|rindex_regex|replace_regex\\$|length|extractWord\\$|extractLine\\$|extractNumber|left\\$|right\\$|mid\\$|replace\\$|beginPause|endPause|demoShow|demoWindowTitle|demoInput|demoWaitForInput|demoClicked|demoClickedIn|demoX|demoY|demoKeyPressed|demoKey\\$|demoExtraControlKeyPressed|demoShiftKeyPressed|demoCommandKeyPressed|demoOptionKeyPressed|environment\\$|chooseReadFile\\$|chooseDirectory\\$|createDirectory|fileReadable|deleteFile|selectObject|removeObject|plusObject|minusObject|runScript|exitScript|beginSendPraat|endSendPraat",i="Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|ClassificationTable|Cochleagram|Collection|Configuration|Confusion|ContingencyTable|Corpus|Correlation|Covariance|CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|Discriminant|Dissimilarity|Distance|Distributions|DurationTier|EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|FormantTier|GaussianMixture|HMM|HMM_Observation|HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|Transition|VocalTract|Weight|WordList";this.$rules={start:[{token:"string.interpolated",regex:/'((?:[a-z][a-zA-Z0-9_]*)(?:\$|#|:[0-9]+)?)'/},{token:["text","text","keyword.operator","text","keyword"],regex:/(^\s*)(?:([a-z][a-zA-Z0-9_]*\$?\s+)(=)(\s+))?(stopwatch)/},{token:["text","keyword","text","string"],regex:/(^\s*)(print(?:line)?|echo|exit|pause|sendpraat|include|execute)(\s+)(.*)/},{token:["text","keyword"],regex:"(^\\s*)("+n+")$"},{token:["text","keyword.operator","text"],regex:/(\s+)((?:\+|-|\/|\*|<|>)=?|==?|!=|%|\^|\||and|or|not)(\s+)/},{token:["text","text","keyword.operator","text","keyword","text","keyword"],regex:/(^\s*)(?:([a-z][a-zA-Z0-9_]*\$?\s+)(=)(\s+))?(?:((?:no)?warn|nocheck|noprogress)(\s+))?((?:[A-Z][^.:"]+)(?:$|(?:\.{3}|:)))/},{token:["text","keyword","text","keyword"],regex:/(^\s*)(?:(demo)?(\s+))((?:[A-Z][^.:"]+)(?:$|(?:\.{3}|:)))/},{token:["text","keyword","text","keyword"],regex:/^(\s*)(?:(demo)(\s+))?(10|12|14|16|24)$/},{token:["text","support.function","text"],regex:/(\s*)(do\$?)(\s*:\s*|\s*\(\s*)/},{token:"entity.name.type",regex:"("+i+")"},{token:"variable.language",regex:"("+t+")"},{token:["support.function","text"],regex:"((?:"+r+")\\$?)(\\s*(?::|\\())"},{token:"keyword",regex:/(\bfor\b)/,next:"for"},{token:"keyword",regex:"(\\b(?:"+e+")\\b)"},{token:"string",regex:/"[^"]*"/},{token:"string",regex:/"[^"]*$/,next:"brokenstring"},{token:["text","keyword","text","entity.name.section"],regex:/(^\s*)(\bform\b)(\s+)(.*)/,next:"form"},{token:"constant.numeric",regex:/\b[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["keyword","text","entity.name.function"],regex:/(procedure)(\s+)(\S+)/},{token:["entity.name.function","text"],regex:/(@\S+)(:|\s*\()/},{token:["text","keyword","text","entity.name.function"],regex:/(^\s*)(call)(\s+)(\S+)/},{token:"comment",regex:/(^\s*#|;).*$/},{token:"text",regex:/\s+/}],form:[{token:["keyword","text","constant.numeric"],regex:/((?:optionmenu|choice)\s+)(\S+:\s+)([0-9]+)/},{token:["keyword","constant.numeric"],regex:/((?:option|button)\s+)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b)/},{token:["keyword","string"],regex:/((?:option|button)\s+)(.*)/},{token:["keyword","text","string"],regex:/((?:sentence|text)\s+)(\S+\s*)(.*)/},{token:["keyword","text","string","invalid.illegal"],regex:/(word\s+)(\S+\s*)(\S+)?(\s.*)?/},{token:["keyword","text","constant.language"],regex:/(boolean\s+)(\S+\s*)(0|1|"?(?:yes|no)"?)/},{token:["keyword","text","constant.numeric"],regex:/((?:real|natural|positive|integer)\s+)(\S+\s*)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b)/},{token:["keyword","string"],regex:/(comment\s+)(.*)/},{token:"keyword",regex:"endform",next:"start"}],"for":[{token:["keyword","text","constant.numeric","text"],regex:/(from|to)(\s+)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?)(\s*)/},{token:["keyword","text"],regex:/(from|to)(\s+\S+\s*)/},{token:"text",regex:/$/,next:"start"}],brokenstring:[{token:["text","string"],regex:/(\s*\.{3})([^"]*)/},{token:"string",regex:/"/,next:"start"}]}};r.inherits(s,i),t.PraatHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/praat",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/praat_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./praat_highlight_rules").PraatHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(f,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/praat"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-prolog.js b/js/ace/mode-prolog.js
new file mode 100644
index 0000000..617ef6b
--- /dev/null
+++ b/js/ace/mode-prolog.js
@@ -0,0 +1 @@
+ace.define("ace/mode/prolog_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{include:"#comment"},{include:"#basic_fact"},{include:"#rule"},{include:"#directive"},{include:"#fact"}],"#atom":[{token:"constant.other.atom.prolog",regex:"\\b[a-z][a-zA-Z0-9_]*\\b"},{token:"constant.numeric.prolog",regex:"-?\\d+(?:\\.\\d+)?"},{include:"#string"}],"#basic_elem":[{include:"#comment"},{include:"#statement"},{include:"#constants"},{include:"#operators"},{include:"#builtins"},{include:"#list"},{include:"#atom"},{include:"#variable"}],"#basic_fact":[{token:["entity.name.function.fact.basic.prolog","punctuation.end.fact.basic.prolog"],regex:"([a-z]\\w*)(\\.)"}],"#builtins":[{token:"support.function.builtin.prolog",regex:"\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\b"}],"#comment":[{token:["punctuation.definition.comment.prolog","comment.line.percentage.prolog"],regex:"(%)(.*$)"},{token:"punctuation.definition.comment.prolog",regex:"/\\*",push:[{token:"punctuation.definition.comment.prolog",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.prolog"}]}],"#constants":[{token:"constant.language.prolog",regex:"\\b(?:true|false|yes|no)\\b"}],"#directive":[{token:"keyword.operator.directive.prolog",regex:":-",push:[{token:"meta.directive.prolog",regex:"\\.",next:"pop"},{include:"#comment"},{include:"#statement"},{defaultToken:"meta.directive.prolog"}]}],"#expr":[{include:"#comments"},{token:"meta.expression.prolog",regex:"\\(",push:[{token:"meta.expression.prolog",regex:"\\)",next:"pop"},{include:"#expr"},{defaultToken:"meta.expression.prolog"}]},{token:"keyword.control.cutoff.prolog",regex:"!"},{token:"punctuation.control.and.prolog",regex:","},{token:"punctuation.control.or.prolog",regex:";"},{include:"#basic_elem"}],"#fact":[{token:["entity.name.function.fact.prolog","punctuation.begin.fact.parameters.prolog"],regex:"([a-z]\\w*)(\\()(?!.*:-)",push:[{token:["punctuation.end.fact.parameters.prolog","punctuation.end.fact.prolog"],regex:"(\\))(\\.?)",next:"pop"},{include:"#parameter"},{defaultToken:"meta.fact.prolog"}]}],"#list":[{token:"punctuation.begin.list.prolog",regex:"\\[(?=.*\\])",push:[{token:"punctuation.end.list.prolog",regex:"\\]",next:"pop"},{include:"#comment"},{token:"punctuation.separator.list.prolog",regex:","},{token:"punctuation.concat.list.prolog",regex:"\\|",push:[{token:"meta.list.concat.prolog",regex:"(?=\\s*\\])",next:"pop"},{include:"#basic_elem"},{defaultToken:"meta.list.concat.prolog"}]},{include:"#basic_elem"},{defaultToken:"meta.list.prolog"}]}],"#operators":[{token:"keyword.operator.prolog",regex:"\\\\\\+|\\bnot\\b|\\bis\\b|->|[><]|[><\\\\:=]?=|(?:=\\\\|\\\\=)="}],"#parameter":[{token:"variable.language.anonymous.prolog",regex:"\\b_\\b"},{token:"variable.parameter.prolog",regex:"\\b[A-Z_]\\w*\\b"},{token:"punctuation.separator.parameters.prolog",regex:","},{include:"#basic_elem"},{token:"text",regex:"[^\\s]"}],"#rule":[{token:"meta.rule.prolog",regex:"(?=[a-z]\\w*.*:-)",push:[{token:"punctuation.rule.end.prolog",regex:"\\.",next:"pop"},{token:"meta.rule.signature.prolog",regex:"(?=[a-z]\\w*.*:-)",push:[{token:"meta.rule.signature.prolog",regex:"(?=:-)",next:"pop"},{token:"entity.name.function.rule.prolog",regex:"[a-z]\\w*(?=\\(|\\s*:-)"},{token:"punctuation.rule.parameters.begin.prolog",regex:"\\(",push:[{token:"punctuation.rule.parameters.end.prolog",regex:"\\)",next:"pop"},{include:"#parameter"},{defaultToken:"meta.rule.parameters.prolog"}]},{defaultToken:"meta.rule.signature.prolog"}]},{token:"keyword.operator.definition.prolog",regex:":-",push:[{token:"meta.rule.definition.prolog",regex:"(?=\\.)",next:"pop"},{include:"#comment"},{include:"#expr"},{defaultToken:"meta.rule.definition.prolog"}]},{defaultToken:"meta.rule.prolog"}]}],"#statement":[{token:"meta.statement.prolog",regex:"(?=[a-z]\\w*\\()",push:[{token:"punctuation.end.statement.parameters.prolog",regex:"\\)",next:"pop"},{include:"#builtins"},{include:"#atom"},{token:"punctuation.begin.statement.parameters.prolog",regex:"\\(",push:[{token:"meta.statement.parameters.prolog",regex:"(?=\\))",next:"pop"},{token:"punctuation.separator.statement.prolog",regex:","},{include:"#basic_elem"},{defaultToken:"meta.statement.parameters.prolog"}]},{defaultToken:"meta.statement.prolog"}]}],"#string":[{token:"punctuation.definition.string.begin.prolog",regex:"'",push:[{token:"punctuation.definition.string.end.prolog",regex:"'",next:"pop"},{token:"constant.character.escape.prolog",regex:"\\\\."},{token:"constant.character.escape.quote.prolog",regex:"''"},{defaultToken:"string.quoted.single.prolog"}]}],"#variable":[{token:"variable.language.anonymous.prolog",regex:"\\b_\\b"},{token:"variable.other.prolog",regex:"\\b[A-Z_][a-zA-Z0-9_]*\\b"}]},this.normalizeRules()};s.metaData={fileTypes:["plg","prolog"],foldingStartMarker:"(%\\s*region \\w*)|([a-z]\\w*.*:- ?)",foldingStopMarker:"(%\\s*end(\\s*region)?)|(?=\\.)",keyEquivalent:"^~P",name:"Prolog",scopeName:"source.prolog"},r.inherits(s,i),t.PrologHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/prolog",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/prolog_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./prolog_highlight_rules").PrologHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="%",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/prolog"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-properties.js b/js/ace/mode-properties.js
new file mode 100644
index 0000000..bccfa47
--- /dev/null
+++ b/js/ace/mode-properties.js
@@ -0,0 +1 @@
+ace.define("ace/mode/properties_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=/\\u[0-9a-fA-F]{4}|\\/;this.$rules={start:[{token:"comment",regex:/[!#].*$/},{token:"keyword",regex:/[=:]$/},{token:"keyword",regex:/[=:]/,next:"value"},{token:"constant.language.escape",regex:e},{defaultToken:"variable"}],value:[{regex:/\\$/,token:"string",next:"value"},{regex:/$/,token:"string",next:"start"},{token:"constant.language.escape",regex:e},{defaultToken:"string"}]}};r.inherits(s,i),t.PropertiesHighlightRules=s}),ace.define("ace/mode/properties",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/properties_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./properties_highlight_rules").PropertiesHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/properties"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-protobuf.js b/js/ace/mode-protobuf.js
new file mode 100644
index 0000000..cf0b29a
--- /dev/null
+++ b/js/ace/mode-protobuf.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t",n="const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE|nullptr",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Zd\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment",regex:"//",next:"singleLineComment"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{defaultToken:"string"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{defaultToken:"string"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./c_cpp_highlight_rules").c_cppHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/protobuf_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes",t="message|required|optional|repeated|package|import|option|enum",n=this.createKeywordMapper({"keyword.declaration.protobuf":t,"support.type":e},"identifier");this.$rules={start:[{token:"comment",regex:/\/\/.*$/},{token:"comment",regex:/\/\*/,next:"comment"},{token:"constant",regex:"<[^>]+>"},{regex:"=",token:"keyword.operator.assignment.protobuf"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:n,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.normalizeRules()};r.inherits(s,i),t.ProtobufHighlightRules=s}),ace.define("ace/mode/protobuf",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/protobuf_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("./protobuf_highlight_rules").ProtobufHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){i.call(this),this.foldingRules=new o,this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/protobuf"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-python.js b/js/ace/mode-python.js
new file mode 100644
index 0000000..f80eb0e
--- /dev/null
+++ b/js/ace/mode-python.js
@@ -0,0 +1 @@
+ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield",t="True|False|None|NotImplemented|Ellipsis|__debug__",n="abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern",r=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":n,"constant.language":t,keyword:e},"identifier"),i="(?:r|u|ur|R|U|UR|Ur|uR)?",s="(?:(?:[1-9]\\d*)|(?:0))",o="(?:0[oO]?[0-7]+)",u="(?:0[xX][\\dA-Fa-f]+)",a="(?:0[bB][01]+)",f="(?:"+s+"|"+o+"|"+u+"|"+a+")",l="(?:[eE][+-]?\\d+)",c="(?:\\.\\d+)",h="(?:\\d+)",p="(?:(?:"+h+"?"+c+")|(?:"+h+"\\.))",d="(?:(?:"+p+"|"+h+")"+l+")",v="(?:"+d+"|"+p+")",m="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:i+'"{3}',next:"qqstring3"},{token:"string",regex:i+'"(?=.)',next:"qqstring"},{token:"string",regex:i+"'{3}",next:"qstring3"},{token:"string",regex:i+"'(?=.)",next:"qstring"},{token:"constant.numeric",regex:"(?:"+v+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:v},{token:"constant.numeric",regex:f+"[lL]\\b"},{token:"constant.numeric",regex:f+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring3:[{token:"constant.language.escape",regex:m},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:m},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:m},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:m},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./python_highlight_rules").PythonHighlightRules,o=e("./folding/pythonic").FoldMode,u=e("../range").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o("\\:")};r.inherits(a,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id="ace/mode/python"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-r.js b/js/ace/mode-r.js
new file mode 100644
index 0000000..89e73b3
--- /dev/null
+++ b/js/ace/mode-r.js
@@ -0,0 +1 @@
+ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(e){e||(e="text"),this.$rules={start:[{token:"comment",regex:"%.*$"},{token:e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:e,regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell."+e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell."+e,regex:"\\s+"},{token:"nospell."+e,regex:"\\w+"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./tex_highlight_rules").TexHighlightRules,u=function(){var e=i.arrayToMap("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass".split("|")),t=i.arrayToMap("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_".split("|"));this.$rules={start:[{token:"comment.sectionhead",regex:"#+(?!').*(?:----|====|####)\\s*$"},{token:"comment",regex:"#+'",next:"rd-start"},{token:"comment",regex:"#.*$"},{token:"string",regex:'["]',next:"qqstring"},{token:"string",regex:"[']",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+[Li]?\\b"},{token:"constant.numeric",regex:"\\d+L\\b"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.numeric",regex:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.language.boolean",regex:"(?:TRUE|FALSE|T|F)\\b"},{token:"identifier",regex:"`.*?`"},{onMatch:function(n){return e[n]?"keyword":t[n]?"constant.language":n=="..."||n.match(/^\.\.\d+$/)?"variable.language":"identifier"},regex:"[a-zA-Z.][a-zA-Z0-9._]*\\b"},{token:"keyword.operator",regex:"%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"},{token:"keyword.operator",regex:"%.*?%"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]};var n=(new o("comment")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=".virtual-comment";this.addRules(n,"rd-"),this.$rules["rd-start"].unshift({token:"text",regex:"^",next:"start"}),this.$rules["rd-start"].unshift({token:"keyword",regex:"@(?!@)[^ ]*"}),this.$rules["rd-start"].unshift({token:"comment",regex:"@@"}),this.$rules["rd-start"].push({token:"comment",regex:"[^%\\\\[({\\])}]+"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/r_highlight_rules","ace/mode/matching_brace_outdent","ace/unicode"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/oop"),s=e("./text").Mode,o=e("./text_highlight_rules").TextHighlightRules,u=e("./r_highlight_rules").RHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,f=e("../unicode"),l=function(){this.HighlightRules=u,this.$outdent=new a};i.inherits(l,s),function(){this.lineCommentStart="#",this.$id="ace/mode/r"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-rdoc.js b/js/ace/mode-rdoc.js
new file mode 100644
index 0000000..d2b4645
--- /dev/null
+++ b/js/ace/mode-rdoc.js
@@ -0,0 +1 @@
+ace.define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"%.*$"},{token:["keyword","lparen","variable.parameter","rparen","lparen","storage.type","rparen"],regex:"(\\\\(?:documentclass|usepackage|input))(?:(\\[)([^\\]]*)(\\]))?({)([^}]*)(})"},{token:["keyword","lparen","variable.parameter","rparen"],regex:"(\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?"},{token:["storage.type","lparen","variable.parameter","rparen"],regex:"(\\\\(?:begin|end))({)(\\w*)(})"},{token:"storage.type",regex:"\\\\[a-zA-Z]+"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"constant.character.escape",regex:"\\\\[^a-zA-Z]?"},{token:"string",regex:"\\${1,2}",next:"equation"}],equation:[{token:"comment",regex:"%.*$"},{token:"string",regex:"\\${1,2}",next:"start"},{token:"constant.character.escape",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"error",regex:"^\\s*$",next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define("ace/mode/rdoc_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/latex_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./latex_highlight_rules"),u=function(){this.$rules={start:[{token:"comment",regex:"%.*$"},{token:"text",regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell.text",regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell.text",regex:"\\s+"},{token:"nospell.text",regex:"\\w+"}]}};r.inherits(u,s),t.RDocHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/rdoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/rdoc_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=e("./rdoc_highlight_rules").RDocHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=function(e){this.HighlightRules=o,this.$outdent=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id="ace/mode/rdoc"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-rhtml.js b/js/ace/mode-rhtml.js
new file mode 100644
index 0000000..1396031
--- /dev/null
+++ b/js/ace/mode-rhtml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(e){e||(e="text"),this.$rules={start:[{token:"comment",regex:"%.*$"},{token:e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:e,regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell."+e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell."+e,regex:"\\s+"},{token:"nospell."+e,regex:"\\w+"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./tex_highlight_rules").TexHighlightRules,u=function(){var e=i.arrayToMap("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass".split("|")),t=i.arrayToMap("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_".split("|"));this.$rules={start:[{token:"comment.sectionhead",regex:"#+(?!').*(?:----|====|####)\\s*$"},{token:"comment",regex:"#+'",next:"rd-start"},{token:"comment",regex:"#.*$"},{token:"string",regex:'["]',next:"qqstring"},{token:"string",regex:"[']",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+[Li]?\\b"},{token:"constant.numeric",regex:"\\d+L\\b"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.numeric",regex:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.language.boolean",regex:"(?:TRUE|FALSE|T|F)\\b"},{token:"identifier",regex:"`.*?`"},{onMatch:function(n){return e[n]?"keyword":t[n]?"constant.language":n=="..."||n.match(/^\.\.\d+$/)?"variable.language":"identifier"},regex:"[a-zA-Z.][a-zA-Z0-9._]*\\b"},{token:"keyword.operator",regex:"%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"},{token:"keyword.operator",regex:"%.*?%"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]};var n=(new o("comment")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=".virtual-comment";this.addRules(n,"rd-"),this.$rules["rd-start"].unshift({token:"text",regex:"^",next:"start"}),this.$rules["rd-start"].unshift({token:"keyword",regex:"@(?!@)[^ ]*"}),this.$rules["rd-start"].unshift({token:"comment",regex:"@@"}),this.$rules["rd-start"].push({token:"comment",regex:"[^%\\\\[({\\])}]+"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define("ace/mode/rhtml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/r_highlight_rules","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./r_highlight_rules").RHighlightRules,s=e("./html_highlight_rules").HtmlHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){s.call(this),this.$rules.start.unshift({token:"support.function.codebegin",regex:"^<!--\\s*begin.rcode\\s*(?:.*)",next:"r-start"}),this.embedRules(i,"r-",[{token:"support.function.codeend",regex:"^\\s*end.rcode\\s*-->",next:"start"}],["start"]),this.normalizeRules()};r.inherits(u,o),t.RHtmlHighlightRules=u}),ace.define("ace/mode/rhtml",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/rhtml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./rhtml_highlight_rules").RHtmlHighlightRules,o=function(e,t){i.call(this),this.$session=t,this.HighlightRules=s};r.inherits(o,i),function(){this.insertChunkInfo={value:"<!--begin.rcode\n\nend.rcode-->\n",position:{row:0,column:15}},this.getLanguageMode=function(e){return this.$session.getState(e.row).match(/^r-/)?"R":"HTML"},this.$id="ace/mode/rhtml"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-ruby.js b/js/ace/mode-ruby.js
new file mode 100644
index 0000000..7c4e2d9
--- /dev/null
+++ b/js/ace/mode-ruby.js
@@ -0,0 +1 @@
+ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},o=t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},u=t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},a=t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},f=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},l=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},c=function(){var e="abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many",t="alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield",n="true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING",r="$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self",i=this.$keywords=this.createKeywordMapper({keyword:t,"constant.language":n,"variable.language":r,"support.function":e,"invalid.deprecated":"debugger"},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",regex:"^=begin(?:$|\\s.*$)",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},[{regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren.lparen";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.start",regex:/"/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/"/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/`/,push:[{token:"constant.language.escape",regex:/\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/},{token:"paren.start",regex:/\#{/,push:"start"},{token:"string.end",regex:/`/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/'/,push:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string.end",regex:/'/,next:"pop"},{defaultToken:"string"}]}],{token:"text",regex:"::"},{token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},s,f,l,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{stateName:"heredoc",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:"constant",value:i[1]},{type:"string",value:i[2]},{type:"support.class",value:i[3]},{type:"string",value:i[4]}]},regex:"(<<-?)(['\"`]?)([\\w]+)(['\"`]?)",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"string.character",regex:"\\B\\?."},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end(?:$|\\s.*$)",next:"start"},{token:"comment",regex:".+"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ruby_highlight_rules").RubyHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/coffee").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/),u=t.match(/^\s*(class|def|module)\s.*$/),a=t.match(/.*do(\s*|\s+\|.*\|\s*)$/),f=t.match(/^\s*(if|else)\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id="ace/mode/ruby"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-rust.js b/js/ace/mode-rust.js
new file mode 100644
index 0000000..82398b6
--- /dev/null
+++ b/js/ace/mode-rust.js
@@ -0,0 +1 @@
+ace.define("ace/mode/rust_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable.other.source.rust",regex:"'[a-zA-Z_][a-zA-Z0-9_]*[^\\']"},{token:"string.quoted.single.source.rust",regex:"'",push:[{token:"string.quoted.single.source.rust",regex:"'",next:"pop"},{include:"#rust_escaped_character"},{defaultToken:"string.quoted.single.source.rust"}]},{stateName:"bracketedComment",onMatch:function(e,t,n){return n.unshift(this.next,e.length-1,t),"string.quoted.raw.source.rust"},regex:/r#*"/,next:[{onMatch:function(e,t,n){var r="string.quoted.raw.source.rust";return e.length>=n[1]?(e.length>n[1]&&(r="invalid"),n.shift(),n.shift(),this.next=n.shift()):this.next="",r},regex:/"#*/,next:"start"},{defaultToken:"string.quoted.raw.source.rust"}]},{token:"string.quoted.double.source.rust",regex:'"',push:[{token:"string.quoted.double.source.rust",regex:'"',next:"pop"},{include:"#rust_escaped_character"},{defaultToken:"string.quoted.double.source.rust"}]},{token:["keyword.source.rust","meta.function.source.rust","entity.name.function.source.rust","meta.function.source.rust"],regex:"\\b(fn)(\\s+)([a-zA-Z_][a-zA-Z0-9_][\\w\\:,+ \\'<>]*)(\\s*\\()"},{token:"support.constant",regex:"\\b[a-zA-Z_][\\w\\d]*::"},{token:"keyword.source.rust",regex:"\\b(?:as|assert|break|claim|const|copy|Copy|do|drop|else|extern|fail|for|if|impl|in|let|log|loop|match|mod|module|move|mut|Owned|priv|pub|pure|ref|return|unchecked|unsafe|use|while|mod|Send|static|trait|class|struct|enum|type)\\b"},{token:"storage.type.source.rust",regex:"\\b(?:Self|m32|m64|m128|f80|f16|f128|int|uint|isize|usize|float|char|bool|u8|u16|u32|u64|f32|f64|i8|i16|i32|i64|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\b"},{token:"variable.language.source.rust",regex:"\\bself\\b"},{token:"keyword.operator",regex:"!|\\$|\\*|\\-\\-|\\-|\\+\\+|\\+|-->|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|,|;"},{token:"constant.language.source.rust",regex:"\\b(?:true|false|Some|None|Left|Right|Ok|Err)\\b"},{token:"support.constant.source.rust",regex:"\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\b"},{token:"meta.preprocessor.source.rust",regex:"\\b\\w\\(\\w\\)*!|#\\[[\\w=\\(\\)_]+\\]\\b"},{token:"constant.numeric.integer.source.rust",regex:"\\b(?:[0-9][0-9_]*|[0-9][0-9_]*(?:u|us|u8|u16|u32|u64)|[0-9][0-9_]*(?:i|is|i8|i16|i32|i64))\\b"},{token:"constant.numeric.hex.source.rust",regex:"\\b(?:0x[a-fA-F0-9_]+|0x[a-fA-F0-9_]+(?:u|us|u8|u16|u32|u64)|0x[a-fA-F0-9_]+(?:i|is|i8|i16|i32|i64))\\b"},{token:"constant.numeric.binary.source.rust",regex:"\\b(?:0b[01_]+|0b[01_]+(?:u|us|u8|u16|u32|u64)|0b[01_]+(?:i|is|i8|i16|i32|i64))\\b"},{token:"constant.numeric.float.source.rust",regex:"[0-9][0-9_]*(?:f32|f64|f)|[0-9][0-9_]*[eE][+-]=[0-9_]+|[0-9][0-9_]*[eE][+-]=[0-9_]+(?:f32|f64|f)|[0-9][0-9_]*\\.[0-9_]+|[0-9][0-9_]*\\.[0-9_]+(?:f32|f64|f)|[0-9][0-9_]*\\.[0-9_]+%[eE][+-]=[0-9_]+|[0-9][0-9_]*\\.[0-9_]+%[eE][+-]=[0-9_]+(?:f32|f64|f)"},{token:"comment.line.documentation.source.rust",regex:"//!.*$",push_:[{token:"comment.line.documentation.source.rust",regex:"$",next:"pop"},{defaultToken:"comment.line.documentation.source.rust"}]},{token:"comment.line.double-dash.source.rust",regex:"//.*$",push_:[{token:"comment.line.double-dash.source.rust",regex:"$",next:"pop"},{defaultToken:"comment.line.double-dash.source.rust"}]},{token:"comment.start.block.source.rust",regex:"/\\*",stateName:"comment",push:[{token:"comment.start.block.source.rust",regex:"/\\*",push:"comment"},{token:"comment.end.block.source.rust",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.source.rust"}]}],"#rust_escaped_character":[{token:"constant.character.escape.source.rust",regex:"\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}]},this.normalizeRules()};s.metaData={fileTypes:["rs","rc"],foldingStartMarker:"^.*\\bfn\\s*(\\w+\\s*)?\\([^\\)]*\\)(\\s*\\{[^\\}]*)?\\s*$",foldingStopMarker:"^\\s*\\}",name:"Rust",scopeName:"source.rust"},r.inherits(s,i),t.RustHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/rust",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rust_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./rust_highlight_rules").RustHighlightRules,o=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/rust"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-sass.js b/js/ace/mode-sass.js
new file mode 100644
index 0000000..91a991d
--- /dev/null
+++ b/js/ace/mode-sass.js
@@ -0,0 +1 @@
+ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join("|"+e[i])).split("|"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute".split("|")),n=i.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),r=i.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare".split("|")),o=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),u="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:u+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:u},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":o.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable",regex:"[a-z_\\-$][a-z0-9_\\-$]*\\b"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define("ace/mode/sass_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/scss_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./scss_highlight_rules").ScssHighlightRules,o=function(){s.call(this);var e=this.$rules.start;e[1].token=="comment"&&(e.splice(1,1,{onMatch:function(e,t,n){return n.unshift(this.next,-1,e.length-2,t),"comment"},regex:/^\s*\/\*/,next:"comment"},{token:"error.invalid",regex:"/\\*|[{;}]"},{token:"support.type",regex:/^\s*:[\w\-]+\s/}),this.$rules.comment=[{regex:/^\s*/,onMatch:function(e,t,n){return n[1]===-1&&(n[1]=Math.max(n[2],e.length-1)),e.length<=n[1]?(n.shift(),n.shift(),n.shift(),this.next=n.shift(),"text"):(this.next="","comment")},next:"start"},{defaultToken:"comment"}])};r.inherits(o,s),t.SassHighlightRules=o}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/sass",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sass_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sass_highlight_rules").SassHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.$id="ace/mode/sass"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-scad.js b/js/ace/mode-scad.js
new file mode 100644
index 0000000..18de38b
--- /dev/null
+++ b/js/ace/mode-scad.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/scad_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){var e=this.createKeywordMapper({"variable.language":"this",keyword:"module|if|else|for","constant.language":"NULL"},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},s.getStartRule("start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(u,o),t.scadHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/scad",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./scad_highlight_rules").scadHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/scad"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-scala.js b/js/ace/mode-scala.js
new file mode 100644
index 0000000..1a3eed7
--- /dev/null
+++ b/js/ace/mode-scala.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/scala_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with",t="true|false",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"support.function":n,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'"""',next:"tstring"},{token:"string",regex:'"(?=.)',next:"string"},{token:"symbol.constant",regex:"'[\\w\\d_]+"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],string:[{token:"escape",regex:'\\\\"'},{token:"string",regex:'"',next:"start"},{token:"string.invalid",regex:'[^"\\\\]*$',next:"start"},{token:"string",regex:'[^"\\\\]+'}],tstring:[{token:"string",regex:'"{3,5}',next:"start"},{token:"string",regex:".+?"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.ScalaHighlightRules=o}),ace.define("ace/mode/scala",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/scala_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./scala_highlight_rules").ScalaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/scala"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-scheme.js b/js/ace/mode-scheme.js
new file mode 100644
index 0000000..be48256
--- /dev/null
+++ b/js/ace/mode-scheme.js
@@ -0,0 +1 @@
+ace.define("ace/mode/scheme_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="case|do|let|loop|if|else|when",t="eq?|eqv?|equal?|and|or|not|null?",n="#t|#f",r="cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load",i=this.createKeywordMapper({"keyword.control":e,"keyword.operator":t,"constant.language":n,"support.function":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.scheme","text","entity.name.function.scheme"],regex:"(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:"punctuation.definition.constant.character.scheme",regex:"#:\\S+"},{token:["punctuation.definition.variable.scheme","variable.other.global.scheme","punctuation.definition.variable.scheme"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"#[xXoObB][0-9a-fA-F]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?"},{token:i,regex:"[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.scheme",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}]}};r.inherits(s,i),t.SchemeHighlightRules=s}),ace.define("ace/mode/scheme",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scheme_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./scheme_highlight_rules").SchemeHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=";",this.$id="ace/mode/scheme"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-scss.js b/js/ace/mode-scss.js
new file mode 100644
index 0000000..bc28edf
--- /dev/null
+++ b/js/ace/mode-scss.js
@@ -0,0 +1 @@
+ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join("|"+e[i])).split("|"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute".split("|")),n=i.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),r=i.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare".split("|")),o=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),u="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:u+"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:u},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":o.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable",regex:"[a-z_\\-$][a-z0-9_\\-$]*\\b"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/scss",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./scss_highlight_rules").ScssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/css").CssBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/scss"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-sh.js b/js/ace/mode-sh.js
new file mode 100644
index 0000000..4d8c438
--- /dev/null
+++ b/js/ace/mode-sh.js
@@ -0,0 +1 @@
+ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z_][a-zA-Z0-9_]*",c="(?:(?:\\$"+l+")|(?:"+l+"=))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"constant",regex:/\\./},{token:["text","comment"],regex:/(^|\s)(#.*)$/},{token:"string",regex:'"',push:[{token:"constant.language.escape",regex:/\\(?:[$abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/},{token:"constant",regex:/\$\w+/},{token:"string",regex:'"',next:"pop"},{defaultToken:"string"}]},{regex:"<<<",token:"keyword.operator"},{stateName:"heredoc",regex:"(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:"constant",value:i[1]},{type:"text",value:i[2]},{type:"string",value:i[3]},{type:"support.class",value:i[4]},{type:"string",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^	+"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:"variable.language",regex:h},{token:"variable",regex:c},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",start:"'",end:"'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sh_highlight_rules").ShHighlightRules,o=e("../range").Range,u=e("./folding/cstyle").FoldMode,a=e("./behaviour/cstyle").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id="ace/mode/sh"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-sjs.js b/js/ace/mode-sjs.js
new file mode 100644
index 0000000..989c657
--- /dev/null
+++ b/js/ace/mode-sjs.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/sjs_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=new i({noES6:!0}),t="\\\\(?: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]?|.)",n=function(e){return e.isContextAware=!0,e},r=function(e){return{token:e.token,regex:e.regex,next:n(function(t,n){return n.length===0&&n.unshift(t),n.unshift(e.next),e.next})}},s=function(e){return{token:e.token,regex:e.regex,next:n(function(e,t){return t.shift(),t[0]||"start"})}};this.$rules=e.$rules,this.$rules.no_regex=[{token:"keyword",regex:"(waitfor|or|and|collapse|spawn|retract)\\b"},{token:"keyword.operator",regex:"(->|=>|\\.\\.)"},{token:"variable.language",regex:"(hold|default)\\b"},r({token:"string",regex:"`",next:"bstring"}),r({token:"string",regex:'"',next:"qqstring"}),r({token:"string",regex:'"',next:"qqstring"}),{token:["paren.lparen","text","paren.rparen"],regex:"(\\{)(\\s*)(\\|)",next:"block_arguments"}].concat(this.$rules.no_regex),this.$rules.block_arguments=[{token:"paren.rparen",regex:"\\|",next:"no_regex"}].concat(this.$rules.function_arguments),this.$rules.bstring=[{token:"constant.language.escape",regex:t},{token:"string",regex:"\\\\$",next:"bstring"},r({token:"paren.lparen",regex:"\\$\\{",next:"string_interp"}),r({token:"paren.lparen",regex:"\\$",next:"bstring_interp_single"}),s({token:"string",regex:"`"}),{defaultToken:"string"}],this.$rules.qqstring=[{token:"constant.language.escape",regex:t},{token:"string",regex:"\\\\$",next:"qqstring"},r({token:"paren.lparen",regex:"#\\{",next:"string_interp"}),s({token:"string",regex:'"'}),{defaultToken:"string"}];var o=[];for(var u=0;u<this.$rules.no_regex.length;u++){var a=this.$rules.no_regex[u],f=String(a.token);f.indexOf("paren")==-1&&(!a.next||a.next.isContextAware)&&o.push(a)}this.$rules.string_interp=[s({token:"paren.rparen",regex:"\\}"}),r({token:"paren.lparen",regex:"{",next:"string_interp"})].concat(o),this.$rules.bstring_interp_single=[{token:["identifier","paren.lparen"],regex:"(\\w+)(\\()",next:"bstring_interp_single_call"},s({token:"identifier",regex:"\\w*"})],this.$rules.bstring_interp_single_call=[r({token:"paren.lparen",regex:"\\(",next:"bstring_interp_single_call"}),s({token:"paren.rparen",regex:"\\)"})].concat(o)};r.inherits(o,s),t.SJSHighlightRules=o}),ace.define("ace/mode/sjs",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/sjs_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./sjs_highlight_rules").SJSHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/sjs"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-smarty.js b/js/ace/mode-smarty.js
new file mode 100644
index 0000000..8a92fe4
--- /dev/null
+++ b/js/ace/mode-smarty.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/smarty_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:"#comments"},{include:"#blocks"}],"#blocks":[{token:"punctuation.section.embedded.begin.smarty",regex:"\\{%?",push:[{token:"punctuation.section.embedded.end.smarty",regex:"%?\\}",next:"pop"},{include:"#strings"},{include:"#variables"},{include:"#lang"},{defaultToken:"source.smarty"}]}],"#comments":[{token:["punctuation.definition.comment.smarty","comment.block.smarty"],regex:"(\\{%?)(\\*)",push:[{token:"comment.block.smarty",regex:"\\*%?\\}",next:"pop"},{defaultToken:"comment.block.smarty"}]}],"#lang":[{token:"keyword.operator.smarty",regex:"(?:!=|!|<=|>=|<|>|===|==|%|&&|\\|\\|)|\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\b"},{token:"constant.language.smarty",regex:"\\b(?:TRUE|FALSE|true|false)\\b"},{token:"keyword.control.smarty",regex:"\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\b"},{token:"variable.parameter.smarty",regex:"\\b[a-zA-Z]+="},{token:"support.function.built-in.smarty",regex:"\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\b"},{token:"support.function.variable-modifier.smarty",regex:"\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)"}],"#strings":[{token:"punctuation.definition.string.begin.smarty",regex:"'",push:[{token:"punctuation.definition.string.end.smarty",regex:"'",next:"pop"},{token:"constant.character.escape.smarty",regex:"\\\\."},{defaultToken:"string.quoted.single.smarty"}]},{token:"punctuation.definition.string.begin.smarty",regex:'"',push:[{token:"punctuation.definition.string.end.smarty",regex:'"',next:"pop"},{token:"constant.character.escape.smarty",regex:"\\\\."},{defaultToken:"string.quoted.double.smarty"}]}],"#variables":[{token:["punctuation.definition.variable.smarty","variable.other.global.smarty"],regex:"\\b(\\$)(Smarty\\.)"},{token:["punctuation.definition.variable.smarty","variable.other.smarty"],regex:"(\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\b"},{token:["keyword.operator.smarty","variable.other.property.smarty"],regex:"(->)([a-zA-Z_][a-zA-Z0-9_]*)\\b"},{token:["keyword.operator.smarty","meta.function-call.object.smarty","punctuation.definition.variable.smarty","variable.other.smarty","punctuation.definition.variable.smarty"],regex:"(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\()(.*?)(\\))"}]},t=e.start;for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],t);Object.keys(e).forEach(function(t){this.$rules[t]||(this.$rules[t]=e[t])},this),this.normalizeRules()};s.metaData={fileTypes:["tpl"],foldingStartMarker:"\\{%?",foldingStopMarker:"%?\\}",name:"Smarty",scopeName:"text.html.smarty"},r.inherits(s,i),t.SmartyHighlightRules=s}),ace.define("ace/mode/smarty",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/smarty_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./smarty_highlight_rules").SmartyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/smarty"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-snippets.js b/js/ace/mode-snippets.js
new file mode 100644
index 0000000..09fea16
--- /dev/null
+++ b/js/ace/mode-snippets.js
@@ -0,0 +1 @@
+ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/snippets",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME";this.$rules={start:[{token:"constant.language.escape",regex:/\\[\$}`\\]/},{token:"keyword",regex:"\\$(?:TM_)?(?:"+e+")\\b"},{token:"variable",regex:"\\$\\w+"},{onMatch:function(e,t,n){return n[1]?n[1]++:n.unshift(t,1),this.tokenName},tokenName:"markup.list",regex:"\\${",next:"varDecl"},{onMatch:function(e,t,n){return n[1]?(n[1]--,n[1]||n.splice(0,2),this.tokenName):"text"},tokenName:"markup.list",regex:"}"},{token:"doc.comment",regex:/^\${2}-{5,}$/}],varDecl:[{regex:/\d+\b/,token:"constant.numeric"},{token:"keyword",regex:"(?:TM_)?(?:"+e+")\\b"},{token:"variable",regex:"\\w+"},{regex:/:/,token:"punctuation.operator",next:"start"},{regex:/\//,token:"string.regex",next:"regexp"},{regex:"",next:"start"}],regexp:[{regex:/\\./,token:"escape"},{regex:/\[/,token:"regex.start",next:"charClass"},{regex:"/",token:"string.regex",next:"format"},{token:"string.regex",regex:"."}],charClass:[{regex:"\\.",token:"escape"},{regex:"\\]",token:"regex.end",next:"regexp"},{token:"string.regex",regex:"."}],format:[{regex:/\\[ulULE]/,token:"keyword"},{regex:/\$\d+/,token:"variable"},{regex:"/[gim]*:?",token:"string.regex",next:"start"},{token:"string",regex:"."}]}};r.inherits(o,s),t.SnippetHighlightRules=o;var u=function(){this.$rules={start:[{token:"text",regex:"^\\t",next:"sn-start"},{token:"invalid",regex:/^ \s*/},{token:"comment",regex:/^#.*/},{token:"constant.language.escape",regex:"^regex ",next:"regex"},{token:"constant.language.escape",regex:"^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\b"}],regex:[{token:"text",regex:"\\."},{token:"keyword",regex:"/"},{token:"empty",regex:"$",next:"start"}]},this.embedRules(o,"sn-",[{token:"text",regex:"^\\t",next:"sn-start"},{onMatch:function(e,t,n){return n.splice(n.length),this.tokenName},tokenName:"text",regex:"^(?!	)",next:"start"}])};r.inherits(u,s),t.SnippetGroupHighlightRules=u;var a=e("./folding/coffee").FoldMode,f=function(){this.HighlightRules=u,this.foldingRules=new a};r.inherits(f,i),function(){this.$indentWithTabs=!0,this.lineCommentStart="#",this.$id="ace/mode/snippets"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-soy_template.js b/js/ace/mode-soy_template.js
new file mode 100644
index 0000000..25586b4
--- /dev/null
+++ b/js/ace/mode-soy_template.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/soy_template_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:"#template"},{include:"#if"},{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-doc"},{include:"#call"},{include:"#css"},{include:"#param"},{include:"#print"},{include:"#msg"},{include:"#for"},{include:"#foreach"},{include:"#switch"},{include:"#tag"},{include:"text.html.basic"}],"#call":[{token:["punctuation.definition.tag.begin.soy","meta.tag.call.soy"],regex:"(\\{/?)(\\s*)(?=call|delcall)",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#string-quoted-single"},{include:"#string-quoted-double"},{token:["entity.name.tag.soy","variable.parameter.soy"],regex:"(call|delcall)(\\s+[\\.\\w]+)"},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy"],regex:"\\b(data)(\\s*)(=)"},{defaultToken:"meta.tag.call.soy"}]}],"#comment-line":[{token:["comment.line.double-slash.soy","punctuation.definition.comment.soy","comment.line.double-slash.soy"],regex:"(\\s+)(//)(.*$)"}],"#comment-block":[{token:"punctuation.definition.comment.begin.soy",regex:"/\\*(?!\\*)",push:[{token:"punctuation.definition.comment.end.soy",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.soy"}]}],"#comment-doc":[{token:"punctuation.definition.comment.begin.soy",regex:"/\\*\\*(?!/)",push:[{token:"punctuation.definition.comment.end.soy",regex:"\\*/",next:"pop"},{token:["support.type.soy","text","variable.parameter.soy"],regex:"(@param|@param\\?)(\\s+)(\\w+)"},{defaultToken:"comment.block.documentation.soy"}]}],"#css":[{token:["punctuation.definition.tag.begin.soy","meta.tag.css.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(css)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{token:"support.constant.soy",regex:"\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\b"},{defaultToken:"meta.tag.css.soy"}]}],"#for":[{token:["punctuation.definition.tag.begin.soy","meta.tag.for.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(for)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{token:"keyword.operator.soy",regex:"\\bin\\b"},{token:"support.function.soy",regex:"\\brange\\b"},{include:"#variable"},{include:"#number"},{include:"#primitive"},{defaultToken:"meta.tag.for.soy"}]}],"#foreach":[{token:["punctuation.definition.tag.begin.soy","meta.tag.foreach.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(foreach)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{token:"keyword.operator.soy",regex:"\\bin\\b"},{include:"#variable"},{defaultToken:"meta.tag.foreach.soy"}]}],"#function":[{token:"support.function.soy",regex:"\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\b"}],"#if":[{token:["punctuation.definition.tag.begin.soy","meta.tag.if.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(if|elseif)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#variable"},{include:"#operator"},{include:"#function"},{include:"#string-quoted-single"},{include:"#string-quoted-double"},{defaultToken:"meta.tag.if.soy"}]}],"#namespace":[{token:["entity.name.tag.soy","text","variable.parameter.soy"],regex:"(namespace|delpackage)(\\s+)([\\w\\.]+)"}],"#number":[{token:"constant.numeric",regex:"[\\d]+"}],"#operator":[{token:"keyword.operator.soy",regex:"==|!=|\\band\\b|\\bor\\b|\\bnot\\b|-|\\+|/|\\?:"}],"#param":[{token:["punctuation.definition.tag.begin.soy","meta.tag.param.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(param)",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#variable"},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy"],regex:"\\b([\\w]+)(\\s*)((?::)?)"},{defaultToken:"meta.tag.param.soy"}]}],"#primitive":[{token:"constant.language.soy",regex:"\\b(?:null|false|true)\\b"}],"#msg":[{token:["punctuation.definition.tag.begin.soy","meta.tag.msg.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(msg)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#string-quoted-single"},{include:"#string-quoted-double"},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy"],regex:"\\b(meaning|desc)(\\s*)(=)"},{defaultToken:"meta.tag.msg.soy"}]}],"#print":[{token:["punctuation.definition.tag.begin.soy","meta.tag.print.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(print)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#variable"},{include:"#print-parameter"},{include:"#number"},{include:"#primitive"},{include:"#attribute-lookup"},{defaultToken:"meta.tag.print.soy"}]}],"#print-parameter":[{token:"keyword.operator.soy",regex:"\\|"},{token:"variable.parameter.soy",regex:"noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate"}],"#special-character":[{token:"support.constant.soy",regex:"\\bsp\\b|\\bnil\\b|\\\\r|\\\\n|\\\\t|\\blb\\b|\\brb\\b"}],"#string-quoted-double":[{token:"string.quoted.double",regex:'"[^"]*"'}],"#string-quoted-single":[{token:"string.quoted.single",regex:"'[^']*'"}],"#switch":[{token:["punctuation.definition.tag.begin.soy","meta.tag.switch.soy","entity.name.tag.soy"],regex:"(\\{/?)(\\s*)(switch|case)\\b",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#variable"},{include:"#function"},{include:"#number"},{include:"#string-quoted-single"},{include:"#string-quoted-double"},{defaultToken:"meta.tag.switch.soy"}]}],"#attribute-lookup":[{token:"punctuation.definition.attribute-lookup.begin.soy",regex:"\\[",push:[{token:"punctuation.definition.attribute-lookup.end.soy",regex:"\\]",next:"pop"},{include:"#variable"},{include:"#function"},{include:"#operator"},{include:"#number"},{include:"#primitive"},{include:"#string-quoted-single"},{include:"#string-quoted-double"}]}],"#tag":[{token:"punctuation.definition.tag.begin.soy",regex:"\\{",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{include:"#namespace"},{include:"#variable"},{include:"#special-character"},{include:"#tag-simple"},{include:"#function"},{include:"#operator"},{include:"#attribute-lookup"},{include:"#number"},{include:"#primitive"},{include:"#print-parameter"}]}],"#tag-simple":[{token:"entity.name.tag.soy",regex:"{{\\s*(?:literal|else|ifempty|default)\\s*(?=\\})"}],"#template":[{token:["punctuation.definition.tag.begin.soy","meta.tag.template.soy"],regex:"(\\{/?)(\\s*)(?=template|deltemplate)",push:[{token:"punctuation.definition.tag.end.soy",regex:"\\}",next:"pop"},{token:["entity.name.tag.soy","text","entity.name.function.soy"],regex:"(template|deltemplate)(\\s+)([\\.\\w]+)",originalRegex:"(?<=template|deltemplate)\\s+([\\.\\w]+)"},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy","text","string.quoted.double.soy"],regex:'\\b(private)(\\s*)(=)(\\s*)("true"|"false")'},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy","text","string.quoted.single.soy"],regex:"\\b(private)(\\s*)(=)(\\s*)('true'|'false')"},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy","text","string.quoted.double.soy"],regex:'\\b(autoescape)(\\s*)(=)(\\s*)("true"|"false"|"contextual")'},{token:["entity.other.attribute-name.soy","text","keyword.operator.soy","text","string.quoted.single.soy"],regex:"\\b(autoescape)(\\s*)(=)(\\s*)('true'|'false'|'contextual')"},{defaultToken:"meta.tag.template.soy"}]}],"#variable":[{token:"variable.other.soy",regex:"\\$[\\w\\.]+"}]};for(var t in e)this.$rules[t]?this.$rules[t].unshift.call(this.$rules[t],e[t]):this.$rules[t]=e[t];this.normalizeRules()};s.metaData={comment:"SoyTemplate",fileTypes:["soy"],firstLineMatch:"\\{\\s*namespace\\b",foldingStartMarker:"\\{\\s*template\\s+[^\\}]*\\}",foldingStopMarker:"\\{\\s*/\\s*template\\s*\\}",name:"SoyTemplate",scopeName:"source.soy"},r.inherits(s,i),t.SoyTemplateHighlightRules=s}),ace.define("ace/mode/soy_template",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/soy_template_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./soy_template_highlight_rules").SoyTemplateHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/soy_template"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-space.js b/js/ace/mode-space.js
new file mode 100644
index 0000000..f13e8ef
--- /dev/null
+++ b/js/ace/mode-space.js
@@ -0,0 +1 @@
+ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/space_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"empty_line",regex:/ */,next:"key"},{token:"empty_line",regex:/$/,next:"key"}],key:[{token:"variable",regex:/\S+/},{token:"empty_line",regex:/$/,next:"start"},{token:"keyword.operator",regex:/ /,next:"value"}],value:[{token:"keyword.operator",regex:/$/,next:"start"},{token:"string",regex:/[^$]/}]}};r.inherits(s,i),t.SpaceHighlightRules=s}),ace.define("ace/mode/space",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/folding/coffee","ace/mode/space_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./folding/coffee").FoldMode,o=e("./space_highlight_rules").SpaceHighlightRules,u=function(){this.HighlightRules=o,this.foldingRules=new s};r.inherits(u,i),function(){this.$id="ace/mode/space"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-sql.js b/js/ace/mode-sql.js
new file mode 100644
index 0000000..25a7372
--- /dev/null
+++ b/js/ace/mode-sql.js
@@ -0,0 +1 @@
+ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sql_highlight_rules").SqlHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/sql"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-stylus.js b/js/ace/mode-stylus.js
new file mode 100644
index 0000000..dd5fd4a
--- /dev/null
+++ b/js/ace/mode-stylus.js
@@ -0,0 +1 @@
+ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/stylus_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./css_highlight_rules"),o=function(){var e=this.createKeywordMapper({"support.type":s.supportType,"support.function":s.supportFunction,"support.constant":s.supportConstant,"support.constant.color":s.supportConstantColor,"support.constant.fonts":s.supportConstantFonts},"text",!0);this.$rules={start:[{token:"comment",regex:/\/\/.*$/},{token:"comment",regex:/\/\*/,next:"comment"},{token:["entity.name.function.stylus","text"],regex:"^([-a-zA-Z_][-\\w]*)?(\\()"},{token:["entity.other.attribute-name.class.stylus"],regex:"\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*"},{token:["entity.language.stylus"],regex:"^ *&"},{token:["variable.language.stylus"],regex:"(arguments)"},{token:["keyword.stylus"],regex:"@[-\\w]+"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:s.pseudoElements},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:s.pseudoClasses},{token:["entity.name.tag.stylus"],regex:"(?:\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\b)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation.definition.entity.stylus","entity.other.attribute-name.id.stylus"],regex:"(#)([a-zA-Z][a-zA-Z0-9_-]*)"},{token:"meta.vendor-prefix.stylus",regex:"-webkit-|-moz\\-|-ms-|-o-"},{token:"keyword.control.stylus",regex:"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\b"},{token:"keyword.operator.stylus",regex:"!|~|\\+|-|(?:\\*)?\\*|\\/|%|(?:\\.)\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!="},{token:"keyword.operator.stylus",regex:"(?:in|is(?:nt)?|not)\\b"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:s.numRe},{token:"keyword",regex:"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\b"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"}],qstring:[{token:"string",regex:"[^'\\\\]+"},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"}]}};r.inherits(o,i),t.StylusHighlightRules=o}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/stylus",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/stylus_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./stylus_highlight_rules").StylusHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/stylus"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-svg.js b/js/ace/mode-svg.js
new file mode 100644
index 0000000..41ee9d8
--- /dev/null
+++ b/js/ace/mode-svg.js
@@ -0,0 +1 @@
+ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"<!--",end:"-->"},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/svg_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./xml_highlight_rules").XmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,"js-","script"),this.normalizeRules()};r.inherits(o,s),t.SvgHighlightRules=o}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/svg",["require","exports","module","ace/lib/oop","ace/mode/xml","ace/mode/javascript","ace/mode/svg_highlight_rules","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./xml").Mode,s=e("./javascript").Mode,o=e("./svg_highlight_rules").SvgHighlightRules,u=e("./folding/mixed").FoldMode,a=e("./folding/xml").FoldMode,f=e("./folding/cstyle").FoldMode,l=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({"js-":s}),this.foldingRules=new u(new a,{"js-":new f})};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id="ace/mode/svg"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-tcl.js b/js/ace/mode-tcl.js
new file mode 100644
index 0000000..bcc263a
--- /dev/null
+++ b/js/ace/mode-tcl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/tcl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*\\\\$",next:"commentfollow"},{token:"comment",regex:"#.*$"},{token:"support.function",regex:"[\\\\]$",next:"splitlineStart"},{token:"text",regex:'[\\\\](?:["]|[{]|[}]|[[]|[]]|[$]|[])'},{token:"text",regex:"^|[^{][;][^}]|[/\r/]",next:"commandItem"},{token:"string",regex:'[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'[ ]*["]',next:"qqstring"},{token:"variable.instance",regex:"[$]",next:"variable"},{token:"support.function",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"},{token:"identifier",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"paren.lparen",regex:"[[{]",next:"commandItem"},{token:"paren.lparen",regex:"[(]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],commandItem:[{token:"comment",regex:"#.*\\\\$",next:"commentfollow"},{token:"comment",regex:"#.*$",next:"start"},{token:"string",regex:'[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"variable.instance",regex:"[$]",next:"variable"},{token:"support.function",regex:"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])",next:"commandItem"},{token:"support.function",regex:"[a-zA-Z0-9_/]+(?:[:][:])",next:"commandItem"},{token:"support.function",regex:"(?:[:][:])",next:"commandItem"},{token:"paren.rparen",regex:"[\\])}]"},{token:"support.function",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"},{token:"keyword",regex:"[a-zA-Z0-9_/]+",next:"start"}],commentfollow:[{token:"comment",regex:".*\\\\$",next:"commentfollow"},{token:"comment",regex:".+",next:"start"}],splitlineStart:[{token:"text",regex:"^.",next:"start"}],variable:[{token:"variable.instance",regex:"[a-zA-Z_\\d]+(?:[(][a-zA-Z_\\d]+[)])?",next:"start"},{token:"variable.instance",regex:"{?[a-zA-Z_\\d]+}?",next:"start"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?["]',next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.TclHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/tcl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/folding/cstyle","ace/mode/tcl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./folding/cstyle").FoldMode,o=e("./tcl_highlight_rules").TclHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=function(){this.HighlightRules=o,this.$outdent=new u,this.foldingRules=new s};r.inherits(f,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/tcl"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-tex.js b/js/ace/mode-tex.js
new file mode 100644
index 0000000..37d98d4
--- /dev/null
+++ b/js/ace/mode-tex.js
@@ -0,0 +1 @@
+ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(e){e||(e="text"),this.$rules={start:[{token:"comment",regex:"%.*$"},{token:e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:e,regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell."+e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell."+e,regex:"\\s+"},{token:"nospell."+e,regex:"\\w+"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/tex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=e("./tex_highlight_rules").TexHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=function(e){e?this.HighlightRules=s:this.HighlightRules=o,this.$outdent=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.allowAutoInsert=function(){return!1},this.$id="ace/mode/tex"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/mode-text.js b/js/ace/mode-text.js
new file mode 100644
index 0000000..e69de29
diff --git a/js/ace/mode-textile.js b/js/ace/mode-textile.js
new file mode 100644
index 0000000..68a283f
--- /dev/null
+++ b/js/ace/mode-textile.js
@@ -0,0 +1 @@
+ace.define("ace/mode/textile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)=="h"?"markup.heading."+e.charAt(1):"markup.heading"},regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/textile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./textile_highlight_rules").TextileHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){return e=="intag"?n:""},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/textile"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-toml.js b/js/ace/mode-toml.js
new file mode 100644
index 0000000..1028aa5
--- /dev/null
+++ b/js/ace/mode-toml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/toml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({"constant.language.boolean":"true|false"},"identifier"),t="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment.toml",regex:/#.*$/},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:["variable.keygroup.toml"],regex:"(?:^\\s*)(\\[([^\\]]+)\\])"},{token:e,regex:t},{token:"support.date.toml",regex:"\\d{4}-\\d{2}-\\d{2}(T)\\d{2}:\\d{2}:\\d{2}(Z)"},{token:"constant.numeric.toml",regex:"-?\\d+(\\.?\\d+)?"}],qqstring:[{token:"string",regex:"\\\\$",next:"qqstring"},{token:"constant.language.escape",regex:'\\\\[0tnr"\\\\]'},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.TomlHighlightRules=s}),ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\s*\[([^\])]*)]\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+".",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define("ace/mode/toml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/toml_highlight_rules","ace/mode/folding/ini"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./toml_highlight_rules").TomlHighlightRules,o=e("./folding/ini").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.$id="ace/mode/toml"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-twig.js b/js/ace/mode-twig.js
new file mode 100644
index 0000000..54b63f8
--- /dev/null
+++ b/js/ace/mode-twig.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/twig_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./html_highlight_rules").HtmlHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){s.call(this);var e="autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim";e=e+"|end"+e.replace(/\|/g,"|end");var t="abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode",n="attribute|constant|cycle|date|dump|parent|random|range|template_from_string",r="constant|divisibleby|sameas|defined|empty|even|iterable|odd",i="null|none|true|false",o="b-and|b-xor|b-or|in|is|and|or|not",u=this.createKeywordMapper({"keyword.control.twig":e,"support.function.twig":[t,n,r].join("|"),"keyword.operator.twig":o,"constant.language.twig":i},"identifier");for(var a in this.$rules)this.$rules[a].unshift({token:"variable.other.readwrite.local.twig",regex:"\\{\\{-?",push:"twig-start"},{token:"meta.tag.twig",regex:"\\{%-?",push:"twig-start"},{token:"comment.block.twig",regex:"\\{#-?",push:"twig-comment"});this.$rules["twig-comment"]=[{token:"comment.block.twig",regex:".*-?#\\}",next:"pop"}],this.$rules["twig-start"]=[{token:"variable.other.readwrite.local.twig",regex:"-?\\}\\}",next:"pop"},{token:"meta.tag.twig",regex:"-?%\\}",next:"pop"},{token:"string",regex:"'",next:"twig-qstring"},{token:"string",regex:'"',next:"twig-qqstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator.assignment",regex:"=|~"},{token:"keyword.operator.comparison",regex:"==|!=|<|>|>=|<=|==="},{token:"keyword.operator.arithmetic",regex:"\\+|-|/|%|//|\\*|\\*\\*"},{token:"keyword.operator.other",regex:"\\.\\.|\\|"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./},{token:"paren.lparen",regex:/[\[\({]/},{token:"paren.rparen",regex:/[\])}]/},{token:"text",regex:"\\s+"}],this.$rules["twig-qqstring"]=[{token:"constant.language.escape",regex:/\\[\\"$#ntr]|#{[^"}]*}/},{token:"string",regex:'"',next:"twig-start"},{defaultToken:"string"}],this.$rules["twig-qstring"]=[{token:"constant.language.escape",regex:/\\[\\'ntr]}/},{token:"string",regex:"'",next:"twig-start"},{defaultToken:"string"}],this.normalizeRules()};r.inherits(u,o),t.TwigHighlightRules=u}),ace.define("ace/mode/twig",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/twig_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./twig_highlight_rules").TwigHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=function(){i.call(this),this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.blockComment={start:"{#",end:"#}"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/twig"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-typescript.js b/js/ace/mode-typescript.js
new file mode 100644
index 0000000..b45fe2f
--- /dev/null
+++ b/js/ace/mode-typescript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/typescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=function(){var e=[{token:["keyword.operator.ts","text","variable.parameter.function.ts","text"],regex:"\\b(module)(\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*\\{)"},{token:["storage.type.variable.ts","text","keyword.other.ts","text"],regex:"(super)(\\s*\\()([a-zA-Z0-9,_?.$\\s]+\\s*)(\\))"},{token:["entity.name.function.ts","paren.lparen","paren.rparen"],regex:"([a-zA-Z_?.$][\\w?.$]*)(\\()(\\))"},{token:["variable.parameter.function.ts","text","variable.parameter.function.ts"],regex:"([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*:\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)"},{token:["keyword.operator.ts"],regex:"(?:\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\b)"},{token:["storage.type.variable.ts"],regex:"(?:\\b(this\\.|string\\b|bool\\b|number)\\b)"},{token:["keyword.operator.ts","storage.type.variable.ts","keyword.operator.ts","storage.type.variable.ts"],regex:"(class)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)(extends)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)?"},{token:"keyword",regex:"(?:super|export|class|extends|import)\\b"}],t=(new i).getRules();t.start=e.concat(t.start),this.$rules=t};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define("ace/mode/typescript",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/typescript_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./typescript_highlight_rules").TypeScriptHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("./folding/cstyle").FoldMode,a=e("./matching_brace_outdent").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/typescript"}.call(f.prototype),t.Mode=f})
\ No newline at end of file
diff --git a/js/ace/mode-vala.js b/js/ace/mode-vala.js
new file mode 100644
index 0000000..851567b
--- /dev/null
+++ b/js/ace/mode-vala.js
@@ -0,0 +1 @@
+ace.define("ace/mode/vala_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["meta.using.vala","keyword.other.using.vala","meta.using.vala","storage.modifier.using.vala","meta.using.vala","punctuation.terminator.vala"],regex:"^(\\s*)(using)\\b(?:(\\s*)([^ ;$]+)(\\s*)((?:;)?))?"},{include:"#code"}],"#all-types":[{include:"#primitive-arrays"},{include:"#primitive-types"},{include:"#object-types"}],"#annotations":[{token:["storage.type.annotation.vala","punctuation.definition.annotation-arguments.begin.vala"],regex:"(@[^ (]+)(\\()",push:[{token:"punctuation.definition.annotation-arguments.end.vala",regex:"\\)",next:"pop"},{token:["constant.other.key.vala","text","keyword.operator.assignment.vala"],regex:"(\\w*)(\\s*)(=)"},{include:"#code"},{token:"punctuation.seperator.property.vala",regex:","},{defaultToken:"meta.declaration.annotation.vala"}]},{token:"storage.type.annotation.vala",regex:"@\\w*"}],"#anonymous-classes-and-new":[{token:"keyword.control.new.vala",regex:"\\bnew\\b",push_disabled:[{token:"text",regex:"(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",next:"pop"},{token:["storage.type.vala","text"],regex:"(\\w+)(\\s*)(?=\\[)",push:[{token:"text",regex:"}|(?=;|\\))",next:"pop"},{token:"text",regex:"\\[",push:[{token:"text",regex:"\\]",next:"pop"},{include:"#code"}]},{token:"text",regex:"{",push:[{token:"text",regex:"(?=})",next:"pop"},{include:"#code"}]}]},{token:"text",regex:"(?=\\w.*\\()",push:[{token:"text",regex:"(?<=\\))",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:"(?<=\\))",next:"pop"},{include:"#object-types"},{token:"text",regex:"\\(",push:[{token:"text",regex:"\\)",next:"pop"},{include:"#code"}]}]},{token:"meta.inner-class.vala",regex:"{",push:[{token:"meta.inner-class.vala",regex:"}",next:"pop"},{include:"#class-body"},{defaultToken:"meta.inner-class.vala"}]}]}],"#assertions":[{token:["keyword.control.assert.vala","meta.declaration.assertion.vala"],regex:"\\b(assert|requires|ensures)(\\s)",push:[{token:"meta.declaration.assertion.vala",regex:"$",next:"pop"},{token:"keyword.operator.assert.expression-seperator.vala",regex:":"},{include:"#code"},{defaultToken:"meta.declaration.assertion.vala"}]}],"#class":[{token:"meta.class.vala",regex:"(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\s+\\w+)",push:[{token:"paren.vala",regex:"}",next:"pop"},{include:"#storage-modifiers"},{include:"#comments"},{token:["storage.modifier.vala","meta.class.identifier.vala","entity.name.type.class.vala"],regex:"(class|(?:@)?interface|enum|struct|namespace)(\\s+)([\\w\\.]+)"},{token:"storage.modifier.extends.vala",regex:":",push:[{token:"meta.definition.class.inherited.classes.vala",regex:"(?={|,)",next:"pop"},{include:"#object-types-inherited"},{include:"#comments"},{defaultToken:"meta.definition.class.inherited.classes.vala"}]},{token:["storage.modifier.implements.vala","meta.definition.class.implemented.interfaces.vala"],regex:"(,)(\\s)",push:[{token:"meta.definition.class.implemented.interfaces.vala",regex:"(?=\\{)",next:"pop"},{include:"#object-types-inherited"},{include:"#comments"},{defaultToken:"meta.definition.class.implemented.interfaces.vala"}]},{token:"paren.vala",regex:"{",push:[{token:"paren.vala",regex:"(?=})",next:"pop"},{include:"#class-body"},{defaultToken:"meta.class.body.vala"}]},{defaultToken:"meta.class.vala"}],comment:"attempting to put namespace in here."}],"#class-body":[{include:"#comments"},{include:"#class"},{include:"#enums"},{include:"#methods"},{include:"#annotations"},{include:"#storage-modifiers"},{include:"#code"}],"#code":[{include:"#comments"},{include:"#class"},{token:"text",regex:"{",push:[{token:"text",regex:"}",next:"pop"},{include:"#code"}]},{include:"#assertions"},{include:"#parens"},{include:"#constants-and-special-vars"},{include:"#anonymous-classes-and-new"},{include:"#keywords"},{include:"#storage-modifiers"},{include:"#strings"},{include:"#all-types"}],"#comments":[{token:"punctuation.definition.comment.vala",regex:"/\\*\\*/"},{include:"text.html.javadoc"},{include:"#comments-inline"}],"#comments-inline":[{token:"punctuation.definition.comment.vala",regex:"/\\*",push:[{token:"punctuation.definition.comment.vala",regex:"\\*/",next:"pop"},{defaultToken:"comment.block.vala"}]},{token:["text","punctuation.definition.comment.vala","comment.line.double-slash.vala"],regex:"(\\s*)(//)(.*$)"}],"#constants-and-special-vars":[{token:"constant.language.vala",regex:"\\b(?:true|false|null)\\b"},{token:"variable.language.vala",regex:"\\b(?:this|base)\\b"},{token:"constant.numeric.vala",regex:"\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\b"},{token:["keyword.operator.dereference.vala","constant.other.vala"],regex:"((?:\\.)?)\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b"}],"#enums":[{token:"text",regex:"^(?=\\s*[A-Z0-9_]+\\s*(?:{|\\(|,))",push:[{token:"text",regex:"(?=;|})",next:"pop"},{token:"constant.other.enum.vala",regex:"\\w+",push:[{token:"meta.enum.vala",regex:"(?=,|;|})",next:"pop"},{include:"#parens"},{token:"text",regex:"{",push:[{token:"text",regex:"}",next:"pop"},{include:"#class-body"}]},{defaultToken:"meta.enum.vala"}]}]}],"#keywords":[{token:"keyword.control.catch-exception.vala",regex:"\\b(?:try|catch|finally|throw)\\b"},{token:"keyword.control.vala",regex:"\\?|:|\\?\\?"},{token:"keyword.control.vala",regex:"\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\b"},{token:"keyword.operator.vala",regex:"\\b(?:typeof|is|as)\\b"},{token:"keyword.operator.comparison.vala",regex:"==|!=|<=|>=|<>|<|>"},{token:"keyword.operator.assignment.vala",regex:"="},{token:"keyword.operator.increment-decrement.vala",regex:"\\-\\-|\\+\\+"},{token:"keyword.operator.arithmetic.vala",regex:"\\-|\\+|\\*|\\/|%"},{token:"keyword.operator.logical.vala",regex:"!|&&|\\|\\|"},{token:"keyword.operator.dereference.vala",regex:"\\.(?=\\S)",originalRegex:"(?<=\\S)\\.(?=\\S)"},{token:"punctuation.terminator.vala",regex:";"},{token:"keyword.operator.ownership",regex:"owned|unowned"}],"#methods":[{token:"meta.method.vala",regex:"(?!new)(?=\\w.*\\s+)(?=[^=]+\\()",push:[{token:"paren.vala",regex:"}|(?=;)",next:"pop"},{include:"#storage-modifiers"},{token:["entity.name.function.vala","meta.method.identifier.vala"],regex:"([\\~\\w\\.]+)(\\s*\\()",push:[{token:"meta.method.identifier.vala",regex:"\\)",next:"pop"},{include:"#parameters"},{defaultToken:"meta.method.identifier.vala"}]},{token:"meta.method.return-type.vala",regex:"(?=\\w.*\\s+\\w+\\s*\\()",push:[{token:"meta.method.return-type.vala",regex:"(?=\\w+\\s*\\()",next:"pop"},{include:"#all-types"},{defaultToken:"meta.method.return-type.vala"}]},{include:"#throws"},{token:"paren.vala",regex:"{",push:[{token:"paren.vala",regex:"(?=})",next:"pop"},{include:"#code"},{defaultToken:"meta.method.body.vala"}]},{defaultToken:"meta.method.vala"}]}],"#namespace":[{token:"text",regex:"^(?=\\s*[A-Z0-9_]+\\s*(?:{|\\(|,))",push:[{token:"text",regex:"(?=;|})",next:"pop"},{token:"constant.other.namespace.vala",regex:"\\w+",push:[{token:"meta.namespace.vala",regex:"(?=,|;|})",next:"pop"},{include:"#parens"},{token:"text",regex:"{",push:[{token:"text",regex:"}",next:"pop"},{include:"#code"}]},{defaultToken:"meta.namespace.vala"}]}],comment:"This is not quite right. See the class grammar right now"}],"#object-types":[{token:"storage.type.generic.vala",regex:"\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*<",push:[{token:"storage.type.generic.vala",regex:">|[^\\w\\s,\\?<\\[()\\]]",TODO:"FIXME: regexp doesn't have js equivalent",originalRegex:">|[^\\w\\s,\\?<\\[(?:[,]+)\\]]",next:"pop"},{include:"#object-types"},{token:"storage.type.generic.vala",regex:"<",push:[{token:"storage.type.generic.vala",regex:">|[^\\w\\s,\\[\\]<]",next:"pop"},{defaultToken:"storage.type.generic.vala"}],comment:"This is just to support <>'s with no actual type prefix"},{defaultToken:"storage.type.generic.vala"}]},{token:"storage.type.object.array.vala",regex:"\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*(?=\\[)",push:[{token:"storage.type.object.array.vala",regex:"(?=[^\\]\\s])",next:"pop"},{token:"text",regex:"\\[",push:[{token:"text",regex:"\\]",next:"pop"},{include:"#code"}]},{defaultToken:"storage.type.object.array.vala"}]},{token:["storage.type.vala","keyword.operator.dereference.vala","storage.type.vala"],regex:"\\b(?:([a-z]\\w*)(\\.))*([A-Z]+\\w*\\b)"}],"#object-types-inherited":[{token:"entity.other.inherited-class.vala",regex:"\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*<",push:[{token:"entity.other.inherited-class.vala",regex:">|[^\\w\\s,<]",next:"pop"},{include:"#object-types"},{token:"storage.type.generic.vala",regex:"<",push:[{token:"storage.type.generic.vala",regex:">|[^\\w\\s,<]",next:"pop"},{defaultToken:"storage.type.generic.vala"}],comment:"This is just to support <>'s with no actual type prefix"},{defaultToken:"entity.other.inherited-class.vala"}]},{token:["entity.other.inherited-class.vala","keyword.operator.dereference.vala","entity.other.inherited-class.vala"],regex:"\\b(?:([a-z]\\w*)(\\.))*([A-Z]+\\w*)"}],"#parameters":[{token:"storage.modifier.vala",regex:"final"},{include:"#primitive-arrays"},{include:"#primitive-types"},{include:"#object-types"},{token:"variable.parameter.vala",regex:"\\w+"}],"#parens":[{token:"text",regex:"\\(",push:[{token:"text",regex:"\\)",next:"pop"},{include:"#code"}]}],"#primitive-arrays":[{token:"storage.type.primitive.array.vala",regex:"\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\[\\])*\\b"}],"#primitive-types":[{token:"storage.type.primitive.vala",regex:"\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",comment:"var is not really a primitive, but acts like one in most cases"}],"#storage-modifiers":[{token:"storage.modifier.vala",regex:"\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\b",comment:"Not sure about unsafe and readonly"}],"#strings":[{token:"punctuation.definition.string.begin.vala",regex:'@"',push:[{token:"punctuation.definition.string.end.vala",regex:'"',next:"pop"},{token:"constant.character.escape.vala",regex:"\\\\.|%[\\w\\.\\-]+|\\$(?:\\w+|\\([\\w\\s\\+\\-\\*\\/]+\\))"},{defaultToken:"string.quoted.interpolated.vala"}]},{token:"punctuation.definition.string.begin.vala",regex:'"',push:[{token:"punctuation.definition.string.end.vala",regex:'"',next:"pop"},{token:"constant.character.escape.vala",regex:"\\\\."},{token:"constant.character.escape.vala",regex:"%[\\w\\.\\-]+"},{defaultToken:"string.quoted.double.vala"}]},{token:"punctuation.definition.string.begin.vala",regex:"'",push:[{token:"punctuation.definition.string.end.vala",regex:"'",next:"pop"},{token:"constant.character.escape.vala",regex:"\\\\."},{defaultToken:"string.quoted.single.vala"}]},{token:"punctuation.definition.string.begin.vala",regex:'"""',push:[{token:"punctuation.definition.string.end.vala",regex:'"""',next:"pop"},{token:"constant.character.escape.vala",regex:"%[\\w\\.\\-]+"},{defaultToken:"string.quoted.triple.vala"}]}],"#throws":[{token:"storage.modifier.vala",regex:"throws",push:[{token:"meta.throwables.vala",regex:"(?={|;)",next:"pop"},{include:"#object-types"},{defaultToken:"meta.throwables.vala"}]}],"#values":[{include:"#strings"},{include:"#object-types"},{include:"#constants-and-special-vars"}]},this.normalizeRules()};s.metaData={comment:"Based heavily on the Java bundle's language syntax. TODO:\n* Closures\n* Delegates\n* Properties: Better support for properties.\n* Annotations\n* Error domains\n* Named arguments\n* Array slicing, negative indexes, multidimensional\n* construct blocks\n* lock blocks?\n* regex literals\n* DocBlock syntax highlighting. (Currently importing javadoc)\n* Folding rule for comments.\n",fileTypes:["vala"],foldingStartMarker:"(\\{\\s*(//.*)?$|^\\s*// \\{\\{\\{)",foldingStopMarker:"^\\s*(\\}|// \\}\\}\\}$)",name:"Vala",scopeName:"source.vala"},r.inherits(s,i),t.ValaHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/vala",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/vala_highlight_rules","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./vala_highlight_rules").ValaHighlightRules,u=e("./folding/cstyle").FoldMode,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=e("./matching_brace_outdent").MatchingBraceOutdent,c=function(){this.HighlightRules=o,this.$outdent=new l,this.$behaviour=new a,this.foldingRules=new f};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/vala"}.call(c.prototype),t.Mode=c})
\ No newline at end of file
diff --git a/js/ace/mode-vbscript.js b/js/ace/mode-vbscript.js
new file mode 100644
index 0000000..331221e
--- /dev/null
+++ b/js/ace/mode-vbscript.js
@@ -0,0 +1 @@
+ace.define("ace/mode/vbscript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["meta.ending-space"],regex:"$"},{token:[null],regex:"^(?=\\t)",next:"state_3"},{token:[null],regex:"^(?= )",next:"state_4"},{token:["text","storage.type.function.asp","text","entity.name.function.asp","text","punctuation.definition.parameters.asp","variable.parameter.function.asp","punctuation.definition.parameters.asp"],regex:"^(\\s*)(Function|Sub)(\\s*)([a-zA-Z_]\\w*)(\\s*)(\\()([^)]*)(\\))"},{token:"punctuation.definition.comment.asp",regex:"'|REM",next:"comment"},{token:["keyword.control.asp"],regex:"\\b(?:If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b"},{token:"keyword.operator.asp",regex:"\\b(?:Mod|And|Not|Or|Xor|as)\\b"},{token:"storage.type.asp",regex:"Dim|Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End sub|End Function|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo"},{token:"storage.modifier.asp",regex:"\\b(?:Private|Public|Default)\\b"},{token:"constant.language.asp",regex:"\\b(?:Empty|False|Nothing|Null|True)\\b"},{token:"punctuation.definition.string.begin.asp",regex:'"',next:"string"},{token:["punctuation.definition.variable.asp"],regex:"(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*"},{token:"support.class.asp",regex:"\\b(?:Application|ObjectContext|Request|Response|Server|Session)\\b"},{token:"support.class.collection.asp",regex:"\\b(?:Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b"},{token:"support.constant.asp",regex:"\\b(?:TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b"},{token:"support.function.asp",regex:"\\b(?:Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b"},{token:"support.function.event.asp",regex:"\\b(?:Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b"},{token:"support.function.vb.asp",regex:"\\b(?:Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b"},{token:["constant.numeric.asp"],regex:"-?\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\.?[0-9]*)|(?:\\.[0-9]+))(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b"},{token:"support.type.vb.asp",regex:"\\b(?:vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b"},{token:["entity.name.function.asp"],regex:"(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))"},{token:["keyword.operator.asp"],regex:"\\-|\\+|\\*\\/|\\>|\\<|\\=|\\&"}],state_3:[{token:["meta.odd-tab.tabs","meta.even-tab.tabs"],regex:"(\\t)(\\t)?"},{token:"meta.leading-space",regex:"(?=[^\\t])",next:"start"},{token:"meta.leading-space",regex:".",next:"state_3"}],state_4:[{token:["meta.odd-tab.spaces","meta.even-tab.spaces"],regex:"(  )(  )?"},{token:"meta.leading-space",regex:"(?=[^ ])",next:"start"},{defaultToken:"meta.leading-space"}],comment:[{token:"comment.line.apostrophe.asp",regex:"$|(?=(?:%>))",next:"start"},{defaultToken:"comment.line.apostrophe.asp"}],string:[{token:"constant.character.escape.apostrophe.asp",regex:'""'},{token:"string.quoted.double.asp",regex:'"',next:"start"},{defaultToken:"string.quoted.double.asp"}]}};r.inherits(s,i),t.VBScriptHighlightRules=s}),ace.define("ace/mode/vbscript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vbscript_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./vbscript_highlight_rules").VBScriptHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=["'","REM"],this.$id="ace/mode/vbscript"}.call(o.prototype),t.Mode=o})
\ No newline at end of file
diff --git a/js/ace/mode-velocity.js b/js/ace/mode-velocity.js
new file mode 100644
index 0000000..7163147
--- /dev/null
+++ b/js/ace/mode-velocity.js
@@ -0,0 +1 @@
+ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(e){var t=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"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",s="\\\\(?: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:"\\/\\/",next:"line_comment"},i.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:"("+r+")(\\.)(prototype)(\\.)("+r+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"("+r+")(\\.)("+r+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+r+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+r+")(\\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:"(?:"+n+")\\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(?:op|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:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:r},{token:"keyword.operator",regex:/--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],start:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/",next:"line_comment_regex_allowed"},{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:"/[sxngimy]*",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.charclass.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:r},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],comment:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:"comment",regex:"$|^",next:"start"},{defaultToken:"comment",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:"comment",regex:"$|^",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!e||!e.noES6)&&this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)return n.unshift("start",t),"paren";if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","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(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../range").Range,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/css").CssBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules(o,"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:["manifest"],head:[],title:[],base:["href","target"],link:["href","hreflang","rel","media","type","sizes"],meta:["http-equiv","name","content","charset"],style:["type","media","scoped"],script:["charset","type","src","defer","async"],noscript:["href"],body:["onafterprint","onbeforeprint","onbeforeunload","onhashchange","onmessage","onoffline","onpopstate","onredo","onresize","onstorage","onundo","onunload"],section:[],nav:[],article:["pubdate"],aside:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],footer:[],address:[],main:[],p:[],hr:[],pre:[],blockquote:["cite"],ol:["start","reversed"],ul:[],li:["value"],dl:[],dt:[],dd:[],figure:[],figcaption:[],div:[],a:["href","target","ping","rel","media","hreflang","type"],em:[],strong:[],small:[],s:[],cite:[],q:["cite"],dfn:[],abbr:[],data:[],time:["datetime"],code:[],"var":[],samp:[],kbd:[],sub:[],sup:[],i:[],b:[],u:[],mark:[],ruby:[],rt:[],rp:[],bdi:[],bdo:[],span:[],br:[],wbr:[],ins:["cite","datetime"],del:["cite","datetime"],img:["alt","src","height","width","usemap","ismap"],iframe:["name","src","height","width","sandbox","seamless"],embed:["src","height","width","type"],object:["param","data","type","height","width","usemap","name","form","classid"],param:["name","value"],video:["src","autobuffer","autoplay","loop","controls","width","height","poster"],audio:["src","autobuffer","autoplay","loop","controls"],source:["src","type","media"],track:["kind","src","srclang","label","default"],canvas:["width","height"],map:["name"],area:["shape","coords","href","hreflang","alt","target","media","rel","ping","type"],svg:[],math:[],table:["summary"],caption:[],colgroup:["span"],col:["span"],tbody:[],thead:[],tfoot:[],tr:[],td:["headers","rowspan","colspan"],th:["headers","rowspan","colspan","scope"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],fieldset:["disabled","form","name"],legend:[],label:["form","for"],input:["type","accept","alt","autocomplete","checked","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","multiple","pattern","placeholder","readonly","required","size","src","step","width","files","value"],button:["autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","value","type"],select:["autofocus","disabled","form","multiple","name","size"],datalist:[],optgroup:["disabled","label"],option:["disabled","selected","label","value"],textarea:["autofocus","disabled","form","maxlength","name","placeholder","readonly","required","rows","cols","wrap"],keygen:["autofocus","challenge","disabled","form","keytype","name"],output:["for","form","name"],progress:["value","max"],meter:["value","min","max","low","high","optimum"],details:["open"],summary:[],command:["type","label","icon","disabled","checked","radiogroup","command"],menu:["type","label"],dialog:["open"]},a=Object.keys(u),c=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);return i?f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open")?this.getTagCompletions(e,t,n,r):f(i,"tag-whitespace")||f(i,"attribute-name")?this.getAttributeCompetions(e,t,n,r):[]:[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompetions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(u[i])),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})}}).call(c.prototype),t.HtmlCompletions=c}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/velocity_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./html_highlight_rules").HtmlHighlightRules,u=function(){o.call(this);var e=i.arrayToMap("true|false|null".split("|")),t=i.arrayToMap("_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool".split("|")),n=i.arrayToMap("$contentRoot|$foreach".split("|")),r=i.arrayToMap("#set|#macro|#include|#parse|#if|#elseif|#else|#foreach|#break|#end|#stop".split("|"));this.$rules.start.push({token:"comment",regex:"##.*$"},{token:"comment.block",regex:"#\\*",next:"vm_comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(i){return r.hasOwnProperty(i)?"keyword":e.hasOwnProperty(i)?"constant.language":n.hasOwnProperty(i)?"variable.language":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?"support.function":i=="debugger"?"invalid.deprecated":i.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*)$/)?"variable":"identifier"},regex:"[a-zA-Z$#][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}),this.$rules.vm_comment=[{token:"comment",regex:"\\*#|-->",next:"start"},{defaultToken:"comment"}],this.$rules.vm_start=[{token:"variable",regex:"}",next:"pop"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(i){return r.hasOwnProperty(i)?"keyword":e.hasOwnProperty(i)?"constant.language":n.hasOwnProperty(i)?"variable.language":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?"support.function":i=="debugger"?"invalid.deprecated":i.match(/^(\$[a-zA-Z_$][a-zA-Z0-9_]*)$/)?"variable":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}];for(var s in this.$rules)this.$rules[s].unshift({token:"variable",regex:"\\${",push:"vm_start"});this.normalizeRules()};r.inherits(u,s),t.VelocityHighlightRules=u}),ace.define("ace/mode/folding/velocity",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="##")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="##")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="##"&&s[i]=="##")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="##"&&o[i]=="##"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/velocity",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/velocity_highlight_rules","ace/mode/folding/velocity"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./html").Mode,s=e("./velocity_highlight_rules").VelocityHighlightRules,o=e("./folding/velocity").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="##",this.blockComment={start:"#*",end:"*#"},this.$id="ace/mode/velocity"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-verilog.js b/js/ace/mode-verilog.js
new file mode 100644
index 0000000..9883bd3
--- /dev/null
+++ b/js/ace/mode-verilog.js
@@ -0,0 +1 @@
+ace.define("ace/mode/verilog_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xorbegin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|macromodule|module|primitive|repeat|specify|table|task|while",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce|main",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"//.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.VerilogHighlightRules=s}),ace.define("ace/mode/verilog",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/verilog_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./verilog_highlight_rules").VerilogHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/verilog"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-vhdl.js b/js/ace/mode-vhdl.js
new file mode 100644
index 0000000..94a061c
--- /dev/null
+++ b/js/ace/mode-vhdl.js
@@ -0,0 +1 @@
+ace.define("ace/mode/vhdl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="access|after|ailas|all|architecture|assert|attribute|begin|block|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|file|for|function|generate|generic|guarded|if|impure|in|inertial|inout|is|label|linkage|literal|loop|mapnew|next|of|on|open|others|out|port|process|pure|range|record|reject|report|return|select|shared|subtype|then|to|transport|type|unaffected|united|until|wait|when|while|with",t="bit|bit_vector|boolean|character|integer|line|natural|positive|real|register|severity|signal|signed|std_logic|std_logic_vector|string||text|time|unsigned|variable",n="array|constant",r="abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|srasrl|xnor|xor",i="true|false|null",s=this.createKeywordMapper({"keyword.operator":r,keyword:e,"constant.language":i,"storage.modifier":n,"storage.type":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"\\s*(?:library|package|use)\\b"},{token:s,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"&|\\*|\\+|\\-|\\/|<|=|>|\\||=>|\\*\\*|:=|\\/=|>=|<=|<>"},{token:"punctuation.operator",regex:"\\'|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[(]"},{token:"paren.rparen",regex:"[\\])]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.VHDLHighlightRules=s}),ace.define("ace/mode/vhdl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vhdl_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./vhdl_highlight_rules").VHDLHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/vhdl"}.call(u.prototype),t.Mode=u})
\ No newline at end of file
diff --git a/js/ace/mode-xml.js b/js/ace/mode-xml.js
new file mode 100644
index 0000000..e155bf9
--- /dev/null
+++ b/js/ace/mode-xml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[a-zA-Z][-_a-zA-Z0-9]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"<!--",end:"-->"},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/js/ace/mode-xquery.js b/js/ace/mode-xquery.js
new file mode 100644
index 0000000..69ad8cc
--- /dev/null
+++ b/js/ace/mode-xquery.js
@@ -0,0 +1 @@
+ace.define("ace/mode/xquery/xquery_lexer",["require","exports","module"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.XQueryTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal("EQName",g);switch(y){case 77:f(77);break;case 91:f(91);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 140:f(140);break;case 147:f(147);break;case 160:f(160);break;case 180:f(180);break;case 186:f(186);break;case 211:f(211);break;case 221:f(221);break;case 222:f(222);break;case 238:f(238);break;case 239:f(239);break;case 248:f(248);break;default:u()}E.endNonterminal("EQName",g)}function u(){E.startNonterminal("FunctionName",g);switch(y){case 14:f(14);break;case 65:f(65);break;case 68:f(68);break;case 69:f(69);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 88:f(88);break;case 89:f(89);break;case 98:f(98);break;case 100:f(100);break;case 103:f(103);break;case 104:f(104);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 113:f(113);break;case 114:f(114);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 148:f(148);break;case 154:f(154);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 165:f(165);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 177:f(177);break;case 179:f(179);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 213:f(213);break;case 214:f(214);break;case 215:f(215);break;case 219:f(219);break;case 224:f(224);break;case 230:f(230);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 245:f(245);break;case 249:f(249);break;case 251:f(251);break;case 255:f(255);break;case 261:f(261);break;case 265:f(265);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 257:f(257);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal("FunctionName",g)}function a(){E.startNonterminal("NCName",g);switch(y){case 26:f(26);break;case 65:f(65);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 89:f(89);break;case 100:f(100);break;case 104:f(104);break;case 108:f(108);break;case 113:f(113);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 126:f(126);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 215:f(215);break;case 219:f(219);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 249:f(249);break;case 261:f(261);break;case 265:f(265);break;case 68:f(68);break;case 69:f(69);break;case 77:f(77);break;case 88:f(88);break;case 91:f(91);break;case 98:f(98);break;case 103:f(103);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 114:f(114);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 124:f(124);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 140:f(140);break;case 147:f(147);break;case 148:f(148);break;case 154:f(154);break;case 160:f(160);break;case 165:f(165);break;case 177:f(177);break;case 179:f(179);break;case 180:f(180);break;case 186:f(186);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 211:f(211);break;case 213:f(213);break;case 214:f(214);break;case 221:f(221);break;case 222:f(222);break;case 224:f(224);break;case 230:f(230);break;case 238:f(238);break;case 239:f(239);break;case 245:f(245);break;case 248:f(248);break;case 251:f(251);break;case 255:f(255);break;case 257:f(257);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal("NCName",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=28)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?"lexical analysis failed":"syntax error"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split("\n"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?"":", found "+n)+"\nwhile expecting "+(t.length==1?t[0]:"["+t.join(", ")+"]")+"\n"+(u==0||n!=null?"":"after successfully scanning "+u+" characters beginning ")+"at line "+s+", column "+o+":\n..."+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+"..."},this.parse_start=function(){E.startNonterminal("start",g),h(14);switch(y){case 55:f(55);break;case 54:f(54);break;case 56:f(56);break;case 40:f(40);break;case 42:f(42);break;case 41:f(41);break;case 35:f(35);break;case 38:f(38);break;case 274:f(274);break;case 271:f(271);break;case 39:f(39);break;case 43:f(43);break;case 49:f(49);break;case 62:f(62);break;case 63:f(63);break;case 46:f(46);break;case 48:f(48);break;case 53:f(53);break;case 51:f(51);break;case 34:f(34);break;case 273:f(273);break;case 2:f(2);break;case 1:f(1);break;case 3:f(3);break;case 12:f(12);break;case 13:f(13);break;case 15:f(15);break;case 16:f(16);break;case 17:f(17);break;case 5:f(5);break;case 6:f(6);break;case 4:f(4);break;case 33:f(33);break;default:o()}E.endNonterminal("start",g)},this.parse_StartTag=function(){E.startNonterminal("StartTag",g),h(8);switch(y){case 58:f(58);break;case 50:f(50);break;case 27:f(27);break;case 57:f(57);break;case 35:f(35);break;case 38:f(38);break;default:f(33)}E.endNonterminal("StartTag",g)},this.parse_TagContent=function(){E.startNonterminal("TagContent",g),p(11);switch(y){case 23:f(23);break;case 6:f(6);break;case 7:f(7);break;case 55:f(55);break;case 54:f(54);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;default:f(33)}E.endNonterminal("TagContent",g)},this.parse_AposAttr=function(){E.startNonterminal("AposAttr",g),p(10);switch(y){case 20:f(20);break;case 25:f(25);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 38:f(38);break;default:f(33)}E.endNonterminal("AposAttr",g)},this.parse_QuotAttr=function(){E.startNonterminal("QuotAttr",g),p(9);switch(y){case 19:f(19);break;case 24:f(24);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 35:f(35);break;default:f(33)}E.endNonterminal("QuotAttr",g)},this.parse_CData=function(){E.startNonterminal("CData",g),p(1);switch(y){case 11:f(11);break;case 64:f(64);break;default:f(33)}E.endNonterminal("CData",g)},this.parse_XMLComment=function(){E.startNonterminal("XMLComment",g),p(0);switch(y){case 9:f(9);break;case 47:f(47);break;default:f(33)}E.endNonterminal("XMLComment",g)},this.parse_PI=function(){E.startNonterminal("PI",g),p(3);switch(y){case 10:f(10);break;case 59:f(59);break;case 60:f(60);break;default:f(33)}E.endNonterminal("PI",g)},this.parse_Pragma=function(){E.startNonterminal("Pragma",g),p(2);switch(y){case 8:f(8);break;case 36:f(36);break;case 37:f(37);break;default:f(33)}E.endNonterminal("Pragma",g)},this.parse_Comment=function(){E.startNonterminal("Comment",g),p(4);switch(y){case 52:f(52);break;case 41:f(41);break;case 30:f(30);break;default:f(33)}E.endNonterminal("Comment",g)},this.parse_CommentDoc=function(){E.startNonterminal("CommentDoc",g),p(5);switch(y){case 31:f(31);break;case 32:f(32);break;case 52:f(52);break;case 41:f(41);break;default:f(33)}E.endNonterminal("CommentDoc",g)},this.parse_QuotString=function(){E.startNonterminal("QuotString",g),p(6);switch(y){case 18:f(18);break;case 29:f(29);break;case 19:f(19);break;case 21:f(21);break;case 35:f(35);break;default:f(33)}E.endNonterminal("QuotString",g)},this.parse_AposString=function(){E.startNonterminal("AposString",g),p(7);switch(y){case 18:f(18);break;case 29:f(29);break;case 20:f(20);break;case 22:f(22);break;case 38:f(38);break;default:f(33)}E.endNonterminal("AposString",g)},this.parse_Prefix=function(){E.startNonterminal("Prefix",g),h(13),l(),a(),E.endNonterminal("Prefix",g)},this.parse__EQName=function(){E.startNonterminal("_EQName",g),h(12),l(),o(),E.endNonterminal("_EQName",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<276;i+=32){var s=i,o=(i>>5)*2062+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35,35,35,35,35,35,35,35,35,35,35,35,31,31,35,35,35,35,35,35,35,65,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,35,31,35,31,31,35],r.INITIAL=[1,2,36867,45060,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22908,18836,17152,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18579,21711,17152,19008,19233,20367,19008,28684,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20116,18836,18637,19008,19233,21267,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18763,18778,18794,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18821,22923,18906,19008,19233,17431,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18937,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19054,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,18953,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21843,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21696,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22429,20131,18720,19008,19233,20367,19008,17173,23559,36437,17330,17349,18921,17189,17208,17281,20355,18087,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,21242,19111,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19024,18836,18609,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19081,22444,18987,19008,19233,20367,19008,19065,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21992,22007,18987,19008,19233,20367,19008,18690,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22414,18836,18987,19008,19233,30651,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19138,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19280,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,19172,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21783,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19218,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21651,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19249,19265,19307,18888,27857,30536,24401,31444,23357,18888,19351,18888,18890,27211,19370,27211,27211,19392,24401,31911,24401,24401,25467,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,17994,24060,18888,18888,18888,18890,19468,27211,27211,27211,27211,19484,35367,19520,24401,24401,24401,19628,18888,29855,18888,18888,23086,27211,19538,27211,27211,30756,24012,24401,19560,24401,24401,26750,18888,18888,19327,27855,27211,27211,19580,17590,24017,24401,24401,19600,25665,18888,18888,28518,27211,27212,24016,19620,19868,28435,25722,18889,19644,27211,32888,35852,19868,31018,19694,19376,19717,22215,19735,22098,19751,35203,19776,19797,19817,19840,25783,31738,24135,19701,19856,31015,23516,31008,28311,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21768,18836,19307,18888,27857,27904,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,19888,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22399,18836,19918,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21666,18836,19307,18888,27857,27525,24401,29183,21467,18888,18888,18888,18890,27211,27211,27211,27211,19946,24401,24401,24401,24401,32382,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19998,24401,24401,24401,24401,31500,18467,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,20021,24401,24401,24401,24401,24401,34271,18888,18888,18888,18888,23086,27211,27211,27211,27211,32926,29908,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,20050,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20101,19039,20191,20412,20903,17569,20309,20872,25633,20623,20505,20218,20242,17189,17208,17281,20355,20265,20306,20328,20383,22490,20796,20619,21354,20654,20410,20956,21232,20765,17421,20535,17192,18127,22459,20312,25531,22470,20309,20428,18964,20466,20491,21342,21070,20521,20682,17714,18326,17543,17559,17585,22497,20559,19504,20279,20575,20290,20475,20604,20639,20226,20670,17661,21190,17703,21176,17730,19494,20698,20711,22480,21046,21116,18971,21130,20727,20755,17675,17753,17832,17590,25518,20394,20781,20831,20202,20847,21401,17292,17934,17979,18549,20863,20588,25542,20888,20919,18072,18117,20935,20972,21032,21062,21086,18239,21102,18563,21146,21162,21206,18351,20949,20902,18340,21222,21258,21283,18360,20249,17405,21295,21311,21327,20739,20343,21370,21386,21417,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21977,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,21452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,21504,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,36501,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,28674,21946,17617,36473,18223,17237,17477,19152,17860,17892,17675,17753,17832,21575,21534,17481,19156,17864,18731,17918,36551,17292,17934,21560,30628,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21798,18836,21612,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21636,18836,18987,19008,19233,17902,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21753,19096,21903,19008,19233,20367,19008,19291,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17379,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,21931,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18280,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21962,18594,18987,19008,19233,22043,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21681,21858,18987,19008,19233,20367,19008,21544,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,32319,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,22231,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,31678,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,33588,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,35019,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22248,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22324,18836,22059,18888,27857,30501,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,34365,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22354,18836,18987,19008,19233,20367,19008,17173,27086,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,19930,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22309,22513,18987,19008,19233,20367,19008,19122,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,22544,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22608,18836,22988,23004,27585,23020,23036,23067,22087,18888,18888,18888,23083,27211,27211,27211,23102,22121,24401,24401,24401,23122,31386,26154,19674,18888,28119,28232,19424,23705,27211,27211,23142,23173,23189,23212,24401,24401,23246,34427,31693,23262,18888,23290,23308,27783,27620,23327,35263,35107,33383,23346,18193,23393,32748,23968,24401,23414,35153,23463,18888,33913,23442,23482,27211,27211,23532,23552,21431,23575,24401,24401,23604,26095,23635,23657,18888,33482,23685,33251,27211,22187,18851,23721,35536,24401,18887,23750,32641,27211,23769,23787,20080,33012,24384,25659,18888,18889,27211,27211,19719,23889,23803,31018,18890,27211,31833,19406,19447,23086,23330,19828,28224,31826,23823,26917,34978,23850,26493,25782,23878,23914,23516,31008,22105,19419,27963,19659,29781,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22623,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,28909,25783,27211,27211,27211,34048,23933,22164,24401,24401,24401,28409,23949,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,26583,18888,18888,18888,35585,23984,27211,27211,27211,24005,22201,24033,24401,24401,24401,24052,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,26496,24076,24126,24151,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22638,18836,22059,19678,27857,24185,24401,24201,24217,26592,18888,18888,18890,24252,24268,27211,27211,22121,24287,24303,24401,24401,30613,19781,35432,36007,32649,18888,25783,24322,28966,23771,27211,35072,22164,24358,32106,26829,24400,31500,31693,18888,18888,18888,24801,18890,27211,27211,27211,27211,24418,19484,24401,24401,24401,24401,20167,31181,18888,18888,18888,27833,23086,27211,27211,33540,27211,30756,21431,24401,24401,22972,24401,26095,18888,36131,18888,27855,27211,24440,27211,22187,22968,24401,24459,24401,31699,28454,18888,34528,34570,35779,24478,24402,24494,25659,18888,36228,27211,27211,24515,30981,23734,31018,18890,27211,31833,19406,19447,23086,23330,24538,31017,27856,31741,30059,23377,24563,19837,25782,19760,31015,23516,25374,22105,19419,29793,24579,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22653,18836,22059,25756,19982,34097,23196,29183,24614,24110,23641,24673,26103,24697,24443,24713,28558,22121,24748,24462,24764,23398,30613,18888,18888,18888,18888,24798,25783,27211,27211,27211,34232,35072,22164,24401,24401,24401,33302,31500,22559,24106,24232,18888,18888,34970,24817,30411,27211,27211,32484,19484,29750,35127,24401,24401,19872,31181,24852,18888,18888,24871,29221,27211,27211,32072,27211,30756,34441,24401,24401,31571,24401,26095,33141,27802,27011,27855,25295,25607,24888,22187,22968,19195,34593,24906,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,33663,27211,27211,24924,24947,23588,31018,18890,27211,31833,22135,19447,23086,23330,19828,30904,31042,24972,19840,25e3,31738,30898,25782,19760,31015,23516,31008,22105,19419,25016,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22668,18836,25041,25057,31320,25073,25089,25105,22087,34796,24236,36138,34870,34125,25121,23106,35497,22248,36613,25137,30671,27365,30613,25153,26447,25199,25233,22574,23274,25249,25265,25281,25318,25344,25360,25400,25428,25452,26731,25504,31693,23669,25558,27407,25575,28599,25934,25599,27211,28180,27304,25623,25839,25649,24401,34820,25681,25698,22586,27775,30190,25745,25778,25799,25817,28995,33569,30756,21518,33443,25837,25855,25893,26095,31254,26677,30136,27855,25930,25950,27211,22187,22968,25966,25986,24401,23428,27763,36330,26959,26002,26029,26045,26085,26119,26170,26203,26222,26239,30527,26372,26274,28404,31018,33757,27211,34262,26316,36729,26345,26366,35337,31017,26388,26407,30954,26350,33861,26434,26463,26479,26512,23516,33189,26531,26547,27963,31293,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22683,18836,26568,26181,26608,34097,26643,29183,22087,26669,18888,18888,18890,26693,27211,27211,27211,22121,26720,24401,24401,24401,30613,18888,18888,18888,18888,26774,25783,27211,27211,27211,26619,35072,22164,24401,24401,24401,21596,31500,31693,18888,18888,33978,18888,18890,27211,27211,25801,27211,27211,19484,24401,24401,24401,26792,24401,31181,18888,18888,18888,35464,23086,27211,27211,27211,26809,30756,21431,24401,24401,24401,26828,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,31948,18889,35707,27211,19719,26845,19868,31018,18890,27211,31833,19406,19447,23086,23330,26905,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,24984,31088,19419,26945,27651,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22698,18836,26999,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23051,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,27033,24401,24401,24401,24401,24036,31693,18888,18888,27056,18888,18890,27211,27211,30320,27211,27211,27075,24401,24401,29032,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,33986,27855,27211,27211,27102,17590,24017,24401,24401,27123,27144,36254,27162,27210,27228,28500,18187,34842,33426,27244,35980,27277,27302,27320,36048,34013,20999,31882,21478,27895,27356,30287,27381,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,26329,30087,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,27406,27423,27445,35294,27461,22087,18888,18888,30140,18890,27211,27211,27989,27211,22121,24401,24401,25682,24401,18866,18888,18888,18888,18888,18888,34042,27211,27211,27211,27211,29700,22164,24401,24401,24401,24401,27128,31693,27477,18888,18888,18888,18890,27194,27211,27211,27211,27211,19484,35299,24401,24401,24401,24401,19628,18888,18888,18888,27059,23086,27211,27211,27211,33366,30756,24012,24401,24401,24401,35044,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,20815,27211,30818,19960,33969,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22713,18836,22059,27496,27516,27541,35231,27557,22087,29662,26292,23292,27573,24836,27601,27211,27636,22121,35544,27686,24401,27721,18866,18888,27799,18888,27818,22071,27853,32260,27211,26013,27873,27920,22164,29419,24401,29946,33413,26742,27751,26881,18888,18888,27261,36776,27936,27211,27211,27211,27988,28005,28031,28052,24401,24401,28069,28088,28135,25488,28152,26069,28167,27211,28340,24657,28196,30756,31523,24401,28212,34176,36174,24956,28248,28266,28290,21488,33077,28327,28356,17590,20986,23126,28391,28425,28102,28451,28470,28490,28516,28534,20034,33728,25868,25659,18888,18889,27211,27211,19719,23889,19868,30241,28274,28553,28574,19406,28590,23086,23330,19828,19452,28615,28660,26147,25783,31738,19837,25782,19760,29613,35958,29276,22105,19419,27963,23157,28700,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,22528,18888,18888,18888,18888,18890,27333,27211,27211,27211,27211,19484,30853,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22728,18836,28747,28782,28817,28841,28857,28880,28896,24161,28943,32011,36261,27340,28961,29492,28982,29011,24522,29027,25436,29048,23051,27500,29090,29110,30713,18888,23512,29130,25183,27211,29155,28927,27033,29173,23230,24401,29199,35373,31693,18888,18888,25583,32629,29218,27211,27211,31461,30692,29237,27075,24401,24401,24401,29262,29302,19628,18888,34329,18888,18888,23086,27211,29329,27211,27211,30756,24012,35933,24401,24401,24401,27705,31612,18888,18888,29346,29374,27211,35650,17590,21436,29393,24401,25970,18887,33895,18888,27211,32528,27212,24016,32769,19868,25659,18888,26889,27211,27211,29412,23889,24371,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31768,19840,25783,31738,19837,29435,29508,31102,29550,29606,22105,30300,29462,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22743,18836,22059,29629,29473,34097,33285,29183,29651,27254,18888,29678,33329,32535,27211,29694,29716,22121,19202,24401,32742,29741,18866,26776,33921,28474,18888,18888,25783,29766,27211,29809,27211,35072,22164,35825,24401,29828,24401,24036,36769,25217,18888,18888,29848,18890,27211,29871,27211,26258,27211,29894,24401,29929,24401,36587,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,29725,29962,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18473,18888,18888,19584,27211,27212,24016,29982,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19902,19447,32052,19544,19828,29998,30097,30031,19840,25783,30047,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,30075,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22758,18836,30121,30156,30206,30257,30273,30336,22087,35624,32837,25762,18890,29878,34934,26812,27211,22121,24931,23223,29202,24401,18866,34373,30352,18888,18888,18888,23447,24828,27211,27211,27211,35072,30370,35052,24401,24401,24401,24036,29523,18888,18888,27146,18888,31308,30386,27211,27211,30405,30558,19484,30427,24401,24401,29938,35686,19628,28766,30447,34506,35614,23086,28731,30482,30517,30552,30756,24012,20156,30574,30598,30667,26283,33464,28945,27670,30687,32915,33504,25328,17590,23963,20450,33837,21016,32397,26300,30708,30729,27885,30748,21588,36373,30779,26653,24628,33220,32514,30806,31835,25412,25906,26515,18890,28825,31833,26133,19447,28304,31730,23834,26057,30869,30885,32181,30920,30942,32797,25782,30970,31015,23516,31008,30997,31034,27963,19659,29450,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22773,18836,31058,31074,32463,31125,31141,31197,22087,18888,29534,35471,36738,27211,24342,31213,24424,22121,24401,20175,31229,31917,27736,31245,34334,27175,18888,29094,27286,27211,31278,31336,27211,31355,31371,24401,31402,31418,24401,31437,31693,18888,31619,32841,18888,18890,27211,27211,31460,31477,27211,19484,24401,24401,31497,36581,24401,33020,18888,18888,18888,18888,30007,27211,27211,27211,27211,31516,32310,24401,24401,24401,24401,31539,18888,28762,18888,24651,35740,27211,27211,28644,31565,35796,24401,24401,19318,32188,18888,24334,28366,27212,29966,29832,19868,25659,18888,18889,27211,27211,19719,31587,19868,31635,32435,33693,30105,31663,20005,31715,31757,31784,31812,30015,31851,31878,25783,31898,19837,25782,19760,31015,23516,31008,22105,19419,27963,31933,30221,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22788,18836,22059,25729,30466,31968,24306,31984,32e3,32807,35160,27017,29590,34941,19801,29377,33700,22121,27040,30431,29396,28864,29565,18888,18888,18888,32027,18888,25783,27211,27211,23698,27211,35072,22164,24401,24401,30845,24401,24036,32045,18888,26929,18888,18888,18890,27211,31481,32068,27211,27211,32088,24401,33058,32122,24401,24401,33736,18888,18888,33162,18888,23086,27211,27211,29484,27211,28375,32144,24401,24401,33831,24401,26750,18888,18888,18888,27855,27211,27211,27211,36704,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,33107,22171,33224,24271,32169,31017,27856,31741,19840,25783,31738,30234,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,32204,32232,32252,32677,33295,29074,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23619,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,32276,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,32299,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,33886,18889,36065,27211,19719,35326,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22803,18836,32335,31647,34666,32351,32367,32417,22087,18888,32433,19335,32451,27211,32479,27107,32500,22121,24401,32551,20085,32572,18866,22287,23753,18888,18888,32602,32665,27211,32693,27211,26972,32713,32729,24401,32764,24401,25877,32785,34768,18888,27390,32823,24594,24855,32857,24890,32878,32904,27211,32942,32977,24401,33e3,29313,24401,30790,26206,27666,33904,18888,23086,36353,27211,33036,27211,30756,24012,32153,24401,33056,24401,35861,18888,18888,30354,27972,27211,27211,33800,17590,20145,24401,24401,34638,20811,18888,18888,33074,27211,27212,36167,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,34616,24169,33093,33123,33157,27856,31741,23862,26552,34302,19837,25782,19760,31015,23516,31008,33178,19973,27963,23497,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22818,18836,33205,28113,33240,34097,33275,29183,22087,33318,35438,18888,18890,33345,26391,33382,27211,22121,33399,28072,33442,24401,18866,22232,18888,33459,18888,18888,33480,33498,25175,27211,27211,26704,22164,24775,35239,24401,24401,25914,29580,18888,18888,31109,25211,33520,33539,27211,27211,33556,36284,19484,33585,24401,24401,33604,32556,19628,18888,18888,31262,33658,23086,27211,27211,33679,27211,30756,24012,24401,24401,33716,24401,26854,27480,18888,33752,27855,33259,34701,27211,17590,32102,24782,23807,24401,18887,18888,18888,27211,27211,27212,33773,36105,19868,25659,18888,23368,27211,29157,19719,23889,34454,29286,18890,33794,25302,33816,19447,34079,33853,31862,31017,27856,31741,33877,28920,33937,19837,30461,34002,22276,36041,34029,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22833,18836,34064,32616,34113,34141,34157,34192,34208,32216,36013,31549,31952,34224,34248,34287,29330,34350,34389,34413,34481,26793,18866,26187,29635,22293,18888,36654,25783,34522,34544,34566,25821,35072,22164,34586,34609,34632,19604,24036,36644,36674,24681,18888,32401,34654,31339,34682,34698,27211,34717,34753,28053,34812,34836,24401,33619,19628,34858,32236,34906,24598,33523,27612,34890,34922,24732,29246,36717,33634,34465,32984,34168,26750,34957,18888,18888,34994,35010,27211,33040,17590,29913,35035,24401,36304,25482,30171,35883,35068,35088,26627,20441,31173,35123,35143,35176,24640,30492,29358,19719,35192,35219,25384,28801,35255,35279,32586,34496,23086,23330,29061,31017,27856,31741,19840,25783,31738,24547,25164,35315,31796,35353,34316,22105,19419,27963,24091,28630,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22848,18836,22059,34782,34088,35389,21008,35405,35421,35454,18888,18888,23466,35487,27211,27211,27211,35513,31154,24401,24401,24401,35560,18888,26863,36664,35601,24872,25783,30389,23536,26250,35647,35666,22164,19522,19564,30582,35682,27697,35575,29114,18888,18888,18888,18890,27211,35702,27211,27211,27211,35723,24401,35527,24401,24401,24401,19628,30184,18888,18888,18888,23086,35739,27211,27211,27211,29139,22938,24401,24401,24401,24401,23898,35756,18888,18888,25025,35778,27211,27211,17590,20064,35795,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,23917,18890,34550,31833,22262,19447,23086,23330,26418,31017,27856,31741,19840,25783,35812,19837,27187,35841,33135,23516,31008,22105,22148,28712,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22863,18836,22059,35877,28723,34097,31164,29183,22087,26758,18888,22592,18890,23989,27211,29812,27211,22121,33778,24401,31421,24401,18866,18888,18888,26872,18888,18888,25783,27211,30732,27211,27211,35072,22164,24401,24908,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22878,18836,22059,27837,27857,35899,24401,35915,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31602,18888,18888,18888,18888,26223,27211,27211,27211,27211,27211,19484,35931,24401,24401,24401,24401,19628,18888,28136,18888,18888,35949,27211,32862,27211,32697,30756,24012,24401,32283,24401,32128,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22893,18836,22059,35974,34882,34097,33960,29183,35996,18888,23311,18888,36029,27211,27211,36064,36081,22121,24401,24401,36104,33950,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,36121,18888,25559,18888,18888,18890,27211,27211,30313,27211,27211,36154,24401,24401,34397,24401,24401,19628,28250,18888,18888,18888,23086,30926,27211,27211,27211,26983,24012,33642,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,19354,27857,36190,24401,36206,22087,18888,18888,18888,18007,27211,27211,27211,24724,22121,24401,24401,24401,30827,18866,18888,36222,18888,28795,18888,25783,35100,27211,27429,27211,35072,22164,30836,24401,24499,24401,24036,31693,18888,36244,18888,18888,18890,27211,36088,27211,27211,27211,19484,24401,28036,24401,24401,24401,19628,18888,18888,35631,18888,35762,27211,27211,36277,27211,34730,24012,24401,24401,36300,24401,36320,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,25712,18888,18888,36346,27211,27212,19184,24402,19868,25659,32029,18889,27211,33359,19719,23889,36369,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22384,18836,36389,19008,19233,20367,36434,17173,17595,36437,17330,17349,18921,17189,17208,17281,20355,36453,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22369,18836,18987,19008,19233,20367,19008,21737,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21813,18836,36489,19008,19233,20367,19008,17173,17737,36437,17330,17349,18921,17189,17208,17281,20355,17768,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20543,22022,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,36517,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,19307,18888,27857,30756,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,36567,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,36603,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,36629,36690,18720,19008,19233,20367,19008,17454,17595,36437,17330,17349,18921,17189,17208,17281,20355,17223,17308,17327,17346,18918,36754,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,0,94242,0,118820,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2482176,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,27,27,27,2207744,2404352,2412544,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3104768,2605056,2207744,2207744,2207744,2207744,2207744,2207744,2678784,2207744,2695168,2207744,2703360,2207744,2711552,2752512,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,0,2158592,2158592,3170304,3174400,2158592,0,139,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2158592,2158592,2158592,2863104,2891776,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2785280,2207744,2809856,2207744,2207744,2842624,2207744,2207744,2207744,2899968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2473984,2207744,2207744,2494464,2207744,2207744,2207744,2523136,2158592,2404352,2412544,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2605056,2158592,2158592,2158592,2158592,2158592,2158592,2678784,2158592,2695168,2158592,2703360,2158592,2711552,2752512,2158592,2158592,2785280,2158592,2158592,2785280,2158592,2809856,2158592,2158592,2842624,2158592,2158592,2158592,2899968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,18,0,0,0,0,0,0,0,2211840,0,0,641,0,2158592,0,0,0,0,0,0,0,0,2211840,0,0,32768,0,2158592,0,2158592,2158592,2158592,2383872,2158592,2158592,2158592,2158592,3006464,2383872,2207744,2207744,2207744,2207744,2158877,2158877,2158877,2158877,0,0,0,2158877,2572573,2158877,2158877,0,2207744,2207744,2596864,2207744,2207744,2207744,2207744,2207744,2207744,2641920,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,167936,0,0,2162688,0,0,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,0,0,2146304,2146304,2224128,2224128,2232320,2232320,2232320,641,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2531328,2158592,2158592,2158592,2158592,2158592,2617344,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,2158592,2502656,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2158592,2158592,2158592,2158592,2158592,2699264,2158592,2158592,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2207744,2863104,2891776,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3018752,2207744,3043328,2207744,2207744,2207744,2207744,3080192,2207744,2207744,3112960,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,172310,279,0,2162688,0,0,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2158592,2158592,2158592,2404352,2412544,2158592,2510848,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2584576,2158592,2609152,2158592,2158592,2629632,2158592,2158592,2158592,2686976,2158592,2715648,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2158592,2158592,3170304,3174400,2158592,2367488,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,0,2207744,2207744,2207744,2433024,2207744,2453504,2461696,2207744,2207744,2207744,2207744,2207744,2207744,2510848,2207744,2207744,2207744,2207744,2207744,2531328,2207744,2207744,2207744,2207744,2207744,2617344,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,1508,2715648,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2867200,2207744,2904064,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2580480,2207744,2207744,2207744,2207744,2621440,2207744,2207744,2207744,3149824,2207744,2207744,3170304,3174400,2207744,0,0,0,0,0,0,0,0,0,0,138,2158592,2158592,2158592,2404352,2412544,2707456,2732032,2207744,2207744,2207744,2822144,2826240,2207744,2895872,2207744,2207744,2924544,2207744,2207744,2973696,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,285,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3186688,2158592,2207744,2207744,2158592,2158592,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2158592,0,0,2535424,2543616,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2990080,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2572288,2981888,2207744,2207744,3002368,2207744,3047424,3063808,3076096,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3203072,2708960,2732032,2158592,2158592,2158592,2822144,2827748,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2981888,2158592,2158592,3002368,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2981888,2158592,2158592,3003876,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,20480,0,0,0,0,0,2162688,20480,0,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2908160,2527232,2207744,2207744,2576384,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2908160,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,286,2158592,2158592,0,0,2158592,2158592,2158592,2158592,2633728,2658304,0,0,2740224,2744320,0,2834432,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,0,0,29315,0,0,0,0,45,45,45,45,45,933,45,45,45,45,442,45,45,45,45,45,45,45,45,45,67,67,2494464,2158592,2158592,2158592,2524757,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,1504,2158592,2498560,2158592,2158592,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,2736128,2158592,2158592,0,2158592,2912256,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3108864,2158592,2158592,3133440,3145728,3153920,2375680,2379776,2207744,2207744,2420736,2207744,2449408,2207744,2207744,2207744,2498560,2207744,2207744,2207744,2207744,2568192,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,551,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,2020,2158592,2592768,2625536,2207744,2207744,2674688,2736128,2207744,2207744,2207744,2912256,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,542,0,544,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,641,0,0,0,0,0,0,2367488,2158592,2498560,2158592,2158592,1621,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,1608,97,97,97,97,97,97,97,97,97,97,1107,97,97,1110,97,97,3133440,3145728,3153920,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3014656,2158592,2158592,3051520,2158592,2158592,3100672,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2416640,2207744,2465792,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2633728,2658304,2740224,2744320,2834432,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,32768,0,0,0,0,0,0,2367488,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2158592,2158592,2478080,2158592,2158592,2158592,2535424,2543616,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3117056,2207744,2207744,2478080,2207744,2207744,2207744,2207744,2699264,2207744,2207744,2207744,2207744,2207744,2748416,2756608,2777088,2801664,2207744,2207744,2158877,2158877,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,0,0,2535709,2543901,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2990365,2158877,2158877,2158730,2158730,2158730,2158730,2158730,2572426,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158592,2158592,2478080,2207744,2207744,2990080,2207744,2207744,2158592,2158592,2482176,2158592,2158592,0,0,0,2158592,2158592,2158592,0,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,3010560,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158592,2428928,2158592,2514944,0,0,2158592,2588672,2158592,0,2838528,2158592,2158592,2158592,3010560,2158592,2506752,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,0,29315,922,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,1539,45,3006464,2383872,0,2020,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,2207744,0,0,2158592,2637824,2953216,2158592,2539520,2158592,2539520,2207744,0,0,2539520,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,0,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2965504,2965504,2965504,0,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2474269,2158877,2158877,0,0,2158877,2158877,2158877,2158877,2634013,2658589,0,0,2740509,2744605,0,2834717,40976,18,36884,45078,24,28,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,36884,0,0,0,24,24,24,27,27,27,27,90143,0,0,86016,0,0,2211840,102439,0,0,0,98347,0,2158592,2158592,2158592,2158592,2158592,3158016,0,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,0,94242,0,0,0,2211840,102439,0,0,106538,98347,135,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2158592,2158592,2158592,2596864,2158592,2158592,2158592,2158592,2158592,2158592,2641920,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2494464,2158592,2158592,2158592,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,0,27,27,0,2158592,2498560,2158592,2158592,0,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2494464,2158592,2158592,2158592,3006464,2383872,0,0,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,40976,18,36884,45078,24,27,147488,94242,147456,147488,106538,98347,0,0,147456,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,81920,0,94242,0,0,0,2211840,0,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2428928,2158592,2514944,2158592,2588672,2158592,2838528,2158592,2158592,40976,18,151573,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,1487,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,0,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,130,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,3096576,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,644,2207744,2207744,2207744,3186688,2207744,0,1080,0,1084,0,1088,0,0,0,0,0,0,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2531466,2158730,2158730,2158730,2158730,2158730,2617482,0,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2158592,2818048,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,159779,159744,102439,159779,98347,0,0,159744,40976,18,18,36884,0,45078,0,2224253,172032,2224253,2232448,2232448,172032,2232448,90143,0,0,2170880,0,0,550,829,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,124,124,127,127,127,40976,18,36884,45078,25,29,90143,94242,0,102439,106538,98347,0,0,163931,40976,18,18,36884,0,45078,249856,24,24,24,27,27,27,27,90143,0,0,2170880,0,0,827,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,4243810,4243810,24,24,27,27,27,2207744,0,0,0,0,0,0,2166784,0,0,0,0,57344,286,2158592,2158592,2158592,2158592,2707456,2732032,2158592,2158592,2158592,2822144,2826240,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,53248,0,0,0,0,0,97,97,97,97,97,1613,97,97,97,97,97,97,1495,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,2207744,0,0,0,0,0,0,2166784,546,0,0,0,0,286,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,17,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,120,121,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,2170880,0,53248,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,196608,18,266240,24,24,27,27,27,0,94242,0,0,0,38,102439,0,0,106538,98347,0,45,45,45,45,45,45,45,1535,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,424,45,45,45,45,45,45,45,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,199,45,45,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1766,67,67,67,1767,67,24850,24850,12564,12564,0,0,2166784,546,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,743,57889,0,2170880,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1856,45,1858,1859,67,67,67,1009,67,67,67,67,67,67,67,67,67,67,67,1021,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,0,2367773,2158877,2158877,2158877,2158877,2158877,2158877,2699549,2158877,2158877,2158877,2158877,2158877,2748701,2756893,2777373,2801949,97,1115,97,97,97,97,97,97,97,97,97,97,97,97,97,97,857,97,67,67,67,67,67,1258,67,67,67,67,67,67,67,67,67,67,67,1826,67,97,97,97,97,97,97,1338,97,97,97,97,97,97,97,97,97,97,97,97,97,870,97,97,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1579,67,67,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,97,904,905,97,97,97,97,1620,97,97,97,97,97,97,97,97,97,97,97,0,921,0,0,0,0,0,0,45,1679,67,67,67,1682,67,67,67,67,67,67,67,67,67,1690,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,189,45,45,45,1748,45,45,45,1749,1750,45,45,45,45,45,45,45,45,67,67,67,67,1959,67,67,67,67,1768,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,1791,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1802,67,1817,67,67,67,67,67,67,1823,67,67,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,1848,45,45,45,45,45,45,45,45,45,45,45,659,45,45,45,45,45,45,45,1863,67,67,67,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,1878,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,67,67,67,67,97,97,97,97,0,0,0,1973,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1165,97,1167,67,24850,24850,12564,12564,0,0,2166784,0,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,1789,97,0,94242,0,0,0,2211840,102439,0,0,106538,98347,136,2158592,2158592,2158592,2158592,2158592,3158016,229376,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,67,24850,24850,12564,12564,0,0,280,547,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,1788,97,97,0,97,2024,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,235,67,67,67,67,67,57889,547,547,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,1799,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1092,0,0,0,0,0,97,97,97,97,1612,97,97,97,97,1616,97,1297,1472,0,0,0,0,1303,1474,0,0,0,0,1309,1476,0,0,0,0,97,97,97,1481,97,97,97,97,97,97,1488,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,97,607,97,97,97,97,40976,18,36884,45078,26,30,90143,94242,0,102439,106538,98347,0,0,213080,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,143448,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,0,0,0,97,97,97,97,1482,97,1483,97,97,97,97,97,97,1326,97,97,1329,1330,97,97,97,97,97,97,1159,1160,97,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,0,94242,0,0,0,2211974,102439,0,0,106538,98347,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2474122,2158730,2158730,2494602,2158730,2158730,2158730,2809994,2158730,2158730,2842762,2158730,2158730,2158730,2900106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3014794,2158730,2158730,3051658,2158730,2158730,3100810,2158730,2158730,2158730,2158730,3096714,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,2207744,541,541,543,543,0,0,2166784,0,548,549,549,0,286,2158877,2158877,2158877,2863389,2892061,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3186973,2158877,0,0,0,0,0,0,0,0,2367626,2158877,2404637,2412829,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2564381,2158877,2158877,2605341,2158877,2158877,2158877,2158877,2158877,2158877,2679069,2158877,2695453,2158877,2703645,2158877,2711837,2752797,2158877,0,2158877,2158877,2158877,2384010,2158730,2158730,2158730,2158730,3006602,2383872,2207744,2207744,2207744,2207744,2207744,2207744,3096576,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,0,2158877,2785565,2158877,2810141,2158877,2158877,2842909,2158877,2158877,2158877,2900253,2158877,2158877,2158877,2158877,2158877,2531613,2158877,2158877,2158877,2158877,2158877,2617629,2158877,2158877,2158877,2158877,2158730,2818186,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3105053,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,0,0,0,0,0,97,97,97,1611,97,97,97,97,97,97,97,1496,97,97,1499,97,97,97,97,97,2441354,2445450,2158730,2158730,2158730,2158730,2158730,2158730,2502794,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2433162,2158730,2453642,2461834,2158730,2158730,2158730,2158730,2158730,2158730,2580618,2158730,2158730,2158730,2158730,2621578,2158730,2158730,2158730,2158730,2158730,2158730,2699402,2158730,2158730,2158730,2158730,2678922,2158730,2695306,2158730,2703498,2158730,2711690,2752650,2158730,2158730,2785418,2158730,2158730,2158730,3113098,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3186826,2158730,2207744,2207744,2207744,2207744,2781184,2793472,2207744,2818048,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,541,0,543,2158877,2502941,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2580765,2158877,2158877,2158877,2158877,2621725,2158877,3019037,2158877,3043613,2158877,2158877,2158877,2158877,3080477,2158877,2158877,3113245,2158877,2158877,2158877,2158877,0,2158877,2908445,2158877,2158877,2158877,2978077,2158877,2158877,2158877,2158877,3039517,2158877,2158730,2510986,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2584714,2158730,2609290,2158730,2158730,2629770,2158730,2158730,2158730,2388106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2605194,2158730,2158730,2158730,2158730,2687114,2158730,2715786,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2867338,2158730,2904202,2158730,2158730,2158730,2642058,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2781322,2793610,2158730,3121290,2158730,2158730,2158730,3149962,2158730,2158730,3170442,3174538,2158730,2367488,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2441216,2445312,2207744,2207744,2207744,2207744,2207744,2207744,2502656,2158877,2433309,2158877,2453789,2461981,2158877,2158877,2158877,2158877,2158877,2158877,2511133,2158877,2158877,2158877,2158877,2584861,2158877,2609437,2158877,2158877,2629917,2158877,2158877,2158877,2687261,2158877,2715933,2158877,2158730,2158730,2973834,2158730,2982026,2158730,2158730,3002506,2158730,3047562,3063946,3076234,2158730,2158730,2158730,2158730,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158877,2507037,0,0,2158877,2158730,2158730,2158730,3203210,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2564096,2207744,2207744,2207744,2707741,2732317,2158877,2158877,2158877,2822429,2826525,2158877,2896157,2158877,2158877,2924829,2158877,2158877,2973981,2158877,18,0,0,0,0,0,0,0,2211840,0,0,642,0,2158592,0,45,1529,45,45,45,45,45,45,45,45,45,45,45,45,45,1755,45,67,67,2982173,2158877,2158877,3002653,2158877,3047709,3064093,3076381,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3203357,2523274,2527370,2158730,2158730,2576522,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2908298,2494749,2158877,2158877,2158877,2523421,2527517,2158877,2158877,2576669,2158877,2158877,2158877,2158877,2158877,2158877,0,40976,0,18,18,4321280,2224253,2232448,4329472,2232448,2158730,2498698,2158730,2158730,2158730,2158730,2568330,2158730,2592906,2625674,2158730,2158730,2674826,2736266,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2158730,2912394,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3109002,2158730,2158730,3133578,3145866,3154058,2375680,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375965,2380061,2158877,2158877,2421021,2158877,2449693,2158877,2158877,2158877,3117341,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3104906,2158730,2158730,2158730,2158730,2158730,2158730,2158877,2498845,2158877,2158877,0,2158877,2158877,2568477,2158877,2593053,2625821,2158877,2158877,2674973,0,0,0,0,97,97,1480,97,97,97,97,97,1485,97,97,97,0,97,97,1729,97,1731,97,97,97,97,97,97,97,311,97,97,97,97,97,97,97,97,1520,97,97,1523,97,97,1526,97,2736413,2158877,2158877,0,2158877,2912541,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3109149,2158877,2158877,3014941,2158877,2158877,3051805,2158877,2158877,3100957,2158877,2158877,3121437,2158877,2158877,2158877,3150109,3133725,3146013,3154205,2158730,2408586,2416778,2158730,2465930,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3018890,2158730,3043466,2158730,2158730,2158730,2158730,3080330,2633866,2658442,2740362,2744458,2834570,2949258,2158730,2986122,2158730,2998410,2158730,2158730,2158730,3129482,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158877,2408733,2416925,2158877,2466077,2158877,2158877,3170589,3174685,2158877,0,0,0,2158730,2158730,2158730,2158730,2158730,2424970,2158730,2158730,2158730,2158730,2707594,2732170,2158730,2158730,2158730,2822282,2826378,2158730,2896010,2158730,2158730,2924682,2949405,2158877,2986269,2158877,2998557,2158877,2158877,2158877,3129629,2158730,2158730,2478218,2158730,2158730,2158730,2535562,2543754,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3117194,2207744,2207744,2478080,2207744,2207744,2207744,2207744,3014656,2207744,2207744,3051520,2207744,2207744,3100672,2207744,2207744,3121152,2207744,2207744,2207744,2207744,2207744,2584576,2207744,2609152,2207744,2207744,2629632,2207744,2207744,2207744,2686976,2207744,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158877,2158877,2478365,0,2158877,2158877,2158877,2158877,2158877,2158877,2158730,2158730,2482314,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,823,0,825,2158730,2158730,2158730,2990218,2158730,2158730,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,135,0,2207744,2207744,2990080,2207744,2207744,2158877,2158877,2482461,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,2158877,2158730,2429066,2158730,2515082,2158730,2588810,2158730,2838666,2158730,2158730,2158730,3010698,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158877,2429213,2158877,2515229,0,0,2158877,2588957,2158877,0,2838813,2158877,2158877,2158877,3010845,2158730,2506890,2158730,2158730,2158730,2748554,2756746,2777226,2801802,2158730,2158730,2158730,2863242,2891914,2158730,2158730,2158730,2158730,2158730,2158730,2564234,2158730,2158730,2158730,2158730,2158730,2597002,2158730,2158730,2158730,3006464,2384157,0,0,2158877,2158877,2158877,2158877,3006749,2158730,2637962,2953354,2158730,2207744,2637824,2953216,2207744,0,0,2158877,2638109,2953501,2158877,2539658,2158730,2539520,2207744,0,0,2539805,2158877,2158730,2158730,2158730,2977930,2158730,2158730,2158730,2158730,3039370,2158730,2158730,2158730,2158730,2158730,2158730,3158154,2207744,0,2158877,2158730,2207744,0,2158877,2158730,2207744,0,2158877,2965642,2965504,2965789,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,97,1484,97,97,97,97,2158592,18,0,122880,0,0,0,77824,0,2211840,0,0,0,0,2158592,0,356,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,45,1751,45,45,45,45,45,45,45,67,67,1427,67,67,67,67,67,1432,67,67,67,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,122880,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,1322,550,0,286,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,4329472,27,27,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,542,0,0,0,542,0,544,0,0,0,544,0,550,0,0,0,0,0,97,97,1610,97,97,97,97,97,97,97,97,898,97,97,97,97,97,97,97,0,94242,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,94242,237568,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,192512,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,94,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,96,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,12378,40976,18,18,36884,0,45078,0,24,24,24,126,126,126,126,90143,0,0,2170880,0,0,0,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,20480,40976,0,18,18,24,24,27,27,27,40976,18,36884,45078,24,27,90143,94242,241664,102439,106538,98347,0,0,20568,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,200797,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,0,0,44,0,0,20575,40976,18,36884,45078,24,27,90143,94242,0,41,41,41,0,0,1126400,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,89,40976,18,18,36884,0,45078,0,24,24,24,27,131201,27,27,90143,0,0,2170880,0,0,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,208896,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,0,0,0,0,0,0,2367488,32768,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2433024,2158592,2453504,2461696,2158592,2158592,2158592,2158592,2158592,2158592,2510848,2158592,2158592,2158592,2158592,40976,18,36884,245783,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,221184,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,180224,40976,18,18,36884,155648,45078,0,24,24,217088,27,27,27,217088,90143,0,0,2170880,0,0,828,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,233472,0,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,718,45,45,45,45,45,45,45,45,45,727,131427,0,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,45,1808,45,45,45,45,67,67,67,67,67,67,67,97,97,0,0,97,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,0,0,97,97,97,97,97,97,1787,0,97,97,0,97,97,97,45,45,45,45,2029,45,67,67,67,67,2033,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,97,45,1798,45,45,1800,45,45,0,1472,0,0,0,0,0,1474,0,0,0,0,0,1476,0,0,0,0,1315,0,0,0,0,97,97,97,97,1320,97,97,0,0,97,97,97,97,1786,97,0,0,97,97,0,1790,1527,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,663,67,24850,24850,12564,12564,0,57889,281,0,0,53531,53531,367,286,97,97,0,0,97,97,97,1785,97,97,0,0,97,97,0,97,97,1979,97,97,45,45,1983,45,1984,45,45,45,45,45,652,45,45,45,45,45,45,45,45,45,45,690,45,45,694,45,45,40976,19,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,262144,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,46,67,98,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,45,67,97,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,258048,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,1122423,40976,18,36884,45078,24,27,90143,94242,0,1114152,1114152,1114152,0,0,1114112,40976,18,36884,45078,24,27,90143,94242,37,102439,106538,98347,0,0,204800,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,57436,40976,18,36884,45078,24,27,33,33,0,33,33,33,0,0,0,40976,18,18,36884,0,45078,0,124,124,124,127,127,127,127,90143,0,0,2170880,0,0,550,0,2158877,2158877,2158877,2388253,2158877,2158877,2158877,2158877,2158877,2781469,2793757,2158877,2818333,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2867485,2158877,2904349,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3096861,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2441501,2445597,2158877,2158877,2158877,2158877,2158877,40976,122,123,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,936,2158592,4243810,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,935,45,45,45,715,45,45,45,45,45,45,45,723,45,45,45,45,45,1182,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,45,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,47,68,99,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,48,69,100,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,49,70,101,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,50,71,102,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,51,72,103,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,52,73,104,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,53,74,105,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,54,75,106,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,55,76,107,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,56,77,108,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,57,78,109,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,58,79,110,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,59,80,111,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,60,81,112,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,61,82,113,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,62,83,114,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,63,84,115,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,64,85,116,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,65,86,117,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,66,87,118,40976,18,36884,45078,24,27,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,0,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1314,0,0,0,0,0,0,97,97,97,97,97,1321,97,18,131427,0,0,0,0,0,0,362,0,0,365,0,367,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1360,97,97,131,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,145,149,45,45,45,45,45,174,45,179,45,185,45,188,45,45,202,67,255,67,67,269,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,292,296,97,97,97,97,97,321,97,326,97,332,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,646,335,97,97,349,97,97,0,40976,0,18,18,24,24,27,27,27,437,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,523,67,67,67,67,67,67,67,67,67,67,67,67,511,67,67,67,97,97,97,620,97,97,97,97,97,97,97,97,97,97,97,97,97,1501,1502,97,793,67,67,796,67,67,67,67,67,67,67,67,67,67,808,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,2052,67,67,67,67,813,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,830,97,97,97,97,97,97,97,97,97,315,97,97,97,97,97,97,841,97,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,589,97,97,97,97,97,97,97,97,97,867,97,97,97,97,97,97,97,891,97,97,894,97,97,97,97,97,97,97,97,97,97,906,45,937,45,45,940,45,45,45,45,45,45,948,45,45,45,45,45,734,735,67,737,67,738,67,740,67,67,67,45,967,45,45,45,45,45,45,45,45,45,45,45,45,45,45,435,45,45,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,67,67,67,67,67,25398,1081,13112,1085,54074,1089,0,0,0,0,0,0,363,0,28809,0,139,45,45,45,45,45,45,1674,45,45,45,45,45,45,45,45,67,1913,67,1914,67,67,67,1918,67,67,97,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,630,97,97,97,97,97,1169,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,45,1534,45,45,45,45,45,1538,45,45,45,45,1233,45,45,45,45,45,45,67,67,67,67,67,67,67,67,742,67,45,45,1191,45,45,45,45,45,45,45,45,45,45,45,45,45,454,67,67,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,1251,67,0,0,97,97,97,97,45,45,67,67,2050,0,97,97,45,45,45,732,45,45,67,67,67,67,67,67,67,67,67,67,67,67,97,97,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,772,67,67,67,1293,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,368,2158592,2158592,2158592,2404352,2412544,1323,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,1737,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,1373,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,647,45,45,1387,45,45,1391,45,45,45,45,45,45,45,45,45,45,410,45,45,45,45,45,1400,45,45,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,941,45,943,45,45,45,45,45,45,951,45,67,1438,67,67,67,67,67,67,67,67,67,67,1447,67,67,67,67,67,67,782,67,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,97,1491,97,97,97,97,97,97,97,97,97,97,1500,97,97,97,0,97,97,97,97,97,97,97,97,97,97,1736,97,45,45,1541,45,45,45,45,45,45,45,45,45,45,45,45,45,677,45,45,67,1581,67,67,67,67,67,67,67,67,67,67,67,67,67,67,791,792,67,67,67,67,1598,67,1600,67,67,67,67,67,67,67,67,1472,97,97,97,1727,97,97,97,97,97,97,97,97,97,97,97,97,97,1513,97,97,67,67,97,1879,97,1881,97,0,1884,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,1842,97,97,67,67,67,67,67,97,97,97,97,1928,0,0,0,97,97,97,97,97,97,45,45,45,45,45,1903,45,45,45,67,67,67,67,97,97,97,97,1971,0,0,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1381,45,45,45,45,1976,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1747,809,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,97,907,97,97,97,97,97,97,97,97,97,97,97,638,0,0,0,0,1478,97,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,67,67,67,67,1244,67,67,67,67,67,67,67,67,67,67,67,477,67,67,67,67,67,67,1294,67,67,67,67,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1324,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,0,1374,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,945,45,45,45,45,45,45,45,45,1908,45,45,1910,45,67,67,67,67,67,67,67,67,1919,67,0,0,97,97,97,97,45,2048,67,2049,0,0,97,2051,45,45,45,939,45,45,45,45,45,45,45,45,45,45,45,45,397,45,45,45,1921,67,67,1923,67,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1947,45,1935,0,0,0,97,1939,97,97,1941,97,45,45,45,45,45,45,382,389,45,45,45,45,45,45,45,45,1810,45,45,1812,67,67,67,67,67,256,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,336,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,45,371,373,45,45,45,955,45,45,45,45,45,45,45,45,45,45,45,45,413,45,45,45,457,459,67,67,67,67,67,67,67,67,473,67,478,67,67,482,67,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,97,1828,97,554,556,97,97,97,97,97,97,97,97,570,97,575,97,97,579,97,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,330,97,97,67,746,67,67,67,67,67,67,67,67,67,758,67,67,67,67,67,67,67,1575,67,67,67,67,67,67,67,67,493,67,67,67,67,67,67,67,97,97,844,97,97,97,97,97,97,97,97,97,856,97,97,97,0,97,97,97,97,97,97,97,97,1735,97,97,97,0,97,97,97,97,97,97,97,1642,97,1644,97,97,890,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,67,67,67,67,1065,1066,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,67,67,67,496,67,67,97,97,1505,97,97,97,97,97,97,97,97,97,97,97,97,97,593,97,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,1617,97,97,1635,0,1637,97,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,67,67,1704,67,67,67,67,97,97,97,97,97,97,97,97,97,565,572,97,97,97,97,97,97,97,97,1832,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,1946,45,45,67,67,67,67,67,97,1926,97,1927,97,0,0,0,97,97,1934,2043,0,0,97,97,97,2047,45,45,67,67,0,1832,97,97,45,45,45,981,45,45,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,131427,0,0,0,0,362,0,365,28809,367,139,45,45,372,45,45,45,45,1661,1662,45,45,45,45,45,1666,45,45,45,45,45,1673,45,1675,45,45,45,45,45,45,45,67,1426,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,67,67,45,418,45,45,420,45,45,423,45,45,45,45,45,45,45,45,959,45,45,962,45,45,45,45,458,67,67,67,67,67,67,67,67,67,67,67,67,67,67,483,67,67,67,67,504,67,67,506,67,67,509,67,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,555,97,97,97,97,97,97,97,97,97,97,97,97,97,97,580,97,97,97,97,601,97,97,603,97,97,606,97,97,97,97,97,97,848,97,97,97,97,97,97,97,97,97,1498,97,97,97,97,97,97,45,45,714,45,45,45,45,45,45,45,45,45,45,45,45,45,989,990,45,67,67,67,67,67,1011,67,67,67,67,1015,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,467,67,67,67,67,67,67,67,45,45,1179,45,45,45,45,45,45,45,45,45,45,45,45,45,1003,1004,67,1217,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,728,67,1461,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,97,1516,97,97,97,97,97,97,97,97,97,97,97,97,97,97,871,97,67,67,67,1705,67,67,67,97,97,97,97,97,97,97,97,97,567,97,97,97,97,97,97,97,97,97,97,1715,97,97,97,97,97,97,97,97,97,0,0,0,45,45,1380,45,45,45,45,45,67,67,97,97,97,97,97,0,0,0,97,1887,97,97,0,0,97,97,97,0,97,97,97,97,97,2006,45,45,1907,45,45,45,45,45,67,67,67,67,67,67,67,67,67,1920,67,97,0,2035,97,97,97,97,97,45,45,45,45,67,67,67,1428,67,67,67,67,67,67,1435,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,146,45,152,45,45,165,45,175,45,180,45,45,187,190,195,45,203,254,257,262,67,270,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,293,97,299,97,97,312,97,322,97,327,97,97,334,337,342,97,350,97,97,0,40976,0,18,18,24,24,27,27,27,67,484,67,67,67,67,67,67,67,67,67,67,67,67,67,499,97,581,97,97,97,97,97,97,97,97,97,97,97,97,97,596,648,45,650,45,651,45,653,45,45,45,657,45,45,45,45,45,45,1954,67,67,67,1958,67,67,67,67,67,67,67,768,67,67,67,67,67,67,67,67,769,67,67,67,67,67,67,67,680,45,45,45,45,45,45,45,45,688,689,691,45,45,45,45,45,983,45,45,45,45,45,45,45,45,45,45,947,45,45,45,45,952,45,45,698,699,45,45,702,703,45,45,45,45,45,45,45,711,744,67,67,67,67,67,67,67,67,67,757,67,67,67,67,761,67,67,67,67,765,67,767,67,67,67,67,67,67,67,67,775,776,778,67,67,67,67,67,67,785,786,67,67,789,790,67,67,67,67,67,67,1442,67,67,67,67,67,67,67,67,67,97,97,97,1775,97,97,97,67,67,67,67,67,798,67,67,67,802,67,67,67,67,67,67,67,67,1465,67,67,1468,67,67,1471,67,67,810,67,67,67,67,67,67,67,67,67,821,25398,542,13112,544,57889,0,0,54074,54074,550,0,833,97,835,97,836,97,838,97,97,0,0,97,97,97,2002,97,97,97,97,97,45,45,45,45,45,1740,45,45,45,1744,45,45,45,97,842,97,97,97,97,97,97,97,97,97,855,97,97,97,97,0,1717,1718,97,97,97,97,97,1722,97,0,0,859,97,97,97,97,863,97,865,97,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,873,874,876,97,97,97,97,97,97,883,884,97,97,887,888,97,18,131427,0,0,0,0,0,0,362,225280,0,365,0,367,0,45,45,45,1531,45,45,45,45,45,45,45,45,45,45,45,1199,45,45,45,45,45,97,97,908,97,97,97,97,97,97,97,97,97,919,638,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2425117,2158877,2158877,2158877,2158877,2158877,2158877,2597149,2158877,2158877,2158877,2158877,2158877,2158877,2642205,2158877,2158877,2158877,2158877,2158877,3158301,0,2375818,2379914,2158730,2158730,2420874,2158730,2449546,2158730,2158730,953,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,965,978,45,45,45,45,45,45,985,45,45,45,45,45,45,45,45,971,45,45,45,45,45,45,45,67,67,67,67,67,1027,67,1029,67,67,67,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,1077,1078,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,366,0,139,2158730,2158730,2158730,2404490,2412682,1113,97,97,97,97,97,97,1121,97,1123,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1540,1155,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,1168,97,97,1171,1172,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,1533,45,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,183,45,45,45,45,201,45,45,45,1219,45,45,45,45,45,45,45,1226,45,45,45,45,45,168,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1046,67,67,1254,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,806,807,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,1351,97,97,97,1354,97,97,97,1359,97,97,97,0,97,97,97,97,1640,97,97,97,97,97,97,97,897,97,97,97,902,97,97,97,97,97,97,97,97,1366,97,97,97,97,97,97,97,1371,97,97,97,0,97,97,97,1730,97,97,97,97,97,97,97,97,915,97,97,97,97,0,360,0,67,67,67,1440,67,67,67,67,67,67,67,67,67,67,67,67,1017,67,1019,67,67,67,67,67,1453,67,67,67,67,67,67,67,67,67,67,1459,97,97,97,1493,97,97,97,97,97,97,97,97,97,97,97,97,97,1525,97,97,97,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,1514,67,67,67,67,1584,67,67,67,67,67,1590,67,67,67,67,67,67,67,783,67,67,67,788,67,67,67,67,67,67,67,67,67,1599,1601,67,67,67,1604,67,1606,1607,67,1472,0,1474,0,1476,0,97,97,97,97,97,97,1614,97,97,97,97,45,45,1850,45,45,45,45,1855,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,1229,97,1618,97,97,97,97,97,97,97,1625,97,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,447,45,45,45,45,45,67,67,1633,97,97,0,97,97,97,97,97,97,97,97,1643,1645,97,97,0,0,97,97,1784,97,97,97,0,0,97,97,0,97,1894,1895,97,1897,97,45,45,45,45,45,45,45,45,45,656,45,45,45,45,45,45,97,1648,97,1650,1651,97,0,45,45,45,1654,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,658,45,45,45,45,664,45,45,1659,45,45,45,45,45,45,45,45,45,45,45,45,45,1187,45,45,1669,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1005,67,67,1681,67,67,67,67,67,67,67,1686,67,67,67,67,67,67,67,784,67,67,67,67,67,67,67,67,1055,67,67,67,67,1060,67,67,97,97,1713,97,0,97,97,97,97,97,97,97,97,97,0,0,0,1378,45,45,45,45,45,45,45,408,45,45,45,45,45,45,45,45,1547,45,1549,45,45,45,45,45,97,97,1780,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,2027,2028,45,45,67,67,2031,2032,67,45,45,1804,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1917,67,67,67,67,67,67,67,1819,67,67,67,67,67,67,67,67,97,97,97,1708,97,97,97,97,97,45,45,1862,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,67,1877,97,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,1839,0,0,97,97,97,97,1936,0,0,97,97,97,97,97,97,1943,1944,1945,45,45,45,45,670,45,45,45,45,674,45,45,45,45,678,45,1948,45,1950,45,45,45,45,1955,1956,1957,67,67,67,1960,67,1962,67,67,67,67,1967,1968,1969,97,0,0,0,97,97,1974,97,0,1936,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1906,0,1977,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,1746,45,45,45,45,2011,67,67,2013,67,67,67,2017,97,97,0,0,2021,97,8192,97,97,2025,45,45,45,45,45,45,67,67,67,67,67,1916,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,140,45,45,45,1180,45,45,45,45,1184,45,45,45,45,45,45,45,387,45,392,45,45,396,45,45,399,45,45,67,207,67,67,67,67,67,67,236,67,67,67,67,67,67,67,800,67,67,67,67,67,67,67,67,67,1603,67,67,67,67,67,0,97,97,287,97,97,97,97,97,97,316,97,97,97,97,97,97,0,45,45,45,45,45,45,45,1656,1657,45,376,45,45,45,45,45,388,45,45,45,45,45,45,45,45,1406,45,45,45,45,45,45,45,67,67,67,67,462,67,67,67,67,67,474,67,67,67,67,67,67,67,817,67,67,67,67,25398,542,13112,544,97,97,97,97,559,97,97,97,97,97,571,97,97,97,97,97,97,896,97,97,97,900,97,97,97,97,97,97,912,914,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,45,391,45,45,45,45,45,45,45,45,713,45,45,45,45,45,45,45,45,45,45,45,45,45,45,662,45,1140,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,636,67,67,1283,67,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,1363,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,889,97,97,97,1714,0,97,97,97,97,97,97,97,97,97,0,0,926,45,45,45,45,45,45,45,45,672,45,45,45,45,45,45,45,45,686,45,45,45,45,45,45,45,45,944,45,45,45,45,45,45,45,45,1676,45,45,45,45,45,45,67,97,97,97,1833,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1902,45,45,45,45,45,957,45,45,45,45,961,45,963,45,45,45,67,97,2034,0,97,97,97,97,97,2040,45,45,45,2042,67,67,67,67,67,67,1574,67,67,67,67,67,1578,67,67,67,67,67,67,799,67,67,67,804,67,67,67,67,67,67,67,1298,0,0,0,1304,0,0,0,1310,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,1414,45,45,45,45,45,45,45,45,45,45,428,45,45,45,45,45,57889,0,0,54074,54074,550,831,97,97,97,97,97,97,97,97,97,568,97,97,97,97,578,97,45,45,968,45,45,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,67,67,67,67,67,25398,1082,13112,1086,54074,1090,0,0,0,0,0,0,364,0,0,0,139,2158592,2158592,2158592,2404352,2412544,67,67,67,67,1464,67,67,67,67,67,67,67,67,67,67,67,510,67,67,67,67,97,97,97,97,1519,97,97,97,97,97,97,97,97,97,97,97,918,97,0,0,0,0,1528,45,45,45,45,45,45,45,45,45,45,45,45,45,45,976,45,1554,45,45,45,45,45,45,45,45,1562,45,45,1565,45,45,45,45,683,45,45,45,687,45,45,692,45,45,45,45,45,1953,45,67,67,67,67,67,67,67,67,67,1014,67,67,67,67,67,67,1568,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,1594,97,97,1649,97,97,97,0,45,45,1653,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,45,45,1670,45,1672,45,45,45,45,45,45,45,45,45,45,67,736,67,67,67,67,67,741,67,67,67,1680,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,67,1692,67,67,67,67,67,67,67,1697,67,1699,67,67,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,468,475,67,67,67,67,67,67,1769,67,67,67,67,67,67,67,97,97,97,97,97,97,97,624,97,97,97,97,97,97,634,97,97,1792,97,97,97,97,97,97,97,45,45,45,45,45,45,45,958,45,45,45,45,45,45,964,45,150,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,977,204,45,67,67,67,217,67,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,67,67,67,67,271,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,351,97,0,40976,0,18,18,24,24,27,27,27,45,45,938,45,45,45,45,45,45,45,45,45,45,45,45,45,1398,45,45,45,153,45,161,45,45,45,45,45,45,45,45,45,45,45,45,660,661,45,45,205,45,67,67,67,67,220,67,228,67,67,67,67,67,67,67,0,0,0,0,0,280,94,0,0,67,67,67,67,67,272,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,352,97,0,40976,0,18,18,24,24,27,27,27,45,439,45,45,45,45,45,445,45,45,45,452,45,45,67,67,212,216,67,67,67,67,67,241,67,246,67,252,67,67,486,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,1245,67,67,67,67,67,67,67,67,1013,67,67,1016,67,67,67,67,67,521,67,67,525,67,67,67,67,67,531,67,67,67,538,67,0,0,2046,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,1418,45,45,1421,97,97,583,97,97,97,97,97,97,97,591,97,97,97,97,97,97,913,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,1384,97,618,97,97,622,97,97,97,97,97,628,97,97,97,635,97,18,131427,0,0,0,639,0,132,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,932,45,45,45,45,45,1544,45,45,45,45,45,1550,45,45,45,45,45,1194,45,1196,45,45,45,45,45,45,45,45,999,45,45,45,45,45,67,67,45,45,667,45,45,45,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,696,45,45,45,701,45,45,45,45,45,45,45,45,710,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,194,45,45,45,729,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,805,67,67,67,67,67,67,67,1587,67,1589,67,67,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,0,0,0,0,0,0,2162968,0,0,67,67,67,67,67,814,816,67,67,67,67,67,25398,542,13112,544,67,67,1008,67,67,67,67,67,67,67,67,67,67,67,1020,67,0,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,45,67,67,67,67,1429,67,1430,67,67,67,67,67,1062,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,1076,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,97,97,97,97,1102,97,97,97,97,97,97,97,97,97,97,97,1124,97,1126,97,97,1114,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1112,97,97,1156,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,97,97,1170,97,97,97,97,0,921,0,0,0,0,0,0,45,45,45,45,1532,45,45,45,45,1536,45,45,45,45,45,172,45,45,45,45,45,45,45,45,45,45,706,45,45,709,45,45,1177,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,1204,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,45,45,1232,45,45,45,45,45,45,45,67,1237,67,67,67,67,67,67,1053,1054,67,67,67,67,67,67,1061,67,67,1282,67,67,67,67,67,67,67,67,67,1289,67,67,67,1292,97,97,97,97,1339,97,97,97,97,97,97,1344,97,97,97,97,45,1849,45,1851,45,45,45,45,45,45,45,45,721,45,45,45,45,45,726,45,1385,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1188,45,45,1401,1402,45,45,45,45,1405,45,45,45,45,45,45,45,45,1752,45,45,45,45,45,67,67,1410,45,45,45,1413,45,1415,45,45,45,45,45,45,1419,45,45,45,45,1806,45,45,45,45,45,45,67,67,67,67,67,67,67,97,97,2019,0,97,67,67,67,1452,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,1259,67,67,67,67,67,67,1264,67,67,1460,67,1462,67,67,67,67,67,67,1466,67,67,67,67,67,67,67,67,1588,67,67,67,67,67,67,67,0,1300,0,0,0,1306,0,0,0,97,97,97,1506,97,97,97,97,97,97,97,97,1512,97,97,97,0,1728,97,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,1515,97,1517,97,97,97,97,97,97,1521,97,97,97,97,97,97,0,45,1652,45,45,45,1655,45,45,45,45,45,1542,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,1553,45,45,45,1556,45,45,45,45,45,45,45,45,45,45,45,45,45,693,45,45,45,67,67,67,67,1572,67,67,67,67,1576,67,67,67,67,67,67,67,67,1602,67,67,1605,67,67,67,0,67,1582,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1580,67,67,1596,67,67,67,67,67,67,67,67,67,67,67,67,67,0,542,0,544,67,67,67,67,1759,67,67,67,67,67,67,67,67,67,67,67,533,67,67,67,67,67,67,67,1770,67,67,67,67,67,97,97,97,97,97,97,1777,97,97,97,1793,97,97,97,97,97,45,45,45,45,45,45,45,998,45,45,1001,1002,45,45,67,67,45,1861,45,67,67,67,67,67,67,67,67,1871,67,1873,1874,67,0,97,45,67,0,97,45,67,16384,97,45,67,97,0,0,0,1473,0,1082,0,0,0,1475,0,1086,0,0,0,1477,1876,67,97,97,97,97,97,1883,0,1885,97,97,97,1889,0,0,0,286,0,0,0,286,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,126,126,126,2053,0,2055,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,2039,97,45,45,45,45,67,67,67,67,67,226,67,67,67,67,67,67,67,67,1246,67,67,1249,1250,67,67,67,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,141,45,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,1186,45,45,1189,45,45,155,45,45,45,45,45,45,45,45,45,191,45,45,45,45,700,45,45,45,45,45,45,45,45,45,45,45,1753,45,45,45,67,67,45,45,67,208,67,67,67,222,67,67,67,67,67,67,67,67,67,1764,67,67,67,67,67,67,67,258,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,288,97,97,97,302,97,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,338,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,370,45,45,45,45,716,45,45,45,45,45,722,45,45,45,45,45,45,1912,67,67,67,67,67,67,67,67,67,819,67,67,25398,542,13112,544,45,403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1409,45,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,67,771,67,67,67,67,520,67,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,1271,67,67,67,1274,67,67,67,1279,67,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,553,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,97,1138,97,97,97,97,617,97,97,97,97,97,97,97,97,97,97,97,631,97,97,97,0,1834,97,97,97,97,97,0,0,0,97,97,97,97,97,353,0,40976,0,18,18,24,24,27,27,27,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,682,45,45,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,67,67,747,748,67,67,67,67,755,67,67,67,67,67,67,67,0,0,0,1302,0,0,0,1308,0,67,794,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1701,67,97,97,97,845,846,97,97,97,97,853,97,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,97,892,97,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,45,992,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,1239,67,67,67,1063,67,67,67,67,67,1068,67,67,67,67,67,67,67,0,0,1301,0,0,0,1307,0,0,97,1141,97,97,97,97,97,97,97,97,97,97,97,1152,97,97,0,0,97,97,2001,0,97,2003,97,97,97,45,45,45,1739,45,45,45,1742,45,45,45,45,45,97,97,97,97,1157,97,97,97,97,97,1162,97,97,97,97,97,97,1145,97,97,97,97,97,1151,97,97,97,1253,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,539,45,1423,45,45,67,67,67,67,67,67,67,1431,67,67,67,67,67,67,67,1695,67,67,67,67,67,1700,67,1702,67,67,1439,67,67,67,67,67,67,67,67,67,67,67,67,67,514,67,67,97,97,1492,97,97,97,97,97,97,97,97,97,97,97,97,97,611,97,97,1703,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,852,97,97,97,97,97,97,45,1949,45,1951,45,45,45,67,67,67,67,67,67,67,1961,67,0,97,45,67,0,97,2060,2061,0,2062,45,67,97,0,0,2036,97,97,97,97,45,45,45,45,67,67,67,67,67,223,67,67,237,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,507,67,67,67,67,67,67,67,1963,67,67,67,97,97,97,97,0,1972,0,97,97,97,1975,0,921,29315,0,0,0,0,45,45,45,931,45,45,45,45,45,407,45,45,45,45,45,45,45,45,45,417,45,45,1989,67,67,67,67,67,67,67,67,67,67,67,1996,97,18,131427,0,0,360,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,930,45,45,45,45,45,45,444,45,45,45,45,45,45,45,67,67,97,97,1998,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,1985,45,1986,45,45,45,156,45,45,170,45,45,45,45,45,45,45,45,45,45,675,45,45,45,45,679,131427,0,358,0,0,362,0,365,28809,367,139,45,45,45,45,45,381,45,45,45,45,45,45,45,45,45,400,45,45,419,45,45,45,45,45,45,45,45,45,45,45,45,436,67,67,67,67,67,505,67,67,67,67,67,67,67,67,67,67,820,67,25398,542,13112,544,67,67,522,67,67,67,67,67,529,67,67,67,67,67,67,67,0,1299,0,0,0,1305,0,0,0,97,97,619,97,97,97,97,97,626,97,97,97,97,97,97,97,1105,97,97,97,97,1109,97,97,97,67,67,67,67,749,67,67,67,67,67,67,67,67,67,760,67,0,97,45,67,2058,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,2041,67,67,67,67,67,780,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,97,97,97,878,97,97,97,97,97,97,97,97,97,97,97,97,97,1629,97,0,45,979,45,45,45,45,984,45,45,45,45,45,45,45,45,45,1198,45,45,45,45,45,45,67,1023,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,470,67,67,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1094,0,0,0,1092,1315,0,0,0,0,97,97,97,97,97,97,97,97,97,1486,97,1489,97,97,97,1117,97,97,97,97,1122,97,97,97,97,97,97,97,1146,97,97,97,97,97,97,97,97,881,97,97,97,886,97,97,97,1311,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1615,97,97,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,97,1847,97,45,45,45,45,1852,45,45,45,45,45,45,45,1235,45,45,45,67,67,67,67,67,1868,67,67,67,1872,67,67,67,67,67,97,97,97,97,1882,0,0,0,97,97,97,97,0,1891,67,67,67,67,67,97,97,97,97,97,1929,0,0,97,97,97,97,97,97,45,1900,45,1901,45,45,45,1905,45,67,2054,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,2037,2038,97,97,45,45,45,45,67,67,67,67,1867,67,67,67,67,67,67,67,67,67,1774,97,97,97,97,97,97,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,142,45,45,45,1412,45,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,157,45,45,171,45,45,45,182,45,45,45,45,200,45,45,45,1543,45,45,45,45,45,45,45,45,1551,45,45,45,45,1181,45,45,45,45,45,45,45,45,45,45,45,1211,45,45,45,1214,45,45,45,67,209,67,67,67,224,67,67,238,67,67,67,249,67,0,97,2056,2057,0,2059,45,67,0,97,45,67,97,0,0,1937,97,97,97,97,97,97,45,45,45,45,45,45,1741,45,45,45,45,45,45,67,67,67,267,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,289,97,97,97,304,97,97,318,97,97,97,329,97,97,0,0,97,1783,97,97,97,97,0,0,97,97,0,97,97,97,45,2026,45,45,45,45,67,2030,67,67,67,67,67,67,1041,67,67,67,67,67,67,67,67,67,1044,67,67,67,67,67,67,97,97,347,97,97,97,0,40976,0,18,18,24,24,27,27,27,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1420,45,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,840,67,1007,67,67,67,67,67,67,67,67,67,67,67,67,67,67,759,67,67,67,67,67,67,67,1052,67,67,67,67,67,67,67,67,67,67,1031,67,67,67,67,67,97,97,97,1101,97,97,97,97,97,97,97,97,97,97,97,97,592,97,97,97,1190,45,45,45,45,45,1195,45,1197,45,45,45,45,1201,45,45,45,45,1952,45,45,67,67,67,67,67,67,67,67,67,67,67,67,250,67,67,67,1255,67,1257,67,67,67,67,1261,67,67,67,67,67,67,67,67,1685,67,67,67,67,67,67,67,0,24851,12565,0,0,0,0,28809,53532,67,67,1267,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,0,0,0,0,0,0,2162688,0,0,1281,67,67,67,67,1285,67,67,67,67,67,67,67,67,67,67,1070,67,67,67,67,67,1335,97,1337,97,97,97,97,1341,97,97,97,97,97,97,97,97,882,97,97,97,97,97,97,97,1347,97,97,97,97,97,97,1353,97,97,97,97,97,97,1361,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,0,544,0,550,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2158592,2990080,2158592,2158592,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,53530,97,97,97,1365,97,97,97,97,97,97,97,97,97,97,97,97,608,97,97,97,45,45,1424,45,1425,67,67,67,67,67,67,67,67,67,67,67,1058,67,67,67,67,45,1555,45,45,1557,45,45,45,45,45,45,45,45,45,45,45,707,45,45,45,45,67,67,1570,67,67,67,67,67,67,67,67,67,67,67,67,67,773,67,67,1595,67,67,1597,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,139,2158592,2158592,2158592,2404352,2412544,97,97,97,1636,97,97,97,1639,97,97,1641,97,97,97,97,97,97,1173,0,921,0,0,0,0,0,0,45,67,67,67,1693,67,67,67,67,67,67,67,1698,67,67,67,67,67,67,67,1773,67,97,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,880,97,97,97,97,97,97,97,97,1106,97,97,97,97,97,97,97,1860,45,45,67,67,1865,67,67,67,67,1870,67,67,67,67,1875,67,67,97,97,1880,97,97,0,0,0,97,97,1888,97,0,0,0,1938,97,97,97,97,97,45,45,45,45,45,45,1854,45,45,45,45,45,45,45,1909,45,45,1911,67,67,67,67,67,67,67,67,67,67,1248,67,67,67,67,67,67,1922,67,67,1924,97,97,97,97,97,0,0,0,97,97,97,97,97,1898,45,45,45,45,45,45,1904,45,45,67,67,67,67,97,97,97,97,0,0,16384,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,1724,2008,2009,45,45,67,67,67,2014,2015,67,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,45,2022,0,2023,97,97,45,45,45,45,45,45,67,67,67,67,67,67,1869,67,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,147,151,154,45,162,45,45,176,178,181,45,45,45,192,196,45,45,45,45,2012,67,67,67,67,67,67,2018,97,0,0,97,1978,97,97,97,1982,45,45,45,45,45,45,45,45,45,972,973,45,45,45,45,45,67,259,263,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,294,298,301,97,309,97,97,323,325,328,97,97,97,97,97,560,97,97,97,569,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,339,343,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,67,67,503,67,67,67,67,67,67,67,67,67,512,67,67,519,97,97,600,97,97,97,97,97,97,97,97,97,609,97,97,616,45,649,45,45,45,45,45,654,45,45,45,45,45,45,45,45,1393,45,45,45,45,45,45,45,45,1209,45,45,45,45,45,45,45,67,763,67,67,67,67,67,67,67,67,770,67,67,67,774,67,0,2045,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,994,45,45,45,45,45,45,45,45,45,45,67,67,213,67,219,67,67,232,67,242,67,247,67,67,67,779,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,67,811,67,67,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,834,97,97,97,97,97,839,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,645,97,97,861,97,97,97,97,97,97,97,97,868,97,97,97,872,97,97,877,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,97,97,97,97,909,97,97,97,97,97,97,97,97,97,0,0,0,18,18,24,24,27,27,27,1036,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,1033,67,67,67,97,97,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,0,67,67,67,1295,67,67,67,0,0,0,0,0,0,0,0,0,97,1317,97,97,97,97,97,97,1375,97,97,97,0,0,0,45,1379,45,45,45,45,45,45,422,45,45,45,429,431,45,45,45,45,0,1090,0,0,97,1479,97,97,97,97,97,97,97,97,97,97,1357,97,97,97,97,97,97,97,97,97,1716,97,97,97,97,97,97,97,97,97,1723,0,921,29315,0,0,0,0,45,929,45,45,45,45,45,45,45,1392,45,45,45,45,45,45,45,45,45,960,45,45,45,45,45,45,97,97,97,1738,45,45,45,45,45,45,45,1743,45,45,45,45,166,45,45,45,45,184,186,45,45,197,45,45,97,1779,0,0,97,97,97,97,97,97,0,0,97,97,0,97,18,131427,0,638,0,0,0,0,362,0,640,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,1537,45,45,45,45,45,1803,45,45,45,45,45,1809,45,45,45,67,67,67,1814,67,67,67,67,67,67,1821,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,0,0,67,67,67,1818,67,67,67,67,67,1824,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,1890,0,1829,97,97,0,0,97,97,1836,97,97,0,0,0,97,97,97,97,1981,45,45,45,45,45,45,45,45,45,1987,1845,97,97,97,45,45,45,45,45,1853,45,45,45,1857,45,45,45,67,1864,67,1866,67,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,1710,1711,67,67,97,97,97,97,97,0,0,0,1886,97,97,97,0,0,97,97,97,97,1838,0,0,0,97,1843,97,0,1893,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1745,45,45,67,67,67,67,67,97,97,97,97,97,0,0,1931,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,67,2044,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1660,45,45,45,45,45,45,45,45,45,45,45,45,453,45,455,67,67,67,67,268,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,348,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,359,0,0,362,0,365,28809,367,139,45,45,45,45,45,421,45,45,45,45,45,45,45,434,45,45,695,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1667,45,0,921,29315,0,925,0,0,45,45,45,45,45,45,45,45,45,1811,45,67,67,67,67,67,67,1037,67,1039,67,67,67,67,67,67,67,67,67,67,67,67,1277,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1095,0,0,0,1096,97,97,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,97,1131,97,1133,97,97,97,97,97,97,97,97,97,97,1370,97,97,97,97,97,1312,0,0,0,0,1096,0,0,0,97,97,97,97,97,97,97,1327,97,97,97,97,97,1332,97,97,97,1830,97,0,0,97,97,97,97,97,0,0,0,97,97,97,1896,97,97,45,45,45,45,45,45,45,45,45,1548,45,45,45,45,45,45,133,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,380,45,45,45,45,45,45,45,45,45,45,401,45,45,158,45,45,45,45,45,45,45,45,45,45,45,45,45,1200,45,45,45,45,206,67,67,67,67,67,225,67,67,67,67,67,67,67,67,754,67,67,67,67,67,67,67,57889,0,0,54074,54074,550,832,97,97,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,67,67,67,67,67,25398,1083,13112,1087,54074,1091,0,0,0,0,0,0,1316,0,831,97,97,97,97,97,97,97,1174,921,0,1175,0,0,0,0,45,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,148,67,67,264,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,295,97,97,97,97,313,97,97,97,97,331,333,97,18,131427,356,638,0,0,0,0,362,0,0,365,0,367,0,45,45,1530,45,45,45,45,45,45,45,45,45,45,45,45,988,45,45,45,97,344,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,402,404,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1756,67,438,45,45,45,45,45,45,45,45,449,450,45,45,45,67,67,214,218,221,67,229,67,67,243,245,248,67,67,67,67,67,488,490,67,67,67,67,67,67,67,67,67,67,67,1071,67,1073,67,67,67,67,67,524,67,67,67,67,67,67,67,67,535,536,67,67,67,67,67,67,1683,1684,67,67,67,67,1688,1689,67,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,97,97,97,585,587,97,97,97,97,97,97,97,97,97,97,97,1163,97,97,97,97,97,97,97,621,97,97,97,97,97,97,97,97,632,633,97,97,0,0,1782,97,97,97,97,97,0,0,97,97,0,97,712,45,45,45,717,45,45,45,45,45,45,45,45,725,45,45,45,163,167,173,177,45,45,45,45,45,193,45,45,45,45,982,45,45,45,45,45,45,987,45,45,45,45,45,1558,45,1560,45,45,45,45,45,45,45,45,704,705,45,45,45,45,45,45,45,45,731,45,45,45,67,67,67,67,67,739,67,67,67,67,67,67,273,0,24850,12564,0,0,0,0,28809,53531,67,67,67,764,67,67,67,67,67,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,812,67,67,67,67,818,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,97,97,97,97,837,97,97,97,97,97,602,97,97,97,97,97,97,97,97,97,97,1137,97,97,97,97,97,97,97,97,97,862,97,97,97,97,97,97,97,97,97,97,97,1627,97,97,97,0,97,97,97,97,910,97,97,97,97,916,97,97,97,0,0,0,97,97,1940,97,97,1942,45,45,45,45,45,45,385,45,45,45,45,395,45,45,45,45,966,45,969,45,45,45,45,45,45,45,45,45,45,975,45,45,45,406,45,45,45,45,45,45,45,45,45,45,45,45,974,45,45,45,67,67,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,67,67,1040,67,1042,67,1045,67,67,67,67,67,67,67,97,1706,97,97,97,1709,97,97,97,67,67,67,67,1051,67,67,67,67,67,1057,67,67,67,67,67,67,67,1443,67,67,1446,67,67,67,67,67,67,67,1297,0,0,0,1303,0,0,0,1309,67,67,67,67,1079,25398,0,13112,0,54074,0,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,1098,97,97,97,97,97,1104,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,1128,97,97,97,97,97,97,1134,97,1136,97,1139,97,97,97,97,97,97,1622,97,97,97,97,97,97,97,97,0,921,0,0,0,1176,0,646,45,67,67,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,67,97,1348,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1127,97,67,1569,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1448,1449,67,1816,67,67,67,67,67,67,67,67,67,1825,67,67,1827,97,97,0,1781,97,97,97,97,97,97,0,0,97,97,0,97,97,97,1831,0,0,97,97,97,97,97,0,0,0,97,97,97,1980,97,45,45,45,45,45,45,45,45,45,45,1395,45,45,45,45,45,97,1846,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,45,45,2010,45,67,67,67,67,67,2016,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,2007,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,143,45,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,67,1813,67,67,1815,45,45,67,210,67,67,67,67,67,67,239,67,67,67,67,67,67,67,1454,67,67,67,67,67,67,67,67,67,1445,67,67,67,67,67,67,97,97,290,97,97,97,97,97,97,319,97,97,97,97,97,97,303,97,97,317,97,97,97,97,97,97,305,97,97,97,97,97,97,97,97,97,899,97,97,97,97,97,97,375,45,45,45,379,45,45,390,45,45,394,45,45,45,45,45,443,45,45,45,45,45,45,45,45,67,67,67,67,67,461,67,67,67,465,67,67,476,67,67,480,67,67,67,67,67,67,1694,67,67,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,500,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,97,97,97,558,97,97,97,562,97,97,573,97,97,577,97,97,97,97,97,895,97,97,97,97,97,97,903,97,97,97,0,97,97,1638,97,97,97,97,97,97,97,97,1646,597,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1334,45,681,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1396,45,45,1399,45,45,730,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1434,67,67,67,67,67,67,750,67,67,67,67,67,67,67,67,67,67,1456,67,67,67,67,67,45,45,993,45,45,45,45,45,45,45,45,45,45,45,67,67,1238,67,67,1006,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1280,1048,1049,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,67,1286,67,67,67,67,67,67,67,1291,67,97,97,1100,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,920,97,97,1142,1143,97,97,97,97,97,97,97,97,97,97,1153,97,97,97,97,97,1158,97,97,97,1161,97,97,97,97,1166,97,97,97,97,97,1325,97,97,97,97,97,97,97,97,97,97,1328,97,97,97,97,97,97,97,45,1218,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,67,67,67,67,67,1269,67,67,67,67,67,67,67,67,1278,67,67,67,67,67,67,1761,67,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,97,97,1349,97,97,97,97,97,97,97,97,1358,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,0,921,0,0,926,0,0,0,45,45,1411,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1754,45,45,67,67,1301,0,1307,0,1313,97,97,97,97,97,97,97,97,97,97,97,21054,97,97,97,97,67,1757,67,67,67,1760,67,67,67,67,67,67,67,67,67,67,1467,67,67,67,67,67,1778,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,67,67,67,67,67,1820,67,1822,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1933,97,1892,97,97,97,97,97,97,1899,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,673,45,45,45,45,45,45,45,67,67,67,67,67,1925,97,97,97,97,0,0,0,97,97,97,97,97,623,97,97,97,97,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,1796,97,45,45,45,45,45,45,45,970,45,45,45,45,45,45,45,45,1417,45,45,45,45,45,45,45,67,1964,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,97,97,1721,97,97,0,0,1997,97,0,0,2e3,97,97,0,97,97,97,97,97,45,45,45,45,733,45,67,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,144,45,45,45,1805,45,1807,45,45,45,45,45,67,67,67,67,67,67,231,67,67,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,45,45,67,211,67,67,67,67,230,234,240,244,67,67,67,67,67,67,464,67,67,67,67,67,67,479,67,67,67,260,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,291,97,97,97,97,310,314,320,324,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,1355,97,97,97,97,97,97,1362,340,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,360,0,362,0,365,28809,367,139,369,45,45,45,374,67,67,460,67,67,67,67,466,67,67,67,67,67,67,67,67,801,67,67,67,67,67,67,67,67,67,487,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,67,1772,67,67,97,97,97,97,97,97,97,0,921,922,1175,0,0,0,0,45,67,502,67,67,67,67,67,67,67,508,67,67,67,515,517,67,67,67,67,67,97,97,97,97,97,0,0,0,1932,97,97,0,1999,97,97,97,0,97,97,2004,2005,97,45,45,45,45,1193,45,45,45,45,45,45,45,45,45,45,45,676,45,45,45,45,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,552,97,97,97,97,97,1377,0,0,45,45,45,45,45,45,45,45,655,45,45,45,45,45,45,45,97,97,557,97,97,97,97,563,97,97,97,97,97,97,97,97,1135,97,97,97,97,97,97,97,97,97,584,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,911,97,97,97,97,97,97,97,638,0,0,0,0,1315,0,0,0,0,97,97,97,1319,97,97,97,0,97,97,97,97,97,97,1733,97,97,97,97,97,97,1340,97,97,97,1343,97,97,1345,97,1346,97,599,97,97,97,97,97,97,97,605,97,97,97,612,614,97,97,97,97,97,1794,97,97,97,45,45,45,45,45,45,45,1207,45,45,45,45,45,45,1213,45,45,745,67,67,67,67,751,67,67,67,67,67,67,67,67,67,67,1577,67,67,67,67,67,762,67,67,67,67,766,67,67,67,67,67,67,67,67,67,67,1765,67,67,67,67,67,777,67,67,781,67,67,67,67,67,67,67,67,67,67,67,67,1592,1593,67,67,97,843,97,97,97,97,849,97,97,97,97,97,97,97,97,97,1510,97,97,97,97,97,97,97,860,97,97,97,97,864,97,97,97,97,97,97,97,97,97,1797,45,45,45,45,1801,45,97,875,97,97,879,97,97,97,97,97,97,97,97,97,97,97,1522,97,97,97,97,97,991,45,45,45,45,996,45,45,45,45,45,45,45,45,67,67,215,67,67,67,67,233,67,67,67,67,251,253,1022,67,67,67,1026,67,67,67,67,67,67,67,67,67,67,1035,67,67,1038,67,67,67,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,67,1064,67,67,67,1067,67,67,67,67,1072,67,67,67,67,67,67,1296,0,0,0,0,0,0,0,0,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,1096,0,921,29315,0,0,0,0,928,45,45,45,45,45,934,45,45,45,164,45,45,45,45,45,45,45,45,45,198,45,45,45,378,45,45,45,45,45,45,393,45,45,45,398,45,97,97,1116,97,97,97,1120,97,97,97,97,97,97,97,97,97,1147,1148,97,97,97,97,97,97,97,1129,97,97,1132,97,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,0,45,1178,45,45,45,45,45,45,45,45,45,1185,45,45,45,45,441,45,45,45,45,45,45,451,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,1260,67,67,67,1263,67,67,1265,1203,45,45,1205,45,1206,45,45,45,45,45,45,45,45,45,1216,67,1266,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,492,67,67,67,67,67,67,67,67,67,471,67,67,67,67,481,67,45,1386,45,1389,45,45,45,45,1394,45,45,45,1397,45,45,45,45,995,45,997,45,45,45,45,45,45,45,67,67,67,67,1915,67,67,67,67,67,1422,45,45,45,67,67,67,67,67,67,67,67,67,1433,67,1436,67,67,67,67,1441,67,67,67,1444,67,67,67,67,67,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,97,1494,97,97,97,1497,97,97,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,67,1571,67,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,67,67,1583,67,67,67,67,67,67,67,67,1591,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,97,1634,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1125,97,97,97,1647,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,1183,45,45,45,45,45,45,45,45,45,409,45,45,45,45,45,45,1658,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1668,1712,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,1835,97,97,97,97,0,0,0,97,97,1844,97,97,1726,0,97,97,97,97,97,1732,97,1734,97,97,97,97,97,300,97,308,97,97,97,97,97,97,97,97,866,97,97,97,97,97,97,97,67,67,67,1758,67,67,67,1762,67,67,67,67,67,67,67,67,1043,67,67,67,67,67,67,67,67,67,67,67,67,1771,67,67,67,97,97,97,97,97,1776,97,97,97,97,297,97,97,97,97,97,97,97,97,97,97,97,1108,97,97,97,97,67,67,67,1966,97,97,97,1970,0,0,0,97,97,97,97,0,97,97,97,1720,97,97,97,97,97,0,0,97,97,97,1837,97,0,1840,1841,97,97,97,1988,45,67,67,67,67,67,67,67,67,67,1994,1995,67,97,97,97,97,97,1103,97,97,97,97,97,97,97,97,97,97,917,97,97,0,0,0,67,67,265,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,345,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,361,362,0,365,28809,367,139,45,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,411,45,45,414,45,45,45,45,377,45,45,45,386,45,45,45,45,45,45,45,45,45,1223,45,45,45,45,45,45,45,45,45,426,45,45,433,45,45,45,67,67,67,67,67,463,67,67,67,472,67,67,67,67,67,67,67,527,67,67,67,67,67,67,537,67,540,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,564,97,97,97,97,97,97,97,637,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,927,45,45,45,45,45,45,45,45,45,1234,45,45,45,45,67,67,67,67,1240,45,697,45,45,45,45,45,45,45,45,45,45,708,45,45,45,45,1221,45,45,45,45,1225,45,45,45,45,45,45,384,45,45,45,45,45,45,45,45,45,1210,45,45,45,45,45,45,67,67,795,67,67,67,67,67,67,67,67,67,67,67,67,67,1470,67,67,67,67,67,67,67,815,67,67,67,67,67,67,25398,542,13112,544,97,97,97,893,97,97,97,97,97,97,97,97,97,97,97,97,1164,97,97,97,67,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,1687,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,1097,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1450,45,45,1388,45,1390,45,45,45,45,45,45,45,45,45,45,45,1236,67,67,67,67,67,1437,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1472,1490,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1503,67,67,67,67,67,97,97,97,97,97,0,1930,0,97,97,97,97,97,847,97,97,97,97,97,97,97,97,97,858,67,67,1965,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,1719,97,97,97,97,97,97,0,0,0,45,45,45,45,1382,45,1383,45,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,1563,45,45,45,45,45,67,261,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,341,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,1099,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1333,97,1230,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1992,67,1993,67,67,67,97,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,1665,45,45,45,45,45,131427,357,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,684,45,45,45,45,45,45,45,45,45,45,412,45,45,45,416,45,45,45,440,45,45,45,45,45,45,45,45,45,45,45,67,67,1990,67,1991,67,67,67,67,67,67,67,97,97,1707,97,97,97,97,97,97,501,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,67,67,67,526,67,67,67,67,67,67,67,67,67,67,1030,67,1032,67,67,67,67,598,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1632,0,921,29315,923,0,0,0,45,45,45,45,45,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,425,45,45,45,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1093,0,0,0,0,0,97,1609,97,97,97,97,97,97,97,97,97,1369,97,97,97,1372,97,97,67,67,266,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,346,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,665,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1677,45,45,45,45,67,45,45,954,45,956,45,45,45,45,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,448,45,45,45,45,67,456,67,67,67,67,67,1270,67,67,67,67,67,67,67,67,67,67,1069,67,67,67,67,67,67,97,97,97,1350,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,97,97,97,97,97,1376,0,0,0,45,45,45,45,45,45,45,45,1559,1561,45,45,45,1564,45,1566,1567,45,67,67,67,67,67,1573,67,67,67,67,67,67,67,67,67,67,1247,67,67,67,67,67,1252,97,1725,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1628,97,1630,0,0,94242,0,0,0,2211840,0,1118208,0,0,0,0,2158592,2158731,2158592,2158592,2158592,3117056,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3018752,2158592,3043328,2158592,2158592,2158592,2158592,3080192,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158878,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2605056,2158592,2158592,2207744,0,542,0,544,0,0,2166784,0,0,0,550,0,0,2158592,2158592,2686976,2158592,2715648,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2867200,2158592,2904064,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,0,2211840,0,0,1130496,0,0,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,139,0,0,0,139,0,2367488,2207744,0,0,0,0,176128,0,2166784,0,0,0,0,0,286,2158592,2158592,3170304,3174400,2158592,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,1508,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,2158592,2158592,2158592,2158592,3158016,67,24850,24850,12564,12564,0,0,0,0,0,53531,53531,0,286,97,97,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,1154,57889,0,0,0,0,550,0,97,97,97,97,97,97,97,97,97,561,97,97,97,97,97,97,576,97,97,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,0,0,139264,0,921,29315,0,0,926,0,45,45,45,45,45,45,45,45,45,719,720,45,45,45,45,45,45,45,45,685,45,45,45,45,45,45,45,45,45,942,45,45,946,45,45,45,950,45,45,0,2146304,2146304,0,0,0,0,2224128,2224128,2224128,2232320,2232320,2232320,2232320,0,0,1301,0,0,0,0,0,1307,0,0,0,0,0,1313,0,0,0,0,0,0,0,97,97,1318,97,97,97,97,97,97,1795,97,97,45,45,45,45,45,45,45,446,45,45,45,45,45,45,67,67,2158592,2146304,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,924,0,0,45,45,45,45,45,45,45,45,45,1e3,45,45,45,45,67,67],r.EXPECTED=[290,300,304,353,296,309,305,319,315,324,328,352,354,334,338,330,320,345,349,293,358,362,341,366,312,370,374,378,382,386,390,394,398,737,402,634,439,604,634,634,634,634,408,634,634,634,404,634,634,634,457,634,634,963,634,634,413,634,634,634,634,634,634,634,663,418,422,903,902,426,431,548,634,437,521,919,443,615,409,449,455,624,731,751,634,461,465,672,470,469,474,481,485,477,489,493,629,542,497,505,603,602,991,648,510,804,634,515,958,526,525,530,768,634,546,552,711,710,593,558,562,618,566,570,574,578,582,586,590,608,612,660,822,821,634,622,596,444,628,533,724,633,640,653,647,652,536,1008,451,450,445,657,670,676,685,689,693,697,701,704,707,715,719,798,815,634,723,762,996,634,728,969,730,735,908,634,741,679,889,511,747,634,750,755,499,666,499,501,759,772,776,780,634,787,784,797,802,809,808,427,814,1006,517,634,519,853,634,813,850,793,634,819,826,833,832,837,843,847,857,861,863,867,871,875,879,883,643,887,539,980,979,634,893,944,634,900,896,634,907,933,506,912,917,828,433,636,635,554,961,923,930,927,937,941,634,634,634,974,948,952,985,913,968,967,743,634,973,839,634,978,599,634,984,989,765,444,995,1e3,634,1003,790,955,1012,681,634,634,634,634,634,414,1016,1020,1024,1085,1027,1090,1090,1046,1080,1137,1108,1215,1049,1032,1039,1085,1085,1085,1085,1058,1062,1068,1085,1086,1090,1090,1091,1072,1064,1107,1090,1090,1090,1118,1123,1138,1078,1074,1084,1085,1085,1085,1087,1090,1062,1052,1060,1114,1062,1104,1085,1085,1090,1090,1028,1122,1063,1128,1139,1127,1158,1085,1085,1151,1090,1090,1090,1095,1090,1132,1073,1136,1143,1061,1150,1085,1155,1098,1101,1146,1162,1169,1101,1185,1151,1090,1110,1173,1054,1087,1109,1177,1165,1089,1204,1184,1107,1189,1193,1088,1197,1180,1201,1208,1042,1212,1219,1223,1227,1231,1235,1245,1777,1527,1686,1686,1238,1686,1254,1686,1686,1686,1294,1669,1686,1686,1686,1322,1625,1534,1268,1624,1275,1281,1443,1292,1300,1686,1686,1686,1350,1826,1306,1686,1686,1240,2032,1317,1321,1686,1686,1253,1686,1326,1686,1686,1686,1418,1709,1446,1686,1686,1686,1492,1686,1295,1447,1686,1686,1258,1686,1736,1686,1686,1520,1355,1686,1288,1348,1361,1686,1359,1686,1364,1498,1368,1302,1362,1381,1389,1395,1486,1686,1371,1377,1370,1686,1375,1382,1384,1402,1408,1385,1383,1619,1413,1423,1428,1433,1686,1686,1270,1686,1338,1686,1440,1686,1686,1686,1499,1465,1686,1686,1686,1639,1473,1884,1686,1686,1293,1864,1686,1686,1296,1321,1483,1686,1686,1686,1646,1686,1748,1496,1686,1418,1675,1686,1418,1702,1686,1418,1981,1686,1429,1409,1427,1504,1692,1686,1686,1313,1448,1651,1508,1686,1686,1340,1686,1903,1686,1686,1435,1513,1686,1283,1287,1519,1686,1524,1363,1568,1938,1539,1566,1579,1479,1533,1538,1553,1544,1552,1557,1563,1574,1557,1583,1589,1590,1759,1594,1603,1607,1611,1686,1436,1514,1686,1434,1656,1686,1434,1680,1686,1453,1686,1686,1686,1559,1617,1686,1770,1418,1623,1769,1629,1686,1515,1335,1686,1285,1686,1671,1921,1650,1686,1686,1344,1308,1666,1686,1686,1686,1659,1685,1686,1686,1686,1686,1241,1686,1686,1844,1691,1686,1630,1977,1970,1362,1686,1686,1686,1693,1698,1686,1686,1686,1697,1686,1764,1715,1686,1634,1638,1686,1599,1585,1686,1271,1686,1269,1686,1721,1686,1686,1354,1686,1801,1686,1799,1686,1640,1686,1686,1461,1686,1686,1732,1686,1944,1686,1740,1686,1746,1415,1396,1686,1598,1547,1417,1597,1416,1577,1546,1397,1577,1547,1548,1570,1398,1753,1686,1652,1509,1686,1686,1686,1757,1686,1419,1686,1763,1418,1768,1781,1686,1686,1686,1705,1686,2048,1792,1686,1686,1686,1735,1686,1797,1686,1686,1404,1686,1639,1815,1686,1686,1418,2017,1820,1686,1686,1803,1686,1686,1686,1736,1489,1686,1686,1825,1338,1260,1263,1686,1686,1785,1686,1686,1728,1686,1686,1749,1497,1830,1830,1262,1248,1261,1329,1260,1264,1329,1248,1249,1259,1540,1849,1842,1686,1686,1835,1686,1686,1816,1686,1686,1831,1882,1848,1686,1686,1686,1774,2071,1854,1686,1686,1469,1884,1686,1821,1859,1686,1686,1350,1883,1686,1686,1686,1781,1391,1875,1686,1686,1613,1644,1686,1686,1889,1686,1686,1662,1884,1686,1885,1890,1686,1686,1686,1894,1686,1686,1678,1686,1907,1686,1686,1529,1914,1686,1838,1686,1686,1881,1686,1686,1872,1876,1836,1919,1686,1837,1692,1910,1686,1925,1928,1742,1686,1811,1811,1930,1810,1929,1935,1928,1900,1942,1867,1868,1931,1035,1788,1948,1952,1956,1960,1964,1686,1976,1686,1686,1686,2065,1686,1992,2037,1686,1686,1998,2009,1972,2002,1686,1686,1686,2077,1300,2023,1686,1686,1686,1807,2031,1686,1686,1686,1860,1500,2032,1686,1686,1686,2083,1686,2036,1686,1277,1276,2042,1877,1686,1686,2041,1686,1686,2027,2037,2012,1686,2012,1855,1850,1686,2046,1686,1686,2054,1996,1686,1897,1309,2059,2052,1686,2058,1686,1686,2081,1686,1717,1477,1686,1331,1686,1686,1687,1686,1860,1681,1686,1686,1686,1966,1724,1686,1686,1686,1984,2015,1686,1686,1686,1988,1686,2063,1686,1686,1686,2005,1686,1727,1686,1686,1711,1457,2069,1686,1686,1686,2019,2075,1686,1686,1915,1686,1686,1793,1874,1686,1686,1491,1362,1449,1686,1686,1460,2098,2087,2091,2095,2184,2102,2113,2780,2117,2134,2142,2281,2146,2146,2146,2304,2296,2181,2639,2591,2872,2592,2873,2313,2195,2200,2281,2146,2273,2226,2204,2152,2219,2276,2167,2177,2276,2235,2276,2276,2230,2281,2276,2296,2276,2293,2276,2276,2276,2276,2234,2276,2311,2314,2210,2199,2217,2222,2276,2276,2276,2240,2276,2294,2276,2276,2173,2276,2198,2281,2281,2281,2281,2282,2146,2146,2146,2146,2205,2146,2204,2248,2276,2235,2276,2297,2276,2276,2276,2277,2256,2281,2283,2146,2146,2146,2275,2276,2295,2276,2276,2293,2146,2304,2264,2269,2221,2276,2276,2276,2293,2295,2276,2276,2276,2295,2263,2205,2268,2220,2172,2276,2276,2276,2296,2276,2276,2296,2294,2276,2276,2278,2281,2281,2280,2281,2281,2281,2283,2206,2223,2276,2276,2279,2281,2281,2146,2273,2276,2276,2281,2281,2281,2276,2292,2276,2298,2225,2276,2298,2169,2224,2292,2298,2171,2229,2281,2281,2171,2236,2281,2281,2281,2146,2275,2225,2292,2299,2276,2229,2281,2146,2276,2290,2297,2283,2146,2146,2274,2224,2227,2298,2225,2297,2276,2230,2170,2230,2282,2146,2147,2151,2156,2288,2276,2230,2303,2308,2236,2284,2228,2318,2318,2318,2326,2335,2339,2343,2349,2416,2693,2357,2592,2109,2592,2592,2162,2943,2823,2646,2592,2361,2592,2122,2592,2592,2122,2470,2592,2592,2592,2109,2107,2592,2592,2592,2123,2592,2592,2592,2125,2592,2413,2592,2592,2592,2127,2592,2592,2414,2592,2592,2592,2130,2952,2592,2594,2592,2592,2212,2609,2252,2592,2592,2592,2446,2434,2592,2592,2592,2212,2446,2450,2456,2431,2435,2592,2592,2243,2478,2448,2439,2946,2592,2592,2592,2368,2809,2813,2450,2441,2212,2812,2449,2440,2947,2592,2592,2592,2345,2451,2457,2948,2592,2124,2592,2592,2650,2823,2449,2455,2946,2592,2128,2592,2592,2649,2952,2592,2810,2448,2461,2991,2467,2592,2592,2329,2817,2474,2990,2466,2592,2592,2373,2447,2992,2469,2592,2592,2592,2373,2447,2477,2468,2592,2592,2353,2469,2592,2495,2592,2592,2415,2483,2592,2415,2496,2592,2592,2352,2592,2592,2352,2352,2469,2592,2592,2363,2331,2494,2592,2592,2592,2375,2592,2375,2415,2504,2592,2592,2367,2372,2503,2592,2592,2592,2389,2418,2415,2592,2592,2373,2592,2592,2592,2593,2732,2417,2415,2592,2417,2520,2592,2592,2592,2390,2521,2521,2592,2592,2592,2401,2599,2585,2526,2531,2120,2592,2212,2426,2450,2463,2948,2592,2592,2592,2213,2389,2527,2532,2121,2542,2551,2105,2592,2213,2592,2592,2592,2558,2538,2544,2553,2557,2537,2543,2552,2421,2572,2576,2546,2543,2547,2592,2592,2373,2615,2575,2545,2105,2592,2244,2479,2592,2129,2592,2592,2628,2690,2469,2562,2566,2592,2592,2592,2415,2928,2934,2401,2570,2574,2564,2572,2585,2590,2592,2592,2585,2965,2592,2592,2592,2445,2251,2592,2592,2592,2474,2592,2609,2892,2592,2362,2592,2592,2138,2851,2159,2592,2592,2592,2509,2888,2892,2592,2592,2592,2490,2418,2891,2592,2592,2376,2592,2592,2374,2592,2889,2388,2592,2373,2373,2890,2592,2592,2387,2592,2887,2505,2892,2592,2373,2610,2388,2592,2592,2376,2373,2592,2887,2891,2592,2374,2592,2592,2608,2159,2614,2620,2592,2592,2394,2594,2887,2399,2592,2887,2397,2508,2374,2507,2592,2375,2592,2592,2592,2595,2508,2506,2592,2506,2505,2505,2592,2507,2637,2505,2592,2592,2401,2661,2592,2643,2592,2592,2417,2592,2655,2592,2592,2592,2510,2414,2656,2592,2592,2592,2516,2592,2593,2660,2665,2880,2592,2592,2592,2522,2767,2666,2881,2592,2592,2420,2571,2696,2592,2592,2592,2580,2572,2686,2632,2698,2592,2383,2514,2592,2163,2932,2465,2685,2631,2697,2592,2388,2592,2592,2212,2604,2671,2632,2678,2592,2401,2405,2409,2592,2592,2592,2679,2592,2592,2592,2592,2108,2677,2591,2592,2592,2592,2419,2592,2683,2187,2191,2469,2671,2189,2467,2592,2401,2629,2633,2702,2468,2592,2592,2421,2536,2703,2469,2592,2592,2422,2573,2593,2672,2467,2592,2402,2406,2592,2402,2979,2592,2592,2626,2673,2467,2592,2446,2259,2947,2592,2377,2709,2592,2592,2522,2862,2713,2468,2592,2592,2581,2572,2562,2374,2374,2592,2376,2721,2724,2592,2592,2624,2373,2731,2592,2592,2592,2626,2732,2592,2592,2592,2755,2656,2726,2736,2741,2592,2486,2593,2381,2592,2727,2737,2742,2715,2747,2753,2592,2498,2469,2873,2743,2592,2592,2592,2791,2759,2763,2592,2592,2627,2704,2592,2592,2522,2789,2593,2761,2753,2592,2498,2863,2592,2592,2767,2592,2592,2592,2792,2789,2592,2592,2592,2803,2126,2592,2592,2592,2811,2122,2592,2592,2592,2834,2777,2592,2592,2592,2848,2936,2591,2489,2797,2592,2592,2670,2631,2490,2798,2592,2592,2592,2963,2807,2592,2592,2592,2965,2838,2592,2592,2592,2975,2330,2818,2829,2592,2498,2939,2592,2498,2592,2791,2331,2819,2830,2592,2592,2592,2982,2834,2817,2828,2106,2592,2592,2592,2405,2405,2817,2828,2592,2592,2415,2849,2842,2592,2522,2773,2592,2522,2868,2592,2580,2600,2586,2137,2850,2843,2592,2592,2855,2937,2844,2592,2592,2592,2987,2936,2591,2592,2592,2684,2630,2592,2856,2938,2592,2592,2860,2939,2592,2592,2872,2592,2861,2591,2592,2592,2887,2616,2592,2867,2592,2592,2708,2592,2498,2469,2498,2497,2785,2773,2499,2783,2770,2877,2877,2877,2772,2592,2592,2345,2885,2592,2592,2592,2715,2762,2515,2896,2592,2592,2715,2917,2516,2897,2592,2592,2592,2901,2906,2911,2592,2592,2956,2960,2715,2902,2907,2912,2593,2916,2920,2820,2922,2822,2592,2592,2715,2927,2921,2821,2106,2592,2592,2974,2408,2321,2821,2106,2592,2592,2983,2592,2593,2404,2408,2592,2592,2717,2749,2716,2928,2322,2822,2593,2926,2919,2820,2934,2823,2592,2592,2592,2651,2824,2592,2592,2592,2130,2952,2592,2592,2592,2592,2964,2592,2592,2716,2748,2592,2969,2592,2592,2716,2918,2368,2970,2592,2592,2592,2403,2407,2592,2592,2787,2211,2404,2409,2592,2592,2802,2837,2987,2592,2592,2592,2809,2427,2592,2793,2592,2592,2809,2447,1073741824,2147483648,539754496,542375936,402653184,554434560,571736064,545521856,268451840,335544320,268693630,512,2048,256,1024,0,1024,0,1073741824,2147483648,0,0,0,8388608,0,0,1073741824,1073741824,0,2147483648,537133056,4194304,1048576,268435456,-1073741824,0,0,0,1048576,0,0,0,1572864,0,0,0,4194304,0,134217728,16777216,0,0,32,64,98304,0,33554432,8388608,192,67108864,67108864,67108864,67108864,16,32,4,0,8192,196608,196608,229376,80,4096,524288,8388608,0,0,32,128,256,24576,24600,24576,24576,2,24576,24576,24576,24584,24592,24576,24578,24576,24578,24576,24576,16,512,2048,2048,256,4096,32768,1048576,4194304,67108864,134217728,268435456,262144,134217728,0,128,128,64,16384,16384,16384,67108864,32,32,4,4,4096,262144,134217728,0,0,0,2,0,8192,131072,131072,4096,4096,4096,4096,24576,24576,24576,8,8,24576,24576,16384,16384,16384,24576,24584,24576,24576,24576,16384,24576,536870912,262144,0,0,32,2048,8192,4,4096,4096,4096,786432,8388608,16777216,0,128,16384,16384,16384,32768,65536,2097152,32,32,32,32,4,4,4,4,4,4096,67108864,67108864,67108864,24576,24576,24576,24576,0,16384,16384,16384,16384,67108864,67108864,8,67108864,24576,8,8,8,24576,24576,24576,24578,24576,24576,24576,2,2,2,16384,67108864,67108864,67108864,32,67108864,8,8,24576,2048,2147483648,536870912,262144,262144,262144,67108864,8,24576,16384,32768,1048576,4194304,25165824,67108864,24576,32770,2,4,112,512,98304,524288,50,402653186,1049090,1049091,10,66,100925514,10,66,12582914,0,0,-1678194207,-1678194207,-1041543218,0,32768,0,0,32,65536,268435456,1,1,513,1048577,0,12582912,0,0,0,4,1792,0,0,0,7,29360128,0,0,0,8,0,0,0,12,1,1,0,0,-604102721,-604102721,4194304,8388608,0,0,0,31,925600,997981306,997981306,997981306,0,0,2048,8388608,0,0,1,2,4,32,64,512,8192,0,0,0,245760,997720064,0,0,0,32,0,0,0,3,12,16,32,8,112,3072,12288,16384,32768,65536,131072,7864320,16777216,973078528,0,0,65536,131072,3670016,4194304,16777216,33554432,2,8,48,2048,8192,16384,32768,65536,131072,524288,131072,524288,3145728,4194304,16777216,33554432,65536,131072,2097152,4194304,16777216,33554432,134217728,268435456,536870912,0,0,0,1024,0,8,48,2048,8192,65536,33554432,268435456,536870912,65536,268435456,536870912,0,0,32768,0,0,126,623104,65011712,0,32,65536,536870912,0,0,65536,524288,0,32,65536,0,0,0,2048,0,0,0,15482,245760,-604102721,0,0,0,18913,33062912,925600,-605028352,0,0,0,65536,31,8096,131072,786432,3145728,3145728,12582912,50331648,134217728,268435456,160,256,512,7168,131072,786432,131072,786432,1048576,2097152,12582912,16777216,268435456,1073741824,2147483648,12582912,16777216,33554432,268435456,1073741824,2147483648,3,12,16,160,256,7168,786432,1048576,12582912,16777216,268435456,1073741824,0,8,16,32,128,256,512,7168,786432,1048576,2097152,0,1,2,8,16,7168,786432,1048576,8388608,16777216,16777216,1073741824,0,0,0,0,1,0,0,8,32,128,256,7168,8,32,0,3072,0,8,32,3072,4096,524288,8,32,0,0,3072,4096,0,2048,524288,8388608,8,2048,0,0,1,12,256,4096,32768,262144,1048576,4194304,67108864,0,2048,0,2048,2048,1073741824,-58805985,-58805985,-58805985,0,0,262144,0,0,32,4194304,16777216,134217728,4382,172032,-58982400,0,0,2,28,256,4096,8192,8192,32768,131072,262144,524288,1,2,12,256,4096,0,0,4194304,67108864,134217728,805306368,1073741824,0,0,1,2,12,16,256,4096,1048576,67108864,134217728,268435456,0,512,1048576,4194304,201326592,1879048192,0,0,12,256,4096,134217728,268435456,536870912,12,256,268435456,536870912,0,12,256,0,0,1,32,64,512,0,0,205236961,205236961,0,0,0,1,96,640,1,10976,229376,204996608,0,640,2048,8192,229376,1572864,1572864,2097152,201326592,0,0,0,64,512,2048,229376,1572864,201326592,1572864,201326592,0,0,1,4382,0,1,32,2048,65536,131072,1572864,201326592,131072,1572864,134217728,0,0,524288,524288,0,0,0,-68582786,-68582786,-68582786,0,0,2097152,524288,0,524288,0,0,65536,131072,1572864,0,0,2,4,0,0,65011712,-134217728,0,0,0,0,2,4,120,512,-268435456,0,0,0,2,8,48,64,2048,8192,98304,524288,2097152,4194304,25165824,33554432,134217728,268435456,2147483648,0,0,25165824,33554432,134217728,1879048192,2147483648,0,0,4,112,512,622592,65011712,134217728,-268435456,16777216,33554432,134217728,1610612736,0,0,0,64,98304,524288,4194304,16777216,33554432,0,98304,524288,16777216,33554432,0,65536,524288,33554432,536870912,1073741824,0,65536,524288,536870912,1073741824,0,0,65536,524288,536870912,0,524288,0,524288,524288,1048576,2086666240,2147483648,0,-1678194207,0,0,0,8,32,2048,524288,8388608,0,0,33062912,436207616,2147483648,0,0,32,64,2432,16384,32768,32768,524288,3145728,4194304,25165824,25165824,167772160,268435456,2147483648,0,32,64,384,2048,16384,32768,1048576,2097152,4194304,25165824,32,64,128,256,2048,16384,2048,16384,1048576,4194304,16777216,33554432,134217728,536870912,1073741824,0,0,2048,16384,4194304,16777216,33554432,134217728,805306368,0,0,16777216,134217728,268435456,2147483648,0,622592,622592,622592,8807,8807,434791,0,0,16777216,0,0,0,7,608,8192,0,0,0,3,4,96,512,32,64,8192,0,0,16777216,134217728,0,0,2,4,8192,16384,65536,2097152,33554432,268435456],r.TOKEN=["(0)","ModuleDecl","Annotation","OptionDecl","Operator","Variable","Tag","EndTag","PragmaContents","DirCommentContents","DirPIContents","CDataSectionContents","AttrTest","Wildcard","EQName","IntegerLiteral","DecimalLiteral","DoubleLiteral","PredefinedEntityRef","'\"\"'","EscapeApos","QuotChar","AposChar","ElementContentChar","QuotAttrContentChar","AposAttrContentChar","NCName","QName","S","CharRef","CommentContents","DocTag","DocCommentContents","EOF","'!'","'\"'","'#'","'#)'","''''","'('","'(#'","'(:'","'(:~'","')'","'*'","'*'","','","'-->'","'.'","'/'","'/>'","':'","':)'","';'","'<!--'","'<![CDATA['","'<?'","'='","'>'","'?'","'?>'","'NaN'","'['","']'","']]>'","'after'","'all'","'allowing'","'ancestor'","'ancestor-or-self'","'and'","'any'","'append'","'array'","'as'","'ascending'","'at'","'attribute'","'base-uri'","'before'","'boundary-space'","'break'","'by'","'case'","'cast'","'castable'","'catch'","'check'","'child'","'collation'","'collection'","'comment'","'constraint'","'construction'","'contains'","'content'","'context'","'continue'","'copy'","'copy-namespaces'","'count'","'decimal-format'","'decimal-separator'","'declare'","'default'","'delete'","'descendant'","'descendant-or-self'","'descending'","'diacritics'","'different'","'digit'","'distance'","'div'","'document'","'document-node'","'element'","'else'","'empty'","'empty-sequence'","'encoding'","'end'","'entire'","'eq'","'every'","'exactly'","'except'","'exit'","'external'","'first'","'following'","'following-sibling'","'for'","'foreach'","'foreign'","'from'","'ft-option'","'ftand'","'ftnot'","'ftor'","'function'","'ge'","'greatest'","'group'","'grouping-separator'","'gt'","'idiv'","'if'","'import'","'in'","'index'","'infinity'","'inherit'","'insensitive'","'insert'","'instance'","'integrity'","'intersect'","'into'","'is'","'item'","'json'","'json-item'","'key'","'language'","'last'","'lax'","'le'","'least'","'let'","'levels'","'loop'","'lowercase'","'lt'","'minus-sign'","'mod'","'modify'","'module'","'most'","'namespace'","'namespace-node'","'ne'","'next'","'no'","'no-inherit'","'no-preserve'","'node'","'nodes'","'not'","'object'","'occurs'","'of'","'on'","'only'","'option'","'or'","'order'","'ordered'","'ordering'","'paragraph'","'paragraphs'","'parent'","'pattern-separator'","'per-mille'","'percent'","'phrase'","'position'","'preceding'","'preceding-sibling'","'preserve'","'previous'","'processing-instruction'","'relationship'","'rename'","'replace'","'return'","'returning'","'revalidation'","'same'","'satisfies'","'schema'","'schema-attribute'","'schema-element'","'score'","'self'","'sensitive'","'sentence'","'sentences'","'skip'","'sliding'","'some'","'stable'","'start'","'stemming'","'stop'","'strict'","'strip'","'structured-item'","'switch'","'text'","'then'","'thesaurus'","'times'","'to'","'treat'","'try'","'tumbling'","'type'","'typeswitch'","'union'","'unique'","'unordered'","'updating'","'uppercase'","'using'","'validate'","'value'","'variable'","'version'","'weight'","'when'","'where'","'while'","'wildcards'","'window'","'with'","'without'","'word'","'words'","'xquery'","'zero-digit'","'{'","'{{'","'|'","'}'","'}}'"]},{}],2:[function(e,t,n){"use strict";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:"WS",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i==="start"||!i?'["start"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u["parse_"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name==="WS"&&(a.push({type:"text",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name=="function"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name==="EOF")break;if(c.value==="")throw"Encountered empty string lexical rule.";a.push({type:l===null?"text":typeof l.token=="function"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:"text",value:n.substring(m)}),{tokens:a,state:JSON.stringify(["start"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}],3:[function(e,t,n){"use strict";var r=e("./XQueryTokenizer").XQueryTokenizer,i=e("./lexer").Lexer,s="after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning|append|json|position|strict".split("|"),o=s.map(function(e){return{name:"'"+e+"'",token:"keyword"}}),u=s.map(function(e){return{name:"'"+e+"'",token:"text",next:function(e){e.pop()}}}),a="constant.language",f="constant",l="comment",c="xml-pe",h="constant.buildin",p=function(e){return"'"+e+"'"},d={start:[{name:p("(#"),token:h,next:function(e){e.push("Pragma")}},{name:p("(:"),token:"comment",next:function(e){e.push("Comment")}},{name:p("(:~"),token:"comment.doc",next:function(e){e.push("CommentDoc")}},{name:p("<!--"),token:l,next:function(e){e.push("XMLComment")}},{name:p("<?"),token:c,next:function(e){e.push("PI")}},{name:p("''"),token:"string",next:function(e){e.push("AposString")}},{name:p('"'),token:"string",next:function(e){e.push("QuotString")}},{name:"Annotation",token:"support.function"},{name:"ModuleDecl",token:"keyword",next:function(e){e.push("Prefix")}},{name:"OptionDecl",token:"keyword",next:function(e){e.push("_EQName")}},{name:"AttrTest",token:"support.type"},{name:"Variable",token:"variable"},{name:p("<![CDATA["),token:a,next:function(e){e.push("CData")}},{name:"IntegerLiteral",token:f},{name:"DecimalLiteral",token:f},{name:"DoubleLiteral",token:f},{name:"Operator",token:"keyword.operator"},{name:"EQName",token:function(e){return s.indexOf(e)!==-1?"keyword":"support.function"}},{name:p("("),token:"lparen"},{name:p(")"),token:"rparen"},{name:"Tag",token:"meta.tag",next:function(e){e.push("StartTag")}},{name:p("}"),token:"text",next:function(e){e.length>1&&e.pop()}},{name:p("{"),token:"text",next:function(e){e.push("start")}}].concat(o),_EQName:[{name:"EQName",token:"text",next:function(e){e.pop()}}].concat(u),Prefix:[{name:"NCName",token:"text",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(">"),token:"meta.tag",next:function(e){e.push("TagContent")}},{name:"QName",token:"entity.other.attribute-name"},{name:p("="),token:"text"},{name:p("''"),token:"string",next:function(e){e.push("AposAttr")}},{name:p('"'),token:"string",next:function(e){e.push("QuotAttr")}},{name:p("/>"),token:"meta.tag.r",next:function(e){e.pop()}}],TagContent:[{name:"ElementContentChar",token:"text"},{name:p("<![CDATA["),token:a,next:function(e){e.push("CData")}},{name:p("<!--"),token:l,next:function(e){e.push("XMLComment")}},{name:"Tag",token:"meta.tag",next:function(e){e.push("StartTag")}},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"text"},{name:p("}}"),token:"text"},{name:p("{"),token:"text",next:function(e){e.push("start")}},{name:"EndTag",token:"meta.tag",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p("''"),token:"string",next:function(e){e.pop()}},{name:"EscapeApos",token:"constant.language.escape"},{name:"AposAttrContentChar",token:"string"},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"string"},{name:p("}}"),token:"string"},{name:p("{"),token:"text",next:function(e){e.push("start")}}],QuotAttr:[{name:p('"'),token:"string",next:function(e){e.pop()}},{name:"EscapeQuot",token:"constant.language.escape"},{name:"QuotAttrContentChar",token:"string"},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:p("{{"),token:"string"},{name:p("}}"),token:"string"},{name:p("{"),token:"text",next:function(e){e.push("start")}}],Pragma:[{name:"PragmaContents",token:h},{name:p("#"),token:h},{name:p("#)"),token:h,next:function(e){e.pop()}}],Comment:[{name:"CommentContents",token:"comment"},{name:p("(:"),token:"comment",next:function(e){e.push("Comment")}},{name:p(":)"),token:"comment",next:function(e){e.pop()}}],CommentDoc:[{name:"DocCommentContents",token:"comment.doc"},{name:"DocTag",token:"comment.doc.tag"},{name:p("(:"),token:"comment.doc",next:function(e){e.push("CommentDoc")}},{name:p(":)"),token:"comment.doc",next:function(e){e.pop()}}],XMLComment:[{name:"DirCommentContents",token:l},{name:p("-->"),token:l,next:function(e){e.pop()}}],CData:[{name:"CDataSectionContents",token:a},{name:p("]]>"),token:a,next:function(e){e.pop()}}],PI:[{name:"DirPIContents",token:c},{name:p("?"),token:c},{name:p("?>"),token:c,next:function(e){e.pop()}}],AposString:[{name:p("''"),token:"string",next:function(e){e.pop()}},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:"EscapeApos",token:"constant.language.escape"},{name:"AposChar",token:"string"}],QuotString:[{name:p('"'),token:"string",next:function(e){e.pop()}},{name:"PredefinedEntityRef",token:"constant.language.escape"},{name:"CharRef",token:"constant.language.escape"},{name:"EscapeQuot",token:"constant.language.escape"},{name:"QuotChar",token:"string"}]};n.XQueryLexer=function(){return new i(r,d)}},{"./XQueryTokenizer":1,"./lexer":2}]},{},[3])(3)}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+l+"}",selection:!1};if(h.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(h.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var p=u.substring(s.column,s.column+1);if(p=="}"){var d=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(d!==null&&h.isAutoInsertedClosing(s,u,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var v="";h.isMaybeInsertedClosing(s,u)&&(v=o.stringRepeat("}",f.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var p=u.substring(s.column,s.column+1);if(p==="}"){var m=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!m)return null;var g=this.$getIndent(r.getLine(m.row))}else{if(!v){h.clearMaybeInsertedClosing();return}var g=this.$getIndent(u)}var y=g+r.getTabString();return{text:"\n"+y+"\n"+g+v,selection:[1,y.length,1,y.length]}}h.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(h.isSaneInsertion(n,r))return h.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&h.isAutoInsertedClosing(u,a,i))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),h=f.substring(a.column,a.column+1),p=r.getTokenAt(a.row,a.column),d=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&p&&/escape/.test(p.type))return null;var v=p&&/string/.test(p.type),m=!d||/string/.test(d.type),g;if(h==s)g=v!==m;else{if(v&&!m)return null;if(v&&m)return null;var y=r.$mode.tokenRe;y.lastIndex=0;var b=y.test(l);y.lastIndex=0;var w=y.test(l);if(b||w)return null;if(h&&!/[\s;,.})\]\\]/.test(h))return null;g=!0}return{text:g?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};h.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},h.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},h.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},h.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(h,i),t.CstyleBehaviour=h}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml","ace/token_iterator"],function(e,t,n){"use strict";function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../behaviour/xml").XmlBehaviour,u=e("../../token_iterator").TokenIterator,f=function(){this.inherit(s,["braces","parens","string_dquotes"]),this.inherit(o),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===">"||e!=="StartTag")return;if(!f||!a(f,"meta.tag")&&(!a(f,"text")||!f.value.match("/"))){do f=o.stepBackward();while(f&&(a(f,"string")||a(f,"keyword.operator")||a(f,"entity.attribute-name")||a(f,"text")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,"meta.tag")||c!==null&&c.value.match("/"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:"></"+h+">",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/)#(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/xquery",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/xquery/xquery_lexer","ace/range","ace/mode/behaviour/xquery","ace/mode/folding/cstyle","ace/anchor"],function(e,t,n){"use strict";var r=e("../worker/worker_client").WorkerClient,i=e("../lib/oop"),s=e("./text").Mode,o=e("./text_highlight_rules").TextHighlightRules,u=e("./xquery/xquery_lexer").XQueryLexer,a=e("../range").Range,f=e("./behaviour/xquery").XQueryBehaviour,l=e("./folding/cstyle").FoldMode,c=e("../anchor").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit("complete",{data:{pos:n,prefix:r}}),t.$worker.on("complete",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\s+$/.test(t)?/^\s*[\}\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\s*[\}\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\s*\(:(.*):\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:"(:"+s+":)")},this.createWorker=function(e){var t=new r(["ace"],"ace/mode/xquery_worker","XQueryWorker"),n=this;return t.attachToDocument(e.getDocument()),t.on("ok",function(t){e.clearAnnotations()}),t.on("markers",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t.on("highlight",function(t){n.$tokenizer.tokens=t.data.tokens,n.$tokenizer.lines=e.getDocument().getAllLines();var r=Object.keys(n.$tokenizer.tokens);for(var i=0;i<r.length;i++){var s=parseInt(r[i]);delete e.bgTokenizer.lines[s],delete e.bgTokenizer.states[s],e.bgTokenizer.fireUpdateEvent(s,s)}}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf("language_highlight_")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,"language_highlight_"+(e.type?e.type:"default"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||"warning",text:e.message};u(),n.on("change",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id="ace/mode/xquery"}.call(h.prototype),t.Mode=h})
\ No newline at end of file
diff --git a/js/ace/mode-yaml.js b/js/ace/mode-yaml.js
new file mode 100644
index 0000000..df458d7
--- /dev/null
+++ b/js/ace/mode-yaml.js
@@ -0,0 +1 @@
+ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(\:(?:\s+|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*\:(?:\s+|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[|>][-+\\d\\s]*$",next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"}],qqstring:[{token:"string",regex:"(?=(?:(?:\\\\.)|(?:[^:]))*?:)",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/coffee").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/yaml"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
diff --git a/js/ace/snippets/abap.js b/js/ace/snippets/abap.js
new file mode 100644
index 0000000..5e1c4c2
--- /dev/null
+++ b/js/ace/snippets/abap.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/abap",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="abap"})
\ No newline at end of file
diff --git a/js/ace/snippets/abc.js b/js/ace/snippets/abc.js
new file mode 100644
index 0000000..ed591a5
--- /dev/null
+++ b/js/ace/snippets/abc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/abc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='\nsnippet zupfnoter.print\n	%%%%hn.print {"startpos": ${1:pos_y}, "t":"${2:title}", "v":[${3:voices}], "s":[[${4:syncvoices}1,2]], "f":[${5:flowlines}],  "sf":[${6:subflowlines}], "j":[${7:jumplines}]}\n\nsnippet zupfnoter.note\n	%%%%hn.note {"pos": [${1:pos_x},${2:pos_y}], "text": "${3:text}", "style": "${4:style}"}\n\nsnippet zupfnoter.annotation\n	%%%%hn.annotation {"id": "${1:id}", "pos": [${2:pos}], "text": "${3:text}"}\n\nsnippet zupfnoter.lyrics\n	%%%%hn.lyrics {"pos": [${1:x_pos},${2:y_pos}]}\n\nsnippet zupfnoter.legend\n	%%%%hn.legend {"pos": [${1:x_pos},${2:y_pos}]}\n\n\n\nsnippet zupfnoter.target\n	"^:${1:target}"\n\nsnippet zupfnoter.goto\n	"^@${1:target}@${2:distance}"\n\nsnippet zupfnoter.annotationref\n	"^#${1:target}"\n\nsnippet zupfnoter.annotation\n	"^!${1:text}@${2:x_offset},${3:y_offset}"\n\n\n',t.scope="abc"})
\ No newline at end of file
diff --git a/js/ace/snippets/actionscript.js b/js/ace/snippets/actionscript.js
new file mode 100644
index 0000000..8ff3786
--- /dev/null
+++ b/js/ace/snippets/actionscript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/actionscript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet main\n	package {\n		import flash.display.*;\n		import flash.Events.*;\n	\n		public class Main extends Sprite {\n			public function Main (	) {\n				trace("start");\n				stage.scaleMode = StageScaleMode.NO_SCALE;\n				stage.addEventListener(Event.RESIZE, resizeListener);\n			}\n	\n			private function resizeListener (e:Event):void {\n				trace("The application window changed size!");\n				trace("New width:  " + stage.stageWidth);\n				trace("New height: " + stage.stageHeight);\n			}\n	\n		}\n	\n	}\nsnippet class\n	${1:public|internal} class ${2:name} ${3:extends } {\n		public function $2 (	) {\n			("start");\n		}\n	}\nsnippet all\n	package name {\n\n		${1:public|internal|final} class ${2:name} ${3:extends } {\n			private|public| static const FOO = "abc";\n			private|public| static var BAR = "abc";\n			if Cababilities.os == "Linux|MacOS" {\n				FOO = "other";\n			}\n			public function $2 (	){\n				super2();\n				trace("start");\n			}\n			public function name (a, b...){\n				super.name(..);\n				lable:break\n			}\n		}\n	}\n\n	function A(){\n	}\nsnippet switch\n	switch(${1}){\n		case ${2}:\n			${3}\n		break;\n		default:\n	}\nsnippet case\n		case ${1}:\n			${2}\n		break;\nsnippet package\n	package ${1:package}{\n		${2}\n	}\nsnippet wh\n	while ${1:cond}{\n		${2}\n	}\nsnippet do\n	do {\n		${2}\n	} while (${1:cond})\nsnippet while\n	while ${1:cond}{\n		${2}\n	}\nsnippet for enumerate names\n	for (${1:var} in ${2:object}){\n		${3}\n	}\nsnippet for enumerate values\n	for each (${1:var} in ${2:object}){\n		${3}\n	}\nsnippet get_set\n	function get ${1:name} {\n		return ${2}\n	}\n	function set $1 (newValue) {\n		${3}\n	}\nsnippet interface\n	interface name {\n		function method(${1}):${2:returntype};\n	}\nsnippet try\n	try {\n		${1}\n	} catch (error:ErrorType) {\n		${2}\n	} finally {\n		${3}\n	}\n# For Loop (same as c.snippet)\nsnippet for for (..) {..}\n	for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n		${4:/* code */}\n	}\n# Custom For Loop\nsnippet forr\n	for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\n		${5:/* code */}\n	}\n# If Condition\nsnippet if\n	if (${1:/* condition */}) {\n		${2:/* code */}\n	}\nsnippet el\n	else {\n		${1}\n	}\n# Ternary conditional\nsnippet t\n	${1:/* condition */} ? ${2:a} : ${3:b}\nsnippet fun\n	function ${1:function_name}(${2})${3}\n	{\n		${4:/* code */}\n	}\n# FlxSprite (usefull when using the flixel library)\nsnippet FlxSprite\n	package\n	{\n		import org.flixel.*\n\n		public class ${1:ClassName} extends ${2:FlxSprite}\n		{\n			public function $1(${3: X:Number, Y:Number}):void\n			{\n				super(X,Y);\n				${4: //code...}\n			}\n\n			override public function update():void\n			{\n				super.update();\n				${5: //code...}\n			}\n		}\n	}\n\n',t.scope="actionscript"})
\ No newline at end of file
diff --git a/js/ace/snippets/ada.js b/js/ace/snippets/ada.js
new file mode 100644
index 0000000..65a1adc
--- /dev/null
+++ b/js/ace/snippets/ada.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ada",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ada"})
\ No newline at end of file
diff --git a/js/ace/snippets/apache_conf.js b/js/ace/snippets/apache_conf.js
new file mode 100644
index 0000000..a4364ec
--- /dev/null
+++ b/js/ace/snippets/apache_conf.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/apache_conf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="apache_conf"})
\ No newline at end of file
diff --git a/js/ace/snippets/applescript.js b/js/ace/snippets/applescript.js
new file mode 100644
index 0000000..d3a7cd5
--- /dev/null
+++ b/js/ace/snippets/applescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/applescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="applescript"})
\ No newline at end of file
diff --git a/js/ace/snippets/asciidoc.js b/js/ace/snippets/asciidoc.js
new file mode 100644
index 0000000..ec76c4f
--- /dev/null
+++ b/js/ace/snippets/asciidoc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/asciidoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="asciidoc"})
\ No newline at end of file
diff --git a/js/ace/snippets/assembly_x86.js b/js/ace/snippets/assembly_x86.js
new file mode 100644
index 0000000..7c6e632
--- /dev/null
+++ b/js/ace/snippets/assembly_x86.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/assembly_x86",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="assembly_x86"})
\ No newline at end of file
diff --git a/js/ace/snippets/autohotkey.js b/js/ace/snippets/autohotkey.js
new file mode 100644
index 0000000..0507ad9
--- /dev/null
+++ b/js/ace/snippets/autohotkey.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/autohotkey",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="autohotkey"})
\ No newline at end of file
diff --git a/js/ace/snippets/batchfile.js b/js/ace/snippets/batchfile.js
new file mode 100644
index 0000000..bffe14e
--- /dev/null
+++ b/js/ace/snippets/batchfile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/batchfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="batchfile"})
\ No newline at end of file
diff --git a/js/ace/snippets/c9search.js b/js/ace/snippets/c9search.js
new file mode 100644
index 0000000..0f455c1
--- /dev/null
+++ b/js/ace/snippets/c9search.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/c9search",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="c9search"})
\ No newline at end of file
diff --git a/js/ace/snippets/c_cpp.js b/js/ace/snippets/c_cpp.js
new file mode 100644
index 0000000..9fc5a58
--- /dev/null
+++ b/js/ace/snippets/c_cpp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/c_cpp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="## STL Collections\n# std::array\nsnippet array\n	std::array<${1:T}, ${2:N}> ${3};${4}\n# std::vector\nsnippet vector\n	std::vector<${1:T}> ${2};${3}\n# std::deque\nsnippet deque\n	std::deque<${1:T}> ${2};${3}\n# std::forward_list\nsnippet flist\n	std::forward_list<${1:T}> ${2};${3}\n# std::list\nsnippet list\n	std::list<${1:T}> ${2};${3}\n# std::set\nsnippet set\n	std::set<${1:T}> ${2};${3}\n# std::map\nsnippet map\n	std::map<${1:Key}, ${2:T}> ${3};${4}\n# std::multiset\nsnippet mset\n	std::multiset<${1:T}> ${2};${3}\n# std::multimap\nsnippet mmap\n	std::multimap<${1:Key}, ${2:T}> ${3};${4}\n# std::unordered_set\nsnippet uset\n	std::unordered_set<${1:T}> ${2};${3}\n# std::unordered_map\nsnippet umap\n	std::unordered_map<${1:Key}, ${2:T}> ${3};${4}\n# std::unordered_multiset\nsnippet umset\n	std::unordered_multiset<${1:T}> ${2};${3}\n# std::unordered_multimap\nsnippet ummap\n	std::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\n# std::stack\nsnippet stack\n	std::stack<${1:T}> ${2};${3}\n# std::queue\nsnippet queue\n	std::queue<${1:T}> ${2};${3}\n# std::priority_queue\nsnippet pqueue\n	std::priority_queue<${1:T}> ${2};${3}\n##\n## Access Modifiers\n# private\nsnippet pri\n	private\n# protected\nsnippet pro\n	protected\n# public\nsnippet pub\n	public\n# friend\nsnippet fr\n	friend\n# mutable\nsnippet mu\n	mutable\n## \n## Class\n# class\nsnippet cl\n	class ${1:`Filename('$1', 'name')`} \n	{\n	public:\n		$1(${2});\n		~$1();\n\n	private:\n		${3:/* data */}\n	};\n# member function implementation\nsnippet mfun\n	${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\n		${5:/* code */}\n	}\n# namespace\nsnippet ns\n	namespace ${1:`Filename('', 'my')`} {\n		${2}\n	} /* namespace $1 */\n##\n## Input/Output\n# std::cout\nsnippet cout\n	std::cout << ${1} << std::endl;${2}\n# std::cin\nsnippet cin\n	std::cin >> ${1};${2}\n##\n## Iteration\n# for i \nsnippet fori\n	for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n		${4:/* code */}\n	}${5}\n\n# foreach\nsnippet fore\n	for (${1:auto} ${2:i} : ${3:container}) {\n		${4:/* code */}\n	}${5}\n# iterator\nsnippet iter\n	for (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\n		${6}\n	}${7}\n\n# auto iterator\nsnippet itera\n	for (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\n		${2:std::cout << *$1 << std::endl;}\n	}${3}\n##\n## Lambdas\n# lamda (one line)\nsnippet ld\n	[${1}](${2}){${3:/* code */}}${4}\n# lambda (multi-line)\nsnippet lld\n	[${1}](${2}){\n		${3:/* code */}\n	}${4}\n",t.scope="c_cpp"})
\ No newline at end of file
diff --git a/js/ace/snippets/cirru.js b/js/ace/snippets/cirru.js
new file mode 100644
index 0000000..8ecce1b
--- /dev/null
+++ b/js/ace/snippets/cirru.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/cirru",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cirru"})
\ No newline at end of file
diff --git a/js/ace/snippets/clojure.js b/js/ace/snippets/clojure.js
new file mode 100644
index 0000000..3aebfa5
--- /dev/null
+++ b/js/ace/snippets/clojure.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/clojure",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet comm\n	(comment\n	  ${1}\n	  )\nsnippet condp\n	(condp ${1:pred} ${2:expr}\n	  ${3})\nsnippet def\n	(def ${1})\nsnippet defm\n	(defmethod ${1:multifn} "${2:doc-string}" ${3:dispatch-val} [${4:args}]\n	  ${5})\nsnippet defmm\n	(defmulti ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defma\n	(defmacro ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defn\n	(defn ${1:name} "${2:doc-string}" [${3:arg-list}]\n	  ${4})\nsnippet defp\n	(defprotocol ${1:name}\n	  ${2})\nsnippet defr\n	(defrecord ${1:name} [${2:fields}]\n	  ${3:protocol}\n	  ${4})\nsnippet deft\n	(deftest ${1:name}\n	    (is (= ${2:assertion})))\n	  ${3})\nsnippet is\n	(is (= ${1} ${2}))\nsnippet defty\n	(deftype ${1:Name} [${2:fields}]\n	  ${3:Protocol}\n	  ${4})\nsnippet doseq\n	(doseq [${1:elem} ${2:coll}]\n	  ${3})\nsnippet fn\n	(fn [${1:arg-list}] ${2})\nsnippet if\n	(if ${1:test-expr}\n	  ${2:then-expr}\n	  ${3:else-expr})\nsnippet if-let \n	(if-let [${1:result} ${2:test-expr}]\n		(${3:then-expr} $1)\n		(${4:else-expr}))\nsnippet imp\n	(:import [${1:package}])\n	& {:keys [${1:keys}] :or {${2:defaults}}}\nsnippet let\n	(let [${1:name} ${2:expr}]\n		${3})\nsnippet letfn\n	(letfn [(${1:name) [${2:args}]\n	          ${3})])\nsnippet map\n	(map ${1:func} ${2:coll})\nsnippet mapl\n	(map #(${1:lambda}) ${2:coll})\nsnippet met\n	(${1:name} [${2:this} ${3:args}]\n	  ${4})\nsnippet ns\n	(ns ${1:name}\n	  ${2})\nsnippet dotimes\n	(dotimes [_ 10]\n	  (time\n	    (dotimes [_ ${1:times}]\n	      ${2})))\nsnippet pmethod\n	(${1:name} [${2:this} ${3:args}])\nsnippet refer\n	(:refer-clojure :exclude [${1}])\nsnippet require\n	(:require [${1:namespace} :as [${2}]])\nsnippet use\n	(:use [${1:namespace} :only [${2}]])\nsnippet print\n	(println ${1})\nsnippet reduce\n	(reduce ${1:(fn [p n] ${3})} ${2})\nsnippet when\n	(when ${1:test} ${2:body})\nsnippet when-let\n	(when-let [${1:result} ${2:test}]\n		${3:body})\n',t.scope="clojure"})
\ No newline at end of file
diff --git a/js/ace/snippets/cobol.js b/js/ace/snippets/cobol.js
new file mode 100644
index 0000000..f957427
--- /dev/null
+++ b/js/ace/snippets/cobol.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/cobol",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cobol"})
\ No newline at end of file
diff --git a/js/ace/snippets/coffee.js b/js/ace/snippets/coffee.js
new file mode 100644
index 0000000..ac1b730
--- /dev/null
+++ b/js/ace/snippets/coffee.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/coffee",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# Closure loop\nsnippet forindo\n	for ${1:name} in ${2:array}\n		do ($1) ->\n			${3:// body}\n# Array comprehension\nsnippet fora\n	for ${1:name} in ${2:array}\n		${3:// body...}\n# Object comprehension\nsnippet foro\n	for ${1:key}, ${2:value} of ${3:object}\n		${4:// body...}\n# Range comprehension (inclusive)\nsnippet forr\n	for ${1:name} in [${2:start}..${3:finish}]\n		${4:// body...}\nsnippet forrb\n	for ${1:name} in [${2:start}..${3:finish}] by ${4:step}\n		${5:// body...}\n# Range comprehension (exclusive)\nsnippet forrex\n	for ${1:name} in [${2:start}...${3:finish}]\n		${4:// body...}\nsnippet forrexb\n	for ${1:name} in [${2:start}...${3:finish}] by ${4:step}\n		${5:// body...}\n# Function\nsnippet fun\n	(${1:args}) ->\n		${2:// body...}\n# Function (bound)\nsnippet bfun\n	(${1:args}) =>\n		${2:// body...}\n# Class\nsnippet cla class ..\n	class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n		${2}\nsnippet cla class .. constructor: ..\n	class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n		constructor: (${2:args}) ->\n			${3}\n\n		${4}\nsnippet cla class .. extends ..\n	class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n		${3}\nsnippet cla class .. extends .. constructor: ..\n	class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n		constructor: (${3:args}) ->\n			${4}\n\n		${5}\n# If\nsnippet if\n	if ${1:condition}\n		${2:// body...}\n# If __ Else\nsnippet ife\n	if ${1:condition}\n		${2:// body...}\n	else\n		${3:// body...}\n# Else if\nsnippet elif\n	else if ${1:condition}\n		${2:// body...}\n# Ternary If\nsnippet ifte\n	if ${1:condition} then ${2:value} else ${3:other}\n# Unless\nsnippet unl\n	${1:action} unless ${2:condition}\n# Switch\nsnippet swi\n	switch ${1:object}\n		when ${2:value}\n			${3:// body...}\n\n# Log\nsnippet log\n	console.log ${1}\n# Try __ Catch\nsnippet try\n	try\n		${1}\n	catch ${2:error}\n		${3}\n# Require\nsnippet req\n	${2:$1} = require '${1:sys}'${3}\n# Export\nsnippet exp\n	${1:root} = exports ? this\n",t.scope="coffee"})
\ No newline at end of file
diff --git a/js/ace/snippets/coldfusion.js b/js/ace/snippets/coldfusion.js
new file mode 100644
index 0000000..5342f2f
--- /dev/null
+++ b/js/ace/snippets/coldfusion.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/coldfusion",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="coldfusion"})
\ No newline at end of file
diff --git a/js/ace/snippets/csharp.js b/js/ace/snippets/csharp.js
new file mode 100644
index 0000000..9805077
--- /dev/null
+++ b/js/ace/snippets/csharp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/csharp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="csharp"})
\ No newline at end of file
diff --git a/js/ace/snippets/css.js b/js/ace/snippets/css.js
new file mode 100644
index 0000000..9659ba4
--- /dev/null
+++ b/js/ace/snippets/css.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/css",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet .\n	${1} {\n		${2}\n	}\nsnippet !\n	 !important\nsnippet bdi:m+\n	-moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:m\n	-moz-border-image: ${1};\nsnippet bdrz:m\n	-moz-border-radius: ${1};\nsnippet bxsh:m+\n	-moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:m\n	-moz-box-shadow: ${1};\nsnippet bdi:w+\n	-webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:w\n	-webkit-border-image: ${1};\nsnippet bdrz:w\n	-webkit-border-radius: ${1};\nsnippet bxsh:w+\n	-webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:w\n	-webkit-box-shadow: ${1};\nsnippet @f\n	@font-face {\n		font-family: ${1};\n		src: url(${2});\n	}\nsnippet @i\n	@import url(${1});\nsnippet @m\n	@media ${1:print} {\n		${2}\n	}\nsnippet bg+\n	background: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\nsnippet bga\n	background-attachment: ${1};\nsnippet bga:f\n	background-attachment: fixed;\nsnippet bga:s\n	background-attachment: scroll;\nsnippet bgbk\n	background-break: ${1};\nsnippet bgbk:bb\n	background-break: bounding-box;\nsnippet bgbk:c\n	background-break: continuous;\nsnippet bgbk:eb\n	background-break: each-box;\nsnippet bgcp\n	background-clip: ${1};\nsnippet bgcp:bb\n	background-clip: border-box;\nsnippet bgcp:cb\n	background-clip: content-box;\nsnippet bgcp:nc\n	background-clip: no-clip;\nsnippet bgcp:pb\n	background-clip: padding-box;\nsnippet bgc\n	background-color: #${1:FFF};\nsnippet bgc:t\n	background-color: transparent;\nsnippet bgi\n	background-image: url(${1});\nsnippet bgi:n\n	background-image: none;\nsnippet bgo\n	background-origin: ${1};\nsnippet bgo:bb\n	background-origin: border-box;\nsnippet bgo:cb\n	background-origin: content-box;\nsnippet bgo:pb\n	background-origin: padding-box;\nsnippet bgpx\n	background-position-x: ${1};\nsnippet bgpy\n	background-position-y: ${1};\nsnippet bgp\n	background-position: ${1:0} ${2:0};\nsnippet bgr\n	background-repeat: ${1};\nsnippet bgr:n\n	background-repeat: no-repeat;\nsnippet bgr:x\n	background-repeat: repeat-x;\nsnippet bgr:y\n	background-repeat: repeat-y;\nsnippet bgr:r\n	background-repeat: repeat;\nsnippet bgz\n	background-size: ${1};\nsnippet bgz:a\n	background-size: auto;\nsnippet bgz:ct\n	background-size: contain;\nsnippet bgz:cv\n	background-size: cover;\nsnippet bg\n	background: ${1};\nsnippet bg:ie\n	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\nsnippet bg:n\n	background: none;\nsnippet bd+\n	border: ${1:1px} ${2:solid} #${3:000};\nsnippet bdb+\n	border-bottom: ${1:1px} ${2:solid} #${3:000};\nsnippet bdbc\n	border-bottom-color: #${1:000};\nsnippet bdbi\n	border-bottom-image: url(${1});\nsnippet bdbi:n\n	border-bottom-image: none;\nsnippet bdbli\n	border-bottom-left-image: url(${1});\nsnippet bdbli:c\n	border-bottom-left-image: continue;\nsnippet bdbli:n\n	border-bottom-left-image: none;\nsnippet bdblrz\n	border-bottom-left-radius: ${1};\nsnippet bdbri\n	border-bottom-right-image: url(${1});\nsnippet bdbri:c\n	border-bottom-right-image: continue;\nsnippet bdbri:n\n	border-bottom-right-image: none;\nsnippet bdbrrz\n	border-bottom-right-radius: ${1};\nsnippet bdbs\n	border-bottom-style: ${1};\nsnippet bdbs:n\n	border-bottom-style: none;\nsnippet bdbw\n	border-bottom-width: ${1};\nsnippet bdb\n	border-bottom: ${1};\nsnippet bdb:n\n	border-bottom: none;\nsnippet bdbk\n	border-break: ${1};\nsnippet bdbk:c\n	border-break: close;\nsnippet bdcl\n	border-collapse: ${1};\nsnippet bdcl:c\n	border-collapse: collapse;\nsnippet bdcl:s\n	border-collapse: separate;\nsnippet bdc\n	border-color: #${1:000};\nsnippet bdci\n	border-corner-image: url(${1});\nsnippet bdci:c\n	border-corner-image: continue;\nsnippet bdci:n\n	border-corner-image: none;\nsnippet bdf\n	border-fit: ${1};\nsnippet bdf:c\n	border-fit: clip;\nsnippet bdf:of\n	border-fit: overwrite;\nsnippet bdf:ow\n	border-fit: overwrite;\nsnippet bdf:r\n	border-fit: repeat;\nsnippet bdf:sc\n	border-fit: scale;\nsnippet bdf:sp\n	border-fit: space;\nsnippet bdf:st\n	border-fit: stretch;\nsnippet bdi\n	border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:n\n	border-image: none;\nsnippet bdl+\n	border-left: ${1:1px} ${2:solid} #${3:000};\nsnippet bdlc\n	border-left-color: #${1:000};\nsnippet bdli\n	border-left-image: url(${1});\nsnippet bdli:n\n	border-left-image: none;\nsnippet bdls\n	border-left-style: ${1};\nsnippet bdls:n\n	border-left-style: none;\nsnippet bdlw\n	border-left-width: ${1};\nsnippet bdl\n	border-left: ${1};\nsnippet bdl:n\n	border-left: none;\nsnippet bdlt\n	border-length: ${1};\nsnippet bdlt:a\n	border-length: auto;\nsnippet bdrz\n	border-radius: ${1};\nsnippet bdr+\n	border-right: ${1:1px} ${2:solid} #${3:000};\nsnippet bdrc\n	border-right-color: #${1:000};\nsnippet bdri\n	border-right-image: url(${1});\nsnippet bdri:n\n	border-right-image: none;\nsnippet bdrs\n	border-right-style: ${1};\nsnippet bdrs:n\n	border-right-style: none;\nsnippet bdrw\n	border-right-width: ${1};\nsnippet bdr\n	border-right: ${1};\nsnippet bdr:n\n	border-right: none;\nsnippet bdsp\n	border-spacing: ${1};\nsnippet bds\n	border-style: ${1};\nsnippet bds:ds\n	border-style: dashed;\nsnippet bds:dtds\n	border-style: dot-dash;\nsnippet bds:dtdtds\n	border-style: dot-dot-dash;\nsnippet bds:dt\n	border-style: dotted;\nsnippet bds:db\n	border-style: double;\nsnippet bds:g\n	border-style: groove;\nsnippet bds:h\n	border-style: hidden;\nsnippet bds:i\n	border-style: inset;\nsnippet bds:n\n	border-style: none;\nsnippet bds:o\n	border-style: outset;\nsnippet bds:r\n	border-style: ridge;\nsnippet bds:s\n	border-style: solid;\nsnippet bds:w\n	border-style: wave;\nsnippet bdt+\n	border-top: ${1:1px} ${2:solid} #${3:000};\nsnippet bdtc\n	border-top-color: #${1:000};\nsnippet bdti\n	border-top-image: url(${1});\nsnippet bdti:n\n	border-top-image: none;\nsnippet bdtli\n	border-top-left-image: url(${1});\nsnippet bdtli:c\n	border-corner-image: continue;\nsnippet bdtli:n\n	border-corner-image: none;\nsnippet bdtlrz\n	border-top-left-radius: ${1};\nsnippet bdtri\n	border-top-right-image: url(${1});\nsnippet bdtri:c\n	border-top-right-image: continue;\nsnippet bdtri:n\n	border-top-right-image: none;\nsnippet bdtrrz\n	border-top-right-radius: ${1};\nsnippet bdts\n	border-top-style: ${1};\nsnippet bdts:n\n	border-top-style: none;\nsnippet bdtw\n	border-top-width: ${1};\nsnippet bdt\n	border-top: ${1};\nsnippet bdt:n\n	border-top: none;\nsnippet bdw\n	border-width: ${1};\nsnippet bd\n	border: ${1};\nsnippet bd:n\n	border: none;\nsnippet b\n	bottom: ${1};\nsnippet b:a\n	bottom: auto;\nsnippet bxsh+\n	box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh\n	box-shadow: ${1};\nsnippet bxsh:n\n	box-shadow: none;\nsnippet bxz\n	box-sizing: ${1};\nsnippet bxz:bb\n	box-sizing: border-box;\nsnippet bxz:cb\n	box-sizing: content-box;\nsnippet cps\n	caption-side: ${1};\nsnippet cps:b\n	caption-side: bottom;\nsnippet cps:t\n	caption-side: top;\nsnippet cl\n	clear: ${1};\nsnippet cl:b\n	clear: both;\nsnippet cl:l\n	clear: left;\nsnippet cl:n\n	clear: none;\nsnippet cl:r\n	clear: right;\nsnippet cp\n	clip: ${1};\nsnippet cp:a\n	clip: auto;\nsnippet cp:r\n	clip: rect(${1:0} ${2:0} ${3:0} ${4:0});\nsnippet c\n	color: #${1:000};\nsnippet ct\n	content: ${1};\nsnippet ct:a\n	content: attr(${1});\nsnippet ct:cq\n	content: close-quote;\nsnippet ct:c\n	content: counter(${1});\nsnippet ct:cs\n	content: counters(${1});\nsnippet ct:ncq\n	content: no-close-quote;\nsnippet ct:noq\n	content: no-open-quote;\nsnippet ct:n\n	content: normal;\nsnippet ct:oq\n	content: open-quote;\nsnippet coi\n	counter-increment: ${1};\nsnippet cor\n	counter-reset: ${1};\nsnippet cur\n	cursor: ${1};\nsnippet cur:a\n	cursor: auto;\nsnippet cur:c\n	cursor: crosshair;\nsnippet cur:d\n	cursor: default;\nsnippet cur:ha\n	cursor: hand;\nsnippet cur:he\n	cursor: help;\nsnippet cur:m\n	cursor: move;\nsnippet cur:p\n	cursor: pointer;\nsnippet cur:t\n	cursor: text;\nsnippet d\n	display: ${1};\nsnippet d:mib\n	display: -moz-inline-box;\nsnippet d:mis\n	display: -moz-inline-stack;\nsnippet d:b\n	display: block;\nsnippet d:cp\n	display: compact;\nsnippet d:ib\n	display: inline-block;\nsnippet d:itb\n	display: inline-table;\nsnippet d:i\n	display: inline;\nsnippet d:li\n	display: list-item;\nsnippet d:n\n	display: none;\nsnippet d:ri\n	display: run-in;\nsnippet d:tbcp\n	display: table-caption;\nsnippet d:tbc\n	display: table-cell;\nsnippet d:tbclg\n	display: table-column-group;\nsnippet d:tbcl\n	display: table-column;\nsnippet d:tbfg\n	display: table-footer-group;\nsnippet d:tbhg\n	display: table-header-group;\nsnippet d:tbrg\n	display: table-row-group;\nsnippet d:tbr\n	display: table-row;\nsnippet d:tb\n	display: table;\nsnippet ec\n	empty-cells: ${1};\nsnippet ec:h\n	empty-cells: hide;\nsnippet ec:s\n	empty-cells: show;\nsnippet exp\n	expression()\nsnippet fl\n	float: ${1};\nsnippet fl:l\n	float: left;\nsnippet fl:n\n	float: none;\nsnippet fl:r\n	float: right;\nsnippet f+\n	font: ${1:1em} ${2:Arial},${3:sans-serif};\nsnippet fef\n	font-effect: ${1};\nsnippet fef:eb\n	font-effect: emboss;\nsnippet fef:eg\n	font-effect: engrave;\nsnippet fef:n\n	font-effect: none;\nsnippet fef:o\n	font-effect: outline;\nsnippet femp\n	font-emphasize-position: ${1};\nsnippet femp:a\n	font-emphasize-position: after;\nsnippet femp:b\n	font-emphasize-position: before;\nsnippet fems\n	font-emphasize-style: ${1};\nsnippet fems:ac\n	font-emphasize-style: accent;\nsnippet fems:c\n	font-emphasize-style: circle;\nsnippet fems:ds\n	font-emphasize-style: disc;\nsnippet fems:dt\n	font-emphasize-style: dot;\nsnippet fems:n\n	font-emphasize-style: none;\nsnippet fem\n	font-emphasize: ${1};\nsnippet ff\n	font-family: ${1};\nsnippet ff:c\n	font-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\nsnippet ff:f\n	font-family: ${1:Capitals,Impact},fantasy;\nsnippet ff:m\n	font-family: ${1:Monaco,'Courier New'},monospace;\nsnippet ff:ss\n	font-family: ${1:Helvetica,Arial},sans-serif;\nsnippet ff:s\n	font-family: ${1:Georgia,'Times New Roman'},serif;\nsnippet fza\n	font-size-adjust: ${1};\nsnippet fza:n\n	font-size-adjust: none;\nsnippet fz\n	font-size: ${1};\nsnippet fsm\n	font-smooth: ${1};\nsnippet fsm:aw\n	font-smooth: always;\nsnippet fsm:a\n	font-smooth: auto;\nsnippet fsm:n\n	font-smooth: never;\nsnippet fst\n	font-stretch: ${1};\nsnippet fst:c\n	font-stretch: condensed;\nsnippet fst:e\n	font-stretch: expanded;\nsnippet fst:ec\n	font-stretch: extra-condensed;\nsnippet fst:ee\n	font-stretch: extra-expanded;\nsnippet fst:n\n	font-stretch: normal;\nsnippet fst:sc\n	font-stretch: semi-condensed;\nsnippet fst:se\n	font-stretch: semi-expanded;\nsnippet fst:uc\n	font-stretch: ultra-condensed;\nsnippet fst:ue\n	font-stretch: ultra-expanded;\nsnippet fs\n	font-style: ${1};\nsnippet fs:i\n	font-style: italic;\nsnippet fs:n\n	font-style: normal;\nsnippet fs:o\n	font-style: oblique;\nsnippet fv\n	font-variant: ${1};\nsnippet fv:n\n	font-variant: normal;\nsnippet fv:sc\n	font-variant: small-caps;\nsnippet fw\n	font-weight: ${1};\nsnippet fw:b\n	font-weight: bold;\nsnippet fw:br\n	font-weight: bolder;\nsnippet fw:lr\n	font-weight: lighter;\nsnippet fw:n\n	font-weight: normal;\nsnippet f\n	font: ${1};\nsnippet h\n	height: ${1};\nsnippet h:a\n	height: auto;\nsnippet l\n	left: ${1};\nsnippet l:a\n	left: auto;\nsnippet lts\n	letter-spacing: ${1};\nsnippet lh\n	line-height: ${1};\nsnippet lisi\n	list-style-image: url(${1});\nsnippet lisi:n\n	list-style-image: none;\nsnippet lisp\n	list-style-position: ${1};\nsnippet lisp:i\n	list-style-position: inside;\nsnippet lisp:o\n	list-style-position: outside;\nsnippet list\n	list-style-type: ${1};\nsnippet list:c\n	list-style-type: circle;\nsnippet list:dclz\n	list-style-type: decimal-leading-zero;\nsnippet list:dc\n	list-style-type: decimal;\nsnippet list:d\n	list-style-type: disc;\nsnippet list:lr\n	list-style-type: lower-roman;\nsnippet list:n\n	list-style-type: none;\nsnippet list:s\n	list-style-type: square;\nsnippet list:ur\n	list-style-type: upper-roman;\nsnippet lis\n	list-style: ${1};\nsnippet lis:n\n	list-style: none;\nsnippet mb\n	margin-bottom: ${1};\nsnippet mb:a\n	margin-bottom: auto;\nsnippet ml\n	margin-left: ${1};\nsnippet ml:a\n	margin-left: auto;\nsnippet mr\n	margin-right: ${1};\nsnippet mr:a\n	margin-right: auto;\nsnippet mt\n	margin-top: ${1};\nsnippet mt:a\n	margin-top: auto;\nsnippet m\n	margin: ${1};\nsnippet m:4\n	margin: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet m:3\n	margin: ${1:0} ${2:0} ${3:0};\nsnippet m:2\n	margin: ${1:0} ${2:0};\nsnippet m:0\n	margin: 0;\nsnippet m:a\n	margin: auto;\nsnippet mah\n	max-height: ${1};\nsnippet mah:n\n	max-height: none;\nsnippet maw\n	max-width: ${1};\nsnippet maw:n\n	max-width: none;\nsnippet mih\n	min-height: ${1};\nsnippet miw\n	min-width: ${1};\nsnippet op\n	opacity: ${1};\nsnippet op:ie\n	filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\nsnippet op:ms\n	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\nsnippet orp\n	orphans: ${1};\nsnippet o+\n	outline: ${1:1px} ${2:solid} #${3:000};\nsnippet oc\n	outline-color: ${1:#000};\nsnippet oc:i\n	outline-color: invert;\nsnippet oo\n	outline-offset: ${1};\nsnippet os\n	outline-style: ${1};\nsnippet ow\n	outline-width: ${1};\nsnippet o\n	outline: ${1};\nsnippet o:n\n	outline: none;\nsnippet ovs\n	overflow-style: ${1};\nsnippet ovs:a\n	overflow-style: auto;\nsnippet ovs:mq\n	overflow-style: marquee;\nsnippet ovs:mv\n	overflow-style: move;\nsnippet ovs:p\n	overflow-style: panner;\nsnippet ovs:s\n	overflow-style: scrollbar;\nsnippet ovx\n	overflow-x: ${1};\nsnippet ovx:a\n	overflow-x: auto;\nsnippet ovx:h\n	overflow-x: hidden;\nsnippet ovx:s\n	overflow-x: scroll;\nsnippet ovx:v\n	overflow-x: visible;\nsnippet ovy\n	overflow-y: ${1};\nsnippet ovy:a\n	overflow-y: auto;\nsnippet ovy:h\n	overflow-y: hidden;\nsnippet ovy:s\n	overflow-y: scroll;\nsnippet ovy:v\n	overflow-y: visible;\nsnippet ov\n	overflow: ${1};\nsnippet ov:a\n	overflow: auto;\nsnippet ov:h\n	overflow: hidden;\nsnippet ov:s\n	overflow: scroll;\nsnippet ov:v\n	overflow: visible;\nsnippet pb\n	padding-bottom: ${1};\nsnippet pl\n	padding-left: ${1};\nsnippet pr\n	padding-right: ${1};\nsnippet pt\n	padding-top: ${1};\nsnippet p\n	padding: ${1};\nsnippet p:4\n	padding: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet p:3\n	padding: ${1:0} ${2:0} ${3:0};\nsnippet p:2\n	padding: ${1:0} ${2:0};\nsnippet p:0\n	padding: 0;\nsnippet pgba\n	page-break-after: ${1};\nsnippet pgba:aw\n	page-break-after: always;\nsnippet pgba:a\n	page-break-after: auto;\nsnippet pgba:l\n	page-break-after: left;\nsnippet pgba:r\n	page-break-after: right;\nsnippet pgbb\n	page-break-before: ${1};\nsnippet pgbb:aw\n	page-break-before: always;\nsnippet pgbb:a\n	page-break-before: auto;\nsnippet pgbb:l\n	page-break-before: left;\nsnippet pgbb:r\n	page-break-before: right;\nsnippet pgbi\n	page-break-inside: ${1};\nsnippet pgbi:a\n	page-break-inside: auto;\nsnippet pgbi:av\n	page-break-inside: avoid;\nsnippet pos\n	position: ${1};\nsnippet pos:a\n	position: absolute;\nsnippet pos:f\n	position: fixed;\nsnippet pos:r\n	position: relative;\nsnippet pos:s\n	position: static;\nsnippet q\n	quotes: ${1};\nsnippet q:en\n	quotes: '\\201C' '\\201D' '\\2018' '\\2019';\nsnippet q:n\n	quotes: none;\nsnippet q:ru\n	quotes: '\\00AB' '\\00BB' '\\201E' '\\201C';\nsnippet rz\n	resize: ${1};\nsnippet rz:b\n	resize: both;\nsnippet rz:h\n	resize: horizontal;\nsnippet rz:n\n	resize: none;\nsnippet rz:v\n	resize: vertical;\nsnippet r\n	right: ${1};\nsnippet r:a\n	right: auto;\nsnippet tbl\n	table-layout: ${1};\nsnippet tbl:a\n	table-layout: auto;\nsnippet tbl:f\n	table-layout: fixed;\nsnippet tal\n	text-align-last: ${1};\nsnippet tal:a\n	text-align-last: auto;\nsnippet tal:c\n	text-align-last: center;\nsnippet tal:l\n	text-align-last: left;\nsnippet tal:r\n	text-align-last: right;\nsnippet ta\n	text-align: ${1};\nsnippet ta:c\n	text-align: center;\nsnippet ta:l\n	text-align: left;\nsnippet ta:r\n	text-align: right;\nsnippet td\n	text-decoration: ${1};\nsnippet td:l\n	text-decoration: line-through;\nsnippet td:n\n	text-decoration: none;\nsnippet td:o\n	text-decoration: overline;\nsnippet td:u\n	text-decoration: underline;\nsnippet te\n	text-emphasis: ${1};\nsnippet te:ac\n	text-emphasis: accent;\nsnippet te:a\n	text-emphasis: after;\nsnippet te:b\n	text-emphasis: before;\nsnippet te:c\n	text-emphasis: circle;\nsnippet te:ds\n	text-emphasis: disc;\nsnippet te:dt\n	text-emphasis: dot;\nsnippet te:n\n	text-emphasis: none;\nsnippet th\n	text-height: ${1};\nsnippet th:a\n	text-height: auto;\nsnippet th:f\n	text-height: font-size;\nsnippet th:m\n	text-height: max-size;\nsnippet th:t\n	text-height: text-size;\nsnippet ti\n	text-indent: ${1};\nsnippet ti:-\n	text-indent: -9999px;\nsnippet tj\n	text-justify: ${1};\nsnippet tj:a\n	text-justify: auto;\nsnippet tj:d\n	text-justify: distribute;\nsnippet tj:ic\n	text-justify: inter-cluster;\nsnippet tj:ii\n	text-justify: inter-ideograph;\nsnippet tj:iw\n	text-justify: inter-word;\nsnippet tj:k\n	text-justify: kashida;\nsnippet tj:t\n	text-justify: tibetan;\nsnippet to+\n	text-outline: ${1:0} ${2:0} #${3:000};\nsnippet to\n	text-outline: ${1};\nsnippet to:n\n	text-outline: none;\nsnippet tr\n	text-replace: ${1};\nsnippet tr:n\n	text-replace: none;\nsnippet tsh+\n	text-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet tsh\n	text-shadow: ${1};\nsnippet tsh:n\n	text-shadow: none;\nsnippet tt\n	text-transform: ${1};\nsnippet tt:c\n	text-transform: capitalize;\nsnippet tt:l\n	text-transform: lowercase;\nsnippet tt:n\n	text-transform: none;\nsnippet tt:u\n	text-transform: uppercase;\nsnippet tw\n	text-wrap: ${1};\nsnippet tw:no\n	text-wrap: none;\nsnippet tw:n\n	text-wrap: normal;\nsnippet tw:s\n	text-wrap: suppress;\nsnippet tw:u\n	text-wrap: unrestricted;\nsnippet t\n	top: ${1};\nsnippet t:a\n	top: auto;\nsnippet va\n	vertical-align: ${1};\nsnippet va:bl\n	vertical-align: baseline;\nsnippet va:b\n	vertical-align: bottom;\nsnippet va:m\n	vertical-align: middle;\nsnippet va:sub\n	vertical-align: sub;\nsnippet va:sup\n	vertical-align: super;\nsnippet va:tb\n	vertical-align: text-bottom;\nsnippet va:tt\n	vertical-align: text-top;\nsnippet va:t\n	vertical-align: top;\nsnippet v\n	visibility: ${1};\nsnippet v:c\n	visibility: collapse;\nsnippet v:h\n	visibility: hidden;\nsnippet v:v\n	visibility: visible;\nsnippet whsc\n	white-space-collapse: ${1};\nsnippet whsc:ba\n	white-space-collapse: break-all;\nsnippet whsc:bs\n	white-space-collapse: break-strict;\nsnippet whsc:k\n	white-space-collapse: keep-all;\nsnippet whsc:l\n	white-space-collapse: loose;\nsnippet whsc:n\n	white-space-collapse: normal;\nsnippet whs\n	white-space: ${1};\nsnippet whs:n\n	white-space: normal;\nsnippet whs:nw\n	white-space: nowrap;\nsnippet whs:pl\n	white-space: pre-line;\nsnippet whs:pw\n	white-space: pre-wrap;\nsnippet whs:p\n	white-space: pre;\nsnippet wid\n	widows: ${1};\nsnippet w\n	width: ${1};\nsnippet w:a\n	width: auto;\nsnippet wob\n	word-break: ${1};\nsnippet wob:ba\n	word-break: break-all;\nsnippet wob:bs\n	word-break: break-strict;\nsnippet wob:k\n	word-break: keep-all;\nsnippet wob:l\n	word-break: loose;\nsnippet wob:n\n	word-break: normal;\nsnippet wos\n	word-spacing: ${1};\nsnippet wow\n	word-wrap: ${1};\nsnippet wow:no\n	word-wrap: none;\nsnippet wow:n\n	word-wrap: normal;\nsnippet wow:s\n	word-wrap: suppress;\nsnippet wow:u\n	word-wrap: unrestricted;\nsnippet z\n	z-index: ${1};\nsnippet z:a\n	z-index: auto;\nsnippet zoo\n	zoom: 1;\n",t.scope="css"})
\ No newline at end of file
diff --git a/js/ace/snippets/curly.js b/js/ace/snippets/curly.js
new file mode 100644
index 0000000..6bb5604
--- /dev/null
+++ b/js/ace/snippets/curly.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/curly",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="curly"})
\ No newline at end of file
diff --git a/js/ace/snippets/d.js b/js/ace/snippets/d.js
new file mode 100644
index 0000000..1057608
--- /dev/null
+++ b/js/ace/snippets/d.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/d",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="d"})
\ No newline at end of file
diff --git a/js/ace/snippets/dart.js b/js/ace/snippets/dart.js
new file mode 100644
index 0000000..63c63c9
--- /dev/null
+++ b/js/ace/snippets/dart.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dart",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lib\n	library ${1};\n	${2}\nsnippet im\n	import '${1}';\n	${2}\nsnippet pa\n	part '${1}';\n	${2}\nsnippet pao\n	part of ${1};\n	${2}\nsnippet main\n	void main() {\n	  ${1:/* code */}\n	}\nsnippet st\n	static ${1}\nsnippet fi\n	final ${1}\nsnippet re\n	return ${1}\nsnippet br\n	break;\nsnippet th\n	throw ${1}\nsnippet cl\n	class ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet imp\n	implements ${1}\nsnippet ext\n	extends ${1}\nsnippet if\n	if (${1:true}) {\n	  ${2}\n	}\nsnippet ife\n	if (${1:true}) {\n	  ${2}\n	} else {\n	  ${3}\n	}\nsnippet el\n	else\nsnippet sw\n	switch (${1}) {\n	  ${2}\n	}\nsnippet cs\n	case ${1}:\n	  ${2}\nsnippet de\n	default:\n	  ${1}\nsnippet for\n	for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n	  ${4:$1[$2]}\n	}\nsnippet fore\n	for (final ${2:item} in ${1:itemList}) {\n	  ${3:/* code */}\n	}\nsnippet wh\n	while (${1:/* condition */}) {\n	  ${2:/* code */}\n	}\nsnippet dowh\n	do {\n	  ${2:/* code */}\n	} while (${1:/* condition */});\nsnippet as\n	assert(${1:/* condition */});\nsnippet try\n	try {\n	  ${2}\n	} catch (${1:Exception e}) {\n	}\nsnippet tryf\n	try {\n	  ${2}\n	} catch (${1:Exception e}) {\n	} finally {\n	}\n",t.scope="dart"})
\ No newline at end of file
diff --git a/js/ace/snippets/diff.js b/js/ace/snippets/diff.js
new file mode 100644
index 0000000..493c0e9
--- /dev/null
+++ b/js/ace/snippets/diff.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/diff",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\nsnippet header DEP-3 style header\n	Description: ${1}\n	Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n	Bug: ${4:url in upstream bugtracker}\n	Forwarded: ${5:no|not-needed|url}\n	Author: ${6:`g:snips_author`}\n	Reviewed-by: ${7:name and email}\n	Last-Update: ${8:`strftime("%Y-%m-%d")`}\n	Applied-Upstream: ${9:upstream version|url|commit}\n\n',t.scope="diff"})
\ No newline at end of file
diff --git a/js/ace/snippets/django.js b/js/ace/snippets/django.js
new file mode 100644
index 0000000..d0f67a6
--- /dev/null
+++ b/js/ace/snippets/django.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/django",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# Model Fields\n\n# Note: Optional arguments are using defaults that match what Django will use\n# as a default, e.g. with max_length fields.  Doing this as a form of self\n# documentation and to make it easy to know whether you should override the\n# default or not.\n\n# Note: Optional arguments that are booleans will use the opposite since you\n# can either not specify them, or override them, e.g. auto_now_add=False.\n\nsnippet auto\n	${1:FIELDNAME} = models.AutoField(${2})\nsnippet bool\n	${1:FIELDNAME} = models.BooleanField(${2:default=True})\nsnippet char\n	${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\nsnippet comma\n	${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\nsnippet date\n	${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet datetime\n	${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet decimal\n	${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\nsnippet email\n	${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\nsnippet file\n	${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\nsnippet filepath\n	${1:FIELDNAME} = models.FilePathField(path=${2:\"/abs/path/to/dir\"}${3:, max_length=100}${4:, match=\"*.ext\"}${5:, recursive=True}${6:, blank=True, })\nsnippet float\n	${1:FIELDNAME} = models.FloatField(${2})\nsnippet image\n	${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\nsnippet int\n	${1:FIELDNAME} = models.IntegerField(${2})\nsnippet ip\n	${1:FIELDNAME} = models.IPAddressField(${2})\nsnippet nullbool\n	${1:FIELDNAME} = models.NullBooleanField(${2})\nsnippet posint\n	${1:FIELDNAME} = models.PositiveIntegerField(${2})\nsnippet possmallint\n	${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\nsnippet slug\n	${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\nsnippet smallint\n	${1:FIELDNAME} = models.SmallIntegerField(${2})\nsnippet text\n	${1:FIELDNAME} = models.TextField(${2:blank=True})\nsnippet time\n	${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet url\n	${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\nsnippet xml\n	${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\n# Relational Fields\nsnippet fk\n	${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\nsnippet m2m\n	${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\nsnippet o2o\n	${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\n\n# Code Skeletons\n\nsnippet form\n	class ${1:FormName}(forms.Form):\n		\"\"\"${2:docstring}\"\"\"\n		${3}\n\nsnippet model\n	class ${1:ModelName}(models.Model):\n		\"\"\"${2:docstring}\"\"\"\n		${3}\n		\n		class Meta:\n			${4}\n		\n		def __unicode__(self):\n			${5}\n		\n		def save(self, force_insert=False, force_update=False):\n			${6}\n		\n		@models.permalink\n		def get_absolute_url(self):\n			return ('${7:view_or_url_name}' ${8})\n\nsnippet modeladmin\n	class ${1:ModelName}Admin(admin.ModelAdmin):\n		${2}\n	\n	admin.site.register($1, $1Admin)\n	\nsnippet tabularinline\n	class ${1:ModelName}Inline(admin.TabularInline):\n		model = $1\n\nsnippet stackedinline\n	class ${1:ModelName}Inline(admin.StackedInline):\n		model = $1\n\nsnippet r2r\n	return render_to_response('${1:template.html}', {\n			${2}\n		}${3:, context_instance=RequestContext(request)}\n	)\n",t.scope="django"})
\ No newline at end of file
diff --git a/js/ace/snippets/dockerfile.js b/js/ace/snippets/dockerfile.js
new file mode 100644
index 0000000..0c27420
--- /dev/null
+++ b/js/ace/snippets/dockerfile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dockerfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dockerfile"})
\ No newline at end of file
diff --git a/js/ace/snippets/dot.js b/js/ace/snippets/dot.js
new file mode 100644
index 0000000..d4a9e9b
--- /dev/null
+++ b/js/ace/snippets/dot.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dot",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dot"})
\ No newline at end of file
diff --git a/js/ace/snippets/eiffel.js b/js/ace/snippets/eiffel.js
new file mode 100644
index 0000000..21fb888
--- /dev/null
+++ b/js/ace/snippets/eiffel.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/eiffel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="eiffel"})
\ No newline at end of file
diff --git a/js/ace/snippets/ejs.js b/js/ace/snippets/ejs.js
new file mode 100644
index 0000000..2e8cbca
--- /dev/null
+++ b/js/ace/snippets/ejs.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ejs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ejs"})
\ No newline at end of file
diff --git a/js/ace/snippets/elixir.js b/js/ace/snippets/elixir.js
new file mode 100644
index 0000000..455f2f4
--- /dev/null
+++ b/js/ace/snippets/elixir.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/elixir",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""})
\ No newline at end of file
diff --git a/js/ace/snippets/elm.js b/js/ace/snippets/elm.js
new file mode 100644
index 0000000..b483953
--- /dev/null
+++ b/js/ace/snippets/elm.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/elm",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="elm"})
\ No newline at end of file
diff --git a/js/ace/snippets/erlang.js b/js/ace/snippets/erlang.js
new file mode 100644
index 0000000..58de696
--- /dev/null
+++ b/js/ace/snippets/erlang.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/erlang",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# module and export all\nsnippet mod\n	-module(${1:`Filename('', 'my')`}).\n	\n	-compile([export_all]).\n	\n	start() ->\n	    ${2}\n	\n	stop() ->\n	    ok.\n# define directive\nsnippet def\n	-ace.define(${1:macro}, ${2:body}).${3}\n# export directive\nsnippet exp\n	-export([${1:function}/${2:arity}]).\n# include directive\nsnippet inc\n	-include(\"${1:file}\").${2}\n# behavior directive\nsnippet beh\n	-behaviour(${1:behaviour}).${2}\n# if expression\nsnippet if\n	if\n	    ${1:guard} ->\n	        ${2:body}\n	end\n# case expression\nsnippet case\n	case ${1:expression} of\n	    ${2:pattern} ->\n	        ${3:body};\n	end\n# anonymous function\nsnippet fun\n	fun (${1:Parameters}) -> ${2:body} end${3}\n# try...catch\nsnippet try\n	try\n	    ${1}\n	catch\n	    ${2:_:_} -> ${3:got_some_exception}\n	end\n# record directive\nsnippet rec\n	-record(${1:record}, {\n	    ${2:field}=${3:value}}).${4}\n# todo comment\nsnippet todo\n	%% TODO: ${1}\n## Snippets below (starting with '%') are in EDoc format.\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n# doc comment\nsnippet %d\n	%% @doc ${1}\n# end of doc comment\nsnippet %e\n	%% @end\n# specification comment\nsnippet %s\n	%% @spec ${1}\n# private function marker\nsnippet %p\n	%% @private\n# OTP application\nsnippet application\n	-module(${1:`Filename('', 'my')`}).\n\n	-behaviour(application).\n\n	-export([start/2, stop/1]).\n\n	start(_Type, _StartArgs) ->\n	    case ${2:root_supervisor}:start_link() of\n	        {ok, Pid} ->\n	            {ok, Pid};\n	        Other ->\n		          {error, Other}\n	    end.\n\n	stop(_State) ->\n	    ok.	\n# OTP supervisor\nsnippet supervisor\n	-module(${1:`Filename('', 'my')`}).\n\n	-behaviour(supervisor).\n\n	%% API\n	-export([start_link/0]).\n\n	%% Supervisor callbacks\n	-export([init/1]).\n\n	-ace.define(SERVER, ?MODULE).\n\n	start_link() ->\n	    supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\n	init([]) ->\n	    Server = {${2:my_server}, {$2, start_link, []},\n	      permanent, 2000, worker, [$2]},\n	    Children = [Server],\n	    RestartStrategy = {one_for_one, 0, 1},\n	    {ok, {RestartStrategy, Children}}.\n# OTP gen_server\nsnippet gen_server\n	-module(${1:`Filename('', 'my')`}).\n\n	-behaviour(gen_server).\n\n	%% API\n	-export([\n	         start_link/0\n	        ]).\n\n	%% gen_server callbacks\n	-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n	         terminate/2, code_change/3]).\n\n	-ace.define(SERVER, ?MODULE).\n\n	-record(state, {}).\n\n	%%%===================================================================\n	%%% API\n	%%%===================================================================\n\n	start_link() ->\n	    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\n	%%%===================================================================\n	%%% gen_server callbacks\n	%%%===================================================================\n\n	init([]) ->\n	    {ok, #state{}}.\n\n	handle_call(_Request, _From, State) ->\n	    Reply = ok,\n	    {reply, Reply, State}.\n\n	handle_cast(_Msg, State) ->\n	    {noreply, State}.\n\n	handle_info(_Info, State) ->\n	    {noreply, State}.\n\n	terminate(_Reason, _State) ->\n	    ok.\n\n	code_change(_OldVsn, State, _Extra) ->\n	    {ok, State}.\n\n	%%%===================================================================\n	%%% Internal functions\n	%%%===================================================================\n\n",t.scope="erlang"})
\ No newline at end of file
diff --git a/js/ace/snippets/forth.js b/js/ace/snippets/forth.js
new file mode 100644
index 0000000..3aa9db0
--- /dev/null
+++ b/js/ace/snippets/forth.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/forth",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="forth"})
\ No newline at end of file
diff --git a/js/ace/snippets/ftl.js b/js/ace/snippets/ftl.js
new file mode 100644
index 0000000..3e57d17
--- /dev/null
+++ b/js/ace/snippets/ftl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ftl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ftl"})
\ No newline at end of file
diff --git a/js/ace/snippets/gcode.js b/js/ace/snippets/gcode.js
new file mode 100644
index 0000000..b0108df
--- /dev/null
+++ b/js/ace/snippets/gcode.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gcode"})
\ No newline at end of file
diff --git a/js/ace/snippets/gherkin.js b/js/ace/snippets/gherkin.js
new file mode 100644
index 0000000..44a8869
--- /dev/null
+++ b/js/ace/snippets/gherkin.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gherkin",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gherkin"})
\ No newline at end of file
diff --git a/js/ace/snippets/gitignore.js b/js/ace/snippets/gitignore.js
new file mode 100644
index 0000000..87713df
--- /dev/null
+++ b/js/ace/snippets/gitignore.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gitignore",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gitignore"})
\ No newline at end of file
diff --git a/js/ace/snippets/glsl.js b/js/ace/snippets/glsl.js
new file mode 100644
index 0000000..042ed75
--- /dev/null
+++ b/js/ace/snippets/glsl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/glsl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="glsl"})
\ No newline at end of file
diff --git a/js/ace/snippets/golang.js b/js/ace/snippets/golang.js
new file mode 100644
index 0000000..f1f0309
--- /dev/null
+++ b/js/ace/snippets/golang.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/golang",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="golang"})
\ No newline at end of file
diff --git a/js/ace/snippets/groovy.js b/js/ace/snippets/groovy.js
new file mode 100644
index 0000000..a293cc4
--- /dev/null
+++ b/js/ace/snippets/groovy.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/groovy",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="groovy"})
\ No newline at end of file
diff --git a/js/ace/snippets/haml.js b/js/ace/snippets/haml.js
new file mode 100644
index 0000000..95d637a
--- /dev/null
+++ b/js/ace/snippets/haml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet t\n	%table\n		%tr\n			%th\n				${1:headers}\n		%tr\n			%td\n				${2:headers}\nsnippet ul\n	%ul\n		%li\n			${1:item}\n		%li\nsnippet =rp\n	= render :partial => '${1:partial}'\nsnippet =rpl\n	= render :partial => '${1:partial}', :locals => {}\nsnippet =rpc\n	= render :partial => '${1:partial}', :collection => @$1\n\n",t.scope="haml"})
\ No newline at end of file
diff --git a/js/ace/snippets/handlebars.js b/js/ace/snippets/handlebars.js
new file mode 100644
index 0000000..70dc88e
--- /dev/null
+++ b/js/ace/snippets/handlebars.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/handlebars",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="handlebars"})
\ No newline at end of file
diff --git a/js/ace/snippets/haskell.js b/js/ace/snippets/haskell.js
new file mode 100644
index 0000000..69c2ef8
--- /dev/null
+++ b/js/ace/snippets/haskell.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haskell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lang\n	{-# LANGUAGE ${1:OverloadedStrings} #-}\nsnippet info\n	-- |\n	-- Module      :  ${1:Module.Namespace}\n	-- Copyright   :  ${2:Author} ${3:2011-2012}\n	-- License     :  ${4:BSD3}\n	--\n	-- Maintainer  :  ${5:email@something.com}\n	-- Stability   :  ${6:experimental}\n	-- Portability :  ${7:unknown}\n	--\n	-- ${8:Description}\n	--\nsnippet import\n	import           ${1:Data.Text}\nsnippet import2\n	import           ${1:Data.Text} (${2:head})\nsnippet importq\n	import qualified ${1:Data.Text} as ${2:T}\nsnippet inst\n	instance ${1:Monoid} ${2:Type} where\n		${3}\nsnippet type\n	type ${1:Type} = ${2:Type}\nsnippet data\n	data ${1:Type} = ${2:$1} ${3:Int}\nsnippet newtype\n	newtype ${1:Type} = ${2:$1} ${3:Int}\nsnippet class\n	class ${1:Class} a where\n		${2}\nsnippet module\n	module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n	)	where\n	`expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n  print \\\"hello world\\\"\" : \"\"`\n\nsnippet const\n	${1:name} :: ${2:a}\n	$1 = ${3:undefined}\nsnippet fn\n	${1:fn} :: ${2:a} -> ${3:a}\n	$1 ${4} = ${5:undefined}\nsnippet fn2\n	${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n	$1 ${5} = ${6:undefined}\nsnippet ap\n	${1:map} ${2:fn} ${3:list}\nsnippet do\n	do\n		\nsnippet \u03bb\n	\\${1:x} -> ${2}\nsnippet \\\n	\\${1:x} -> ${2}\nsnippet <-\n	${1:a} <- ${2:m a}\nsnippet \u2190\n	${1:a} <- ${2:m a}\nsnippet ->\n	${1:m a} -> ${2:a}\nsnippet \u2192\n	${1:m a} -> ${2:a}\nsnippet tup\n	(${1:a}, ${2:b})\nsnippet tup2\n	(${1:a}, ${2:b}, ${3:c})\nsnippet tup3\n	(${1:a}, ${2:b}, ${3:c}, ${4:d})\nsnippet rec\n	${1:Record} { ${2:recFieldA} = ${3:undefined}\n				, ${4:recFieldB} = ${5:undefined}\n				}\nsnippet case\n	case ${1:something} of\n		${2} -> ${3}\nsnippet let\n	let ${1} = ${2}\n	in ${3}\nsnippet where\n	where\n		${1:fn} = ${2:undefined}\n",t.scope="haskell"})
\ No newline at end of file
diff --git a/js/ace/snippets/haxe.js b/js/ace/snippets/haxe.js
new file mode 100644
index 0000000..d24a982
--- /dev/null
+++ b/js/ace/snippets/haxe.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haxe",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="haxe"})
\ No newline at end of file
diff --git a/js/ace/snippets/html.js b/js/ace/snippets/html.js
new file mode 100644
index 0000000..a220d3d
--- /dev/null
+++ b/js/ace/snippets/html.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/html",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Some useful Unicode entities\n# Non-Breaking Space\nsnippet nbs\n	&nbsp;\n# \u2190\nsnippet left\n	&#x2190;\n# \u2192\nsnippet right\n	&#x2192;\n# \u2191\nsnippet up\n	&#x2191;\n# \u2193\nsnippet down\n	&#x2193;\n# \u21a9\nsnippet return\n	&#x21A9;\n# \u21e4\nsnippet backtab\n	&#x21E4;\n# \u21e5\nsnippet tab\n	&#x21E5;\n# \u21e7\nsnippet shift\n	&#x21E7;\n# \u2303\nsnippet ctrl\n	&#x2303;\n# \u2305\nsnippet enter\n	&#x2305;\n# \u2318\nsnippet cmd\n	&#x2318;\n# \u2325\nsnippet option\n	&#x2325;\n# \u2326\nsnippet delete\n	&#x2326;\n# \u232b\nsnippet backspace\n	&#x232B;\n# \u238b\nsnippet esc\n	&#x238B;\n# Generic Doctype\nsnippet doctype HTML 4.01 Strict\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n	"http://www.w3.org/TR/html4/strict.dtd">\nsnippet doctype HTML 4.01 Transitional\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n	"http://www.w3.org/TR/html4/loose.dtd">\nsnippet doctype HTML 5\n	<!DOCTYPE HTML>\nsnippet doctype XHTML 1.0 Frameset\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\nsnippet doctype XHTML 1.0 Strict\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\nsnippet doctype XHTML 1.0 Transitional\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\nsnippet doctype XHTML 1.1\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\n	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n# HTML Doctype 4.01 Strict\nsnippet docts\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n	"http://www.w3.org/TR/html4/strict.dtd">\n# HTML Doctype 4.01 Transitional\nsnippet doct\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n	"http://www.w3.org/TR/html4/loose.dtd">\n# HTML Doctype 5\nsnippet doct5\n	<!DOCTYPE HTML>\n# XHTML Doctype 1.0 Frameset\nsnippet docxf\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\n# XHTML Doctype 1.0 Strict\nsnippet docxs\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n# XHTML Doctype 1.0 Transitional\nsnippet docxt\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n# XHTML Doctype 1.1\nsnippet docx\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\n	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n# Attributes\nsnippet attr\n	${1:attribute}="${2:property}"\nsnippet attr+\n	${1:attribute}="${2:property}" attr+${3}\nsnippet .\n	class="${1}"${2}\nsnippet #\n	id="${1}"${2}\nsnippet alt\n	alt="${1}"${2}\nsnippet charset\n	charset="${1:utf-8}"${2}\nsnippet data\n	data-${1}="${2:$1}"${3}\nsnippet for\n	for="${1}"${2}\nsnippet height\n	height="${1}"${2}\nsnippet href\n	href="${1:#}"${2}\nsnippet lang\n	lang="${1:en}"${2}\nsnippet media\n	media="${1}"${2}\nsnippet name\n	name="${1}"${2}\nsnippet rel\n	rel="${1}"${2}\nsnippet scope\n	scope="${1:row}"${2}\nsnippet src\n	src="${1}"${2}\nsnippet title=\n	title="${1}"${2}\nsnippet type\n	type="${1}"${2}\nsnippet value\n	value="${1}"${2}\nsnippet width\n	width="${1}"${2}\n# Elements\nsnippet a\n	<a href="${1:#}">${2:$1}</a>\nsnippet a.\n	<a class="${1}" href="${2:#}">${3:$1}</a>\nsnippet a#\n	<a id="${1}" href="${2:#}">${3:$1}</a>\nsnippet a:ext\n	<a href="http://${1:example.com}">${2:$1}</a>\nsnippet a:mail\n	<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a>\nsnippet abbr\n	<abbr title="${1}">${2}</abbr>\nsnippet address\n	<address>\n		${1}\n	</address>\nsnippet area\n	<area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\nsnippet area+\n	<area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\n	area+${5}\nsnippet area:c\n	<area shape="circle" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:d\n	<area shape="default" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:p\n	<area shape="poly" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:r\n	<area shape="rect" coords="${1}" href="${2}" alt="${3}" />\nsnippet article\n	<article>\n		${1}\n	</article>\nsnippet article.\n	<article class="${1}">\n		${2}\n	</article>\nsnippet article#\n	<article id="${1}">\n		${2}\n	</article>\nsnippet aside\n	<aside>\n		${1}\n	</aside>\nsnippet aside.\n	<aside class="${1}">\n		${2}\n	</aside>\nsnippet aside#\n	<aside id="${1}">\n		${2}\n	</aside>\nsnippet audio\n	<audio src="${1}>${2}</audio>\nsnippet b\n	<b>${1}</b>\nsnippet base\n	<base href="${1}" target="${2}" />\nsnippet bdi\n	<bdi>${1}</bdo>\nsnippet bdo\n	<bdo dir="${1}">${2}</bdo>\nsnippet bdo:l\n	<bdo dir="ltr">${1}</bdo>\nsnippet bdo:r\n	<bdo dir="rtl">${1}</bdo>\nsnippet blockquote\n	<blockquote>\n		${1}\n	</blockquote>\nsnippet body\n	<body>\n		${1}\n	</body>\nsnippet br\n	<br />${1}\nsnippet button\n	<button type="${1:submit}">${2}</button>\nsnippet button.\n	<button class="${1:button}" type="${2:submit}">${3}</button>\nsnippet button#\n	<button id="${1}" type="${2:submit}">${3}</button>\nsnippet button:s\n	<button type="submit">${1}</button>\nsnippet button:r\n	<button type="reset">${1}</button>\nsnippet canvas\n	<canvas>\n		${1}\n	</canvas>\nsnippet caption\n	<caption>${1}</caption>\nsnippet cite\n	<cite>${1}</cite>\nsnippet code\n	<code>${1}</code>\nsnippet col\n	<col />${1}\nsnippet col+\n	<col />\n	col+${1}\nsnippet colgroup\n	<colgroup>\n		${1}\n	</colgroup>\nsnippet colgroup+\n	<colgroup>\n		<col />\n		col+${1}\n	</colgroup>\nsnippet command\n	<command type="command" label="${1}" icon="${2}" />\nsnippet command:c\n	<command type="checkbox" label="${1}" icon="${2}" />\nsnippet command:r\n	<command type="radio" radiogroup="${1}" label="${2}" icon="${3}" />\nsnippet datagrid\n	<datagrid>\n		${1}\n	</datagrid>\nsnippet datalist\n	<datalist>\n		${1}\n	</datalist>\nsnippet datatemplate\n	<datatemplate>\n		${1}\n	</datatemplate>\nsnippet dd\n	<dd>${1}</dd>\nsnippet dd.\n	<dd class="${1}">${2}</dd>\nsnippet dd#\n	<dd id="${1}">${2}</dd>\nsnippet del\n	<del>${1}</del>\nsnippet details\n	<details>${1}</details>\nsnippet dfn\n	<dfn>${1}</dfn>\nsnippet dialog\n	<dialog>\n		${1}\n	</dialog>\nsnippet div\n	<div>\n		${1}\n	</div>\nsnippet div.\n	<div class="${1}">\n		${2}\n	</div>\nsnippet div#\n	<div id="${1}">\n		${2}\n	</div>\nsnippet dl\n	<dl>\n		${1}\n	</dl>\nsnippet dl.\n	<dl class="${1}">\n		${2}\n	</dl>\nsnippet dl#\n	<dl id="${1}">\n		${2}\n	</dl>\nsnippet dl+\n	<dl>\n		<dt>${1}</dt>\n		<dd>${2}</dd>\n		dt+${3}\n	</dl>\nsnippet dt\n	<dt>${1}</dt>\nsnippet dt.\n	<dt class="${1}">${2}</dt>\nsnippet dt#\n	<dt id="${1}">${2}</dt>\nsnippet dt+\n	<dt>${1}</dt>\n	<dd>${2}</dd>\n	dt+${3}\nsnippet em\n	<em>${1}</em>\nsnippet embed\n	<embed src=${1} type="${2} />\nsnippet fieldset\n	<fieldset>\n		${1}\n	</fieldset>\nsnippet fieldset.\n	<fieldset class="${1}">\n		${2}\n	</fieldset>\nsnippet fieldset#\n	<fieldset id="${1}">\n		${2}\n	</fieldset>\nsnippet fieldset+\n	<fieldset>\n		<legend><span>${1}</span></legend>\n		${2}\n	</fieldset>\n	fieldset+${3}\nsnippet figcaption\n	<figcaption>${1}</figcaption>\nsnippet figure\n	<figure>${1}</figure>\nsnippet footer\n	<footer>\n		${1}\n	</footer>\nsnippet footer.\n	<footer class="${1}">\n		${2}\n	</footer>\nsnippet footer#\n	<footer id="${1}">\n		${2}\n	</footer>\nsnippet form\n	<form action="${1}" method="${2:get}" accept-charset="utf-8">\n		${3}\n	</form>\nsnippet form.\n	<form class="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n		${4}\n	</form>\nsnippet form#\n	<form id="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n		${4}\n	</form>\nsnippet h1\n	<h1>${1}</h1>\nsnippet h1.\n	<h1 class="${1}">${2}</h1>\nsnippet h1#\n	<h1 id="${1}">${2}</h1>\nsnippet h2\n	<h2>${1}</h2>\nsnippet h2.\n	<h2 class="${1}">${2}</h2>\nsnippet h2#\n	<h2 id="${1}">${2}</h2>\nsnippet h3\n	<h3>${1}</h3>\nsnippet h3.\n	<h3 class="${1}">${2}</h3>\nsnippet h3#\n	<h3 id="${1}">${2}</h3>\nsnippet h4\n	<h4>${1}</h4>\nsnippet h4.\n	<h4 class="${1}">${2}</h4>\nsnippet h4#\n	<h4 id="${1}">${2}</h4>\nsnippet h5\n	<h5>${1}</h5>\nsnippet h5.\n	<h5 class="${1}">${2}</h5>\nsnippet h5#\n	<h5 id="${1}">${2}</h5>\nsnippet h6\n	<h6>${1}</h6>\nsnippet h6.\n	<h6 class="${1}">${2}</h6>\nsnippet h6#\n	<h6 id="${1}">${2}</h6>\nsnippet head\n	<head>\n		<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\n		<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\n		${2}\n	</head>\nsnippet header\n	<header>\n		${1}\n	</header>\nsnippet header.\n	<header class="${1}">\n		${2}\n	</header>\nsnippet header#\n	<header id="${1}">\n		${2}\n	</header>\nsnippet hgroup\n	<hgroup>\n		${1}\n	</hgroup>\nsnippet hgroup.\n	<hgroup class="${1}>\n		${2}\n	</hgroup>\nsnippet hr\n	<hr />${1}\nsnippet html\n	<html>\n	${1}\n	</html>\nsnippet xhtml\n	<html xmlns="http://www.w3.org/1999/xhtml">\n	${1}\n	</html>\nsnippet html5\n	<!DOCTYPE html>\n	<html>\n		<head>\n			<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n			<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\n			${2:meta}\n		</head>\n		<body>\n			${3:body}\n		</body>\n	</html>\nsnippet i\n	<i>${1}</i>\nsnippet iframe\n	<iframe src="${1}" frameborder="0"></iframe>${2}\nsnippet iframe.\n	<iframe class="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet iframe#\n	<iframe id="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet img\n	<img src="${1}" alt="${2}" />${3}\nsnippet img.\n	<img class="${1}" src="${2}" alt="${3}" />${4}\nsnippet img#\n	<img id="${1}" src="${2}" alt="${3}" />${4}\nsnippet input\n	<input type="${1:text/submit/hidden/button/image}" name="${2}" id="${3:$2}" value="${4}" />${5}\nsnippet input.\n	<input class="${1}" type="${2:text/submit/hidden/button/image}" name="${3}" id="${4:$3}" value="${5}" />${6}\nsnippet input:text\n	<input type="text" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:submit\n	<input type="submit" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:hidden\n	<input type="hidden" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:button\n	<input type="button" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:image\n	<input type="image" name="${1}" id="${2:$1}" src="${3}" alt="${4}" />${5}\nsnippet input:checkbox\n	<input type="checkbox" name="${1}" id="${2:$1}" />${3}\nsnippet input:radio\n	<input type="radio" name="${1}" id="${2:$1}" />${3}\nsnippet input:color\n	<input type="color" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:date\n	<input type="date" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime\n	<input type="datetime" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime-local\n	<input type="datetime-local" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:email\n	<input type="email" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:file\n	<input type="file" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:month\n	<input type="month" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:number\n	<input type="number" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:password\n	<input type="password" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:range\n	<input type="range" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:reset\n	<input type="reset" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:search\n	<input type="search" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:time\n	<input type="time" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:url\n	<input type="url" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:week\n	<input type="week" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet ins\n	<ins>${1}</ins>\nsnippet kbd\n	<kbd>${1}</kbd>\nsnippet keygen\n	<keygen>${1}</keygen>\nsnippet label\n	<label for="${2:$1}">${1}</label>\nsnippet label:i\n	<label for="${2:$1}">${1}</label>\n	<input type="${3:text/submit/hidden/button}" name="${4:$2}" id="${5:$2}" value="${6}" />${7}\nsnippet label:s\n	<label for="${2:$1}">${1}</label>\n	<select name="${3:$2}" id="${4:$2}">\n		<option value="${5}">${6:$5}</option>\n	</select>\nsnippet legend\n	<legend>${1}</legend>\nsnippet legend+\n	<legend><span>${1}</span></legend>\nsnippet li\n	<li>${1}</li>\nsnippet li.\n	<li class="${1}">${2}</li>\nsnippet li+\n	<li>${1}</li>\n	li+${2}\nsnippet lia\n	<li><a href="${2:#}">${1}</a></li>\nsnippet lia+\n	<li><a href="${2:#}">${1}</a></li>\n	lia+${3}\nsnippet link\n	<link rel="${1}" href="${2}" title="${3}" type="${4}" />${5}\nsnippet link:atom\n	<link rel="alternate" href="${1:atom.xml}" title="Atom" type="application/atom+xml" />${2}\nsnippet link:css\n	<link rel="stylesheet" href="${2:style.css}" type="text/css" media="${3:all}" />${4}\nsnippet link:favicon\n	<link rel="shortcut icon" href="${1:favicon.ico}" type="image/x-icon" />${2}\nsnippet link:rss\n	<link rel="alternate" href="${1:rss.xml}" title="RSS" type="application/atom+xml" />${2}\nsnippet link:touch\n	<link rel="apple-touch-icon" href="${1:favicon.png}" />${2}\nsnippet map\n	<map name="${1}">\n		${2}\n	</map>\nsnippet map.\n	<map class="${1}" name="${2}">\n		${3}\n	</map>\nsnippet map#\n	<map name="${1}" id="${2:$1}>\n		${3}\n	</map>\nsnippet map+\n	<map name="${1}">\n		<area shape="${2}" coords="${3}" href="${4}" alt="${5}" />${6}\n	</map>${7}\nsnippet mark\n	<mark>${1}</mark>\nsnippet menu\n	<menu>\n		${1}\n	</menu>\nsnippet menu:c\n	<menu type="context">\n		${1}\n	</menu>\nsnippet menu:t\n	<menu type="toolbar">\n		${1}\n	</menu>\nsnippet meta\n	<meta http-equiv="${1}" content="${2}" />${3}\nsnippet meta:compat\n	<meta http-equiv="X-UA-Compatible" content="IE=${1:7,8,edge}" />${3}\nsnippet meta:refresh\n	<meta http-equiv="refresh" content="text/html;charset=UTF-8" />${3}\nsnippet meta:utf\n	<meta http-equiv="content-type" content="text/html;charset=UTF-8" />${3}\nsnippet meter\n	<meter>${1}</meter>\nsnippet nav\n	<nav>\n		${1}\n	</nav>\nsnippet nav.\n	<nav class="${1}">\n		${2}\n	</nav>\nsnippet nav#\n	<nav id="${1}">\n		${2}\n	</nav>\nsnippet noscript\n	<noscript>\n		${1}\n	</noscript>\nsnippet object\n	<object data="${1}" type="${2}">\n		${3}\n	</object>${4}\n# Embed QT Movie\nsnippet movie\n	<object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"\n	 codebase="http://www.apple.com/qtactivex/qtplugin.cab">\n		<param name="src" value="$1" />\n		<param name="controller" value="$4" />\n		<param name="autoplay" value="$5" />\n		<embed src="${1:movie.mov}"\n			width="${2:320}" height="${3:240}"\n			controller="${4:true}" autoplay="${5:true}"\n			scale="tofit" cache="true"\n			pluginspage="http://www.apple.com/quicktime/download/" />\n	</object>${6}\nsnippet ol\n	<ol>\n		${1}\n	</ol>\nsnippet ol.\n	<ol class="${1}>\n		${2}\n	</ol>\nsnippet ol#\n	<ol id="${1}>\n		${2}\n	</ol>\nsnippet ol+\n	<ol>\n		<li>${1}</li>\n		li+${2}\n	</ol>\nsnippet opt\n	<option value="${1}">${2:$1}</option>\nsnippet opt+\n	<option value="${1}">${2:$1}</option>\n	opt+${3}\nsnippet optt\n	<option>${1}</option>\nsnippet optgroup\n	<optgroup>\n		<option value="${1}">${2:$1}</option>\n		opt+${3}\n	</optgroup>\nsnippet output\n	<output>${1}</output>\nsnippet p\n	<p>${1}</p>\nsnippet param\n	<param name="${1}" value="${2}" />${3}\nsnippet pre\n	<pre>\n		${1}\n	</pre>\nsnippet progress\n	<progress>${1}</progress>\nsnippet q\n	<q>${1}</q>\nsnippet rp\n	<rp>${1}</rp>\nsnippet rt\n	<rt>${1}</rt>\nsnippet ruby\n	<ruby>\n		<rp><rt>${1}</rt></rp>\n	</ruby>\nsnippet s\n	<s>${1}</s>\nsnippet samp\n	<samp>\n		${1}\n	</samp>\nsnippet script\n	<script type="text/javascript" charset="utf-8">\n		${1}\n	<\/script>\nsnippet scriptsrc\n	<script src="${1}.js" type="text/javascript" charset="utf-8"><\/script>\nsnippet section\n	<section>\n		${1}\n	</section>\nsnippet section.\n	<section class="${1}">\n		${2}\n	</section>\nsnippet section#\n	<section id="${1}">\n		${2}\n	</section>\nsnippet select\n	<select name="${1}" id="${2:$1}">\n		${3}\n	</select>\nsnippet select.\n	<select name="${1}" id="${2:$1}" class="${3}>\n		${4}\n	</select>\nsnippet select+\n	<select name="${1}" id="${2:$1}">\n		<option value="${3}">${4:$3}</option>\n		opt+${5}\n	</select>\nsnippet small\n	<small>${1}</small>\nsnippet source\n	<source src="${1}" type="${2}" media="${3}" />\nsnippet span\n	<span>${1}</span>\nsnippet strong\n	<strong>${1}</strong>\nsnippet style\n	<style type="text/css" media="${1:all}">\n		${2}\n	</style>\nsnippet sub\n	<sub>${1}</sub>\nsnippet summary\n	<summary>\n		${1}\n	</summary>\nsnippet sup\n	<sup>${1}</sup>\nsnippet table\n	<table border="${1:0}">\n		${2}\n	</table>\nsnippet table.\n	<table class="${1}" border="${2:0}">\n		${3}\n	</table>\nsnippet table#\n	<table id="${1}" border="${2:0}">\n		${3}\n	</table>\nsnippet tbody\n	<tbody>\n		${1}\n	</tbody>\nsnippet td\n	<td>${1}</td>\nsnippet td.\n	<td class="${1}">${2}</td>\nsnippet td#\n	<td id="${1}">${2}</td>\nsnippet td+\n	<td>${1}</td>\n	td+${2}\nsnippet textarea\n	<textarea name="${1}" id=${2:$1} rows="${3:8}" cols="${4:40}">${5}</textarea>${6}\nsnippet tfoot\n	<tfoot>\n		${1}\n	</tfoot>\nsnippet th\n	<th>${1}</th>\nsnippet th.\n	<th class="${1}">${2}</th>\nsnippet th#\n	<th id="${1}">${2}</th>\nsnippet th+\n	<th>${1}</th>\n	th+${2}\nsnippet thead\n	<thead>\n		${1}\n	</thead>\nsnippet time\n	<time datetime="${1}" pubdate="${2:$1}>${3:$1}</time>\nsnippet title\n	<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\nsnippet tr\n	<tr>\n		${1}\n	</tr>\nsnippet tr+\n	<tr>\n		<td>${1}</td>\n		td+${2}\n	</tr>\nsnippet track\n	<track src="${1}" srclang="${2}" label="${3}" default="${4:default}>${5}</track>${6}\nsnippet ul\n	<ul>\n		${1}\n	</ul>\nsnippet ul.\n	<ul class="${1}">\n		${2}\n	</ul>\nsnippet ul#\n	<ul id="${1}">\n		${2}\n	</ul>\nsnippet ul+\n	<ul>\n		<li>${1}</li>\n		li+${2}\n	</ul>\nsnippet var\n	<var>${1}</var>\nsnippet video\n	<video src="${1} height="${2}" width="${3}" preload="${5:none}" autoplay="${6:autoplay}>${7}</video>${8}\nsnippet wbr\n	<wbr />${1}\n',t.scope="html"})
\ No newline at end of file
diff --git a/js/ace/snippets/html_ruby.js b/js/ace/snippets/html_ruby.js
new file mode 100644
index 0000000..4ed2cd9
--- /dev/null
+++ b/js/ace/snippets/html_ruby.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/html_ruby",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="html_ruby"})
\ No newline at end of file
diff --git a/js/ace/snippets/ini.js b/js/ace/snippets/ini.js
new file mode 100644
index 0000000..f520b9b
--- /dev/null
+++ b/js/ace/snippets/ini.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ini",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ini"})
\ No newline at end of file
diff --git a/js/ace/snippets/io.js b/js/ace/snippets/io.js
new file mode 100644
index 0000000..20bff1a
--- /dev/null
+++ b/js/ace/snippets/io.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/io",["require","exports","module"],function(e,t,n){"use strict";t.snippets=[{content:"assertEquals(${1:expected}, ${2:expr})",name:"assertEquals",scope:"io",tabTrigger:"ae"},{content:"${1:${2:newValue} := ${3:Object} }clone do(\n	$0\n)",name:"clone do",scope:"io",tabTrigger:"cdo"},{content:'docSlot("${1:slotName}", "${2:documentation}")',name:"docSlot",scope:"io",tabTrigger:"ds"},{content:"(${1:header,}\n	${2:body}\n)$0",keyEquivalent:"@(",name:"Indented Bracketed Line",scope:"io",tabTrigger:"("},{content:"\n	$0\n",keyEquivalent:"\r",name:"Special: Return Inside Empty Parenthesis",scope:"io meta.empty-parenthesis.io, io meta.comma-parenthesis.io"},{content:"${1:methodName} := method(${2:args,}\n	$0\n)",name:"method",scope:"io",tabTrigger:"m"},{content:'newSlot("${1:slotName}", ${2:defaultValue}, "${3:docString}")$0',name:"newSlot",scope:"io",tabTrigger:"ns"},{content:"${1:name} := Object clone do(\n	$0\n)",name:"Object clone do",scope:"io",tabTrigger:"ocdo"},{content:"test${1:SomeFeature} := method(\n	$0\n)",name:"testMethod",scope:"io",tabTrigger:"ts"},{content:"${1:Something}Test := ${2:UnitTest} clone do(\n	$0\n)",name:"UnitTest",scope:"io",tabTrigger:"ut"}],t.scope="io"})
\ No newline at end of file
diff --git a/js/ace/snippets/jack.js b/js/ace/snippets/jack.js
new file mode 100644
index 0000000..99b0ebd
--- /dev/null
+++ b/js/ace/snippets/jack.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jack",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jack"})
\ No newline at end of file
diff --git a/js/ace/snippets/jade.js b/js/ace/snippets/jade.js
new file mode 100644
index 0000000..bbd1087
--- /dev/null
+++ b/js/ace/snippets/jade.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jade",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jade"})
\ No newline at end of file
diff --git a/js/ace/snippets/java.js b/js/ace/snippets/java.js
new file mode 100644
index 0000000..e00063e
--- /dev/null
+++ b/js/ace/snippets/java.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/java",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='## Access Modifiers\nsnippet po\n	protected\nsnippet pu\n	public\nsnippet pr\n	private\n##\n## Annotations\nsnippet before\n	@Before\n	static void ${1:intercept}(${2:args}) { ${3} }\nsnippet mm\n	@ManyToMany\n	${1}\nsnippet mo\n	@ManyToOne\n	${1}\nsnippet om\n	@OneToMany${1:(cascade=CascadeType.ALL)}\n	${2}\nsnippet oo\n	@OneToOne\n	${1}\n##\n## Basic Java packages and import\nsnippet im\n	import\nsnippet j.b\n	java.beans.\nsnippet j.i\n	java.io.\nsnippet j.m\n	java.math.\nsnippet j.n\n	java.net.\nsnippet j.u\n	java.util.\n##\n## Class\nsnippet cl\n	class ${1:`Filename("", "untitled")`} ${2}\nsnippet in\n	interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3}\nsnippet tc\n	public class ${1:`Filename()`} extends ${2:TestCase}\n##\n## Class Enhancements\nsnippet ext\n	extends \nsnippet imp\n	implements\n##\n## Comments\nsnippet /*\n##\n## Constants\nsnippet co\n	static public final ${1:String} ${2:var} = ${3};${4}\nsnippet cos\n	static public final String ${1:var} = "${2}";${3}\n##\n## Control Statements\nsnippet case\n	case ${1}:\n		${2}\nsnippet def\n	default:\n		${2}\nsnippet el\n	else\nsnippet elif\n	else if (${1}) ${2}\nsnippet if\n	if (${1}) ${2}\nsnippet sw\n	switch (${1}) {\n		${2}\n	}\n##\n## Create a Method\nsnippet m\n	${1:void} ${2:method}(${3}) ${4:throws }${5}\n##\n## Create a Variable\nsnippet v\n	${1:String} ${2:var}${3: = null}${4};${5}\n##\n## Enhancements to Methods, variables, classes, etc.\nsnippet ab\n	abstract\nsnippet fi\n	final\nsnippet st\n	static\nsnippet sy\n	synchronized\n##\n## Error Methods\nsnippet err\n	System.err.print("${1:Message}");\nsnippet errf\n	System.err.printf("${1:Message}", ${2:exception});\nsnippet errln\n	System.err.println("${1:Message}");\n##\n## Exception Handling\nsnippet as\n	assert ${1:test} : "${2:Failure message}";${3}\nsnippet ca\n	catch(${1:Exception} ${2:e}) ${3}\nsnippet thr\n	throw\nsnippet ths\n	throws\nsnippet try\n	try {\n		${3}\n	} catch(${1:Exception} ${2:e}) {\n	}\nsnippet tryf\n	try {\n		${3}\n	} catch(${1:Exception} ${2:e}) {\n	} finally {\n	}\n##\n## Find Methods\nsnippet findall\n	List<${1:listName}> ${2:items} = ${1}.findAll();${3}\nsnippet findbyid\n	${1:var} ${2:item} = ${1}.findById(${3});${4}\n##\n## Javadocs\nsnippet /**\nsnippet @au\n	@author `system("grep \\`id -un\\` /etc/passwd | cut -d \\":\\" -f5 | cut -d \\",\\" -f1")`\nsnippet @br\n	@brief ${1:Description}\nsnippet @fi\n	@file ${1:`Filename()`}.java\nsnippet @pa\n	@param ${1:param}\nsnippet @re\n	@return ${1:param}\n##\n## Logger Methods\nsnippet debug\n	Logger.debug(${1:param});${2}\nsnippet error\n	Logger.error(${1:param});${2}\nsnippet info\n	Logger.info(${1:param});${2}\nsnippet warn\n	Logger.warn(${1:param});${2}\n##\n## Loops\nsnippet enfor\n	for (${1} : ${2}) ${3}\nsnippet for\n	for (${1}; ${2}; ${3}) ${4}\nsnippet wh\n	while (${1}) ${2}\n##\n## Main method\nsnippet main\n	public static void main (String[] args) {\n		${1:/* code */}\n	}\n##\n## Print Methods\nsnippet print\n	System.out.print("${1:Message}");\nsnippet printf\n	System.out.printf("${1:Message}", ${2:args});\nsnippet println\n	System.out.println(${1});\n##\n## Render Methods\nsnippet ren\n	render(${1:param});${2}\nsnippet rena\n	renderArgs.put("${1}", ${2});${3}\nsnippet renb\n	renderBinary(${1:param});${2}\nsnippet renj\n	renderJSON(${1:param});${2}\nsnippet renx\n	renderXml(${1:param});${2}\n##\n## Setter and Getter Methods\nsnippet set\n	${1:public} void set${3:}(${2:String} ${4:}){\n		this.$4 = $4;\n	}\nsnippet get\n	${1:public} ${2:String} get${3:}(){\n		return this.${4:};\n	}\n##\n## Terminate Methods or Loops\nsnippet re\n	return\nsnippet br\n	break;\n##\n## Test Methods\nsnippet t\n	public void test${1:Name}() throws Exception {\n		${2}\n	}\nsnippet test\n	@Test\n	public void test${1:Name}() throws Exception {\n		${2}\n	}\n##\n## Utils\nsnippet Sc\n	Scanner\n##\n## Miscellaneous\nsnippet action\n	public static void ${1:index}(${2:args}) { ${3} }\nsnippet rnf\n	notFound(${1:param});${2}\nsnippet rnfin\n	notFoundIfNull(${1:param});${2}\nsnippet rr\n	redirect(${1:param});${2}\nsnippet ru\n	unauthorized(${1:param});${2}\nsnippet unless\n	(unless=${1:param});${2}\n',t.scope="java"})
\ No newline at end of file
diff --git a/js/ace/snippets/javascript.js b/js/ace/snippets/javascript.js
new file mode 100644
index 0000000..6e1fc6a
--- /dev/null
+++ b/js/ace/snippets/javascript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/javascript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Prototype\nsnippet proto\n	${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n		${4:// body...}\n	};\n# Function\nsnippet fun\n	function ${1?:function_name}(${2:argument}) {\n		${3:// body...}\n	}\n# Anonymous Function\nregex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\nsnippet f\n	function${M1?: ${1:functionName}}($2) {\n		${0:$TM_SELECTED_TEXT}\n	}${M2?;}${M3?,}${M4?)}\n# Immediate function\ntrigger \\(?f\\(\nendTrigger \\)?\nsnippet f(\n	(function(${1}) {\n		${0:${TM_SELECTED_TEXT:/* code */}}\n	}(${1}));\n# if\nsnippet if\n	if (${1:true}) {\n		${0}\n	}\n# if ... else\nsnippet ife\n	if (${1:true}) {\n		${2}\n	} else {\n		${0}\n	}\n# tertiary conditional\nsnippet ter\n	${1:/* condition */} ? ${2:a} : ${3:b}\n# switch\nsnippet switch\n	switch (${1:expression}) {\n		case \'${3:case}\':\n			${4:// code}\n			break;\n		${5}\n		default:\n			${2:// code}\n	}\n# case\nsnippet case\n	case \'${1:case}\':\n		${2:// code}\n		break;\n	${3}\n\n# while (...) {...}\nsnippet wh\n	while (${1:/* condition */}) {\n		${0:/* code */}\n	}\n# try\nsnippet try\n	try {\n		${0:/* code */}\n	} catch (e) {}\n# do...while\nsnippet do\n	do {\n		${2:/* code */}\n	} while (${1:/* condition */});\n# Object Method\nsnippet :f\nregex /([,{[])|^\\s*/:f/\n	${1:method_name}: function(${2:attribute}) {\n		${0}\n	}${3:,}\n# setTimeout function\nsnippet setTimeout\nregex /\\b/st|timeout|setTimeo?u?t?/\n	setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n# Get Elements\nsnippet gett\n	getElementsBy${1:TagName}(\'${2}\')${3}\n# Get Element\nsnippet get\n	getElementBy${1:Id}(\'${2}\')${3}\n# console.log (Firebug)\nsnippet cl\n	console.log(${1});\n# return\nsnippet ret\n	return ${1:result}\n# for (property in object ) { ... }\nsnippet fori\n	for (var ${1:prop} in ${2:Things}) {\n		${0:$2[$1]}\n	}\n# hasOwnProperty\nsnippet has\n	hasOwnProperty(${1})\n# docstring\nsnippet /**\nsnippet @par\nregex /^\\s*\\*\\s*/@(para?m?)?/\n	@param {${1:type}} ${2:name} ${3:description}\nsnippet @ret\n	@return {${1:type}} ${2:description}\n# JSON.parse\nsnippet jsonp\n	JSON.parse(${1:jstr});\n# JSON.stringify\nsnippet jsons\n	JSON.stringify(${1:object});\n# self-defining function\nsnippet sdf\n	var ${1:function_name} = function(${2:argument}) {\n		${3:// initial code ...}\n\n		$1 = function($2) {\n			${4:// main code}\n		};\n	}\n# singleton\nsnippet sing\n	function ${1:Singleton} (${2:argument}) {\n		var instance;\n		$1 = function $1($2) {\n			return instance;\n		};\n		$1.prototype = this;\n		instance = new $1();\n		instance.constructor = $1;\n\n		${3:// code ...}\n\n		return instance;\n	}\n# class\nsnippet class\nregex /^\\s*/clas{0,2}/\n	var ${1:class} = function(${20}) {\n		$40$0\n	};\n	\n	(function() {\n		${60:this.prop = ""}\n	}).call(${1:class}.prototype);\n	\n	exports.${1:class} = ${1:class};\n# \nsnippet for-\n	for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n		${0:${2:Things}[${1:i}];}\n	}\n# for (...) {...}\nsnippet for\n	for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n		${3:$2[$1]}$0\n	}\n# for (...) {...} (Improved Native For-Loop)\nsnippet forr\n	for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n		${3:$2[$1]}$0\n	}\n\n\n#modules\nsnippet def\n	ace.define(function(require, exports, module) {\n	"use strict";\n	var ${1/.*\\///} = require("${1}");\n	\n	$TM_SELECTED_TEXT\n	});\nsnippet req\nguard ^\\s*\n	var ${1/.*\\///} = require("${1}");\n	$0\nsnippet requ\nguard ^\\s*\n	var ${1/.*\\/(.)/\\u$1/} = require("${1}").${1/.*\\/(.)/\\u$1/};\n	$0\n',t.scope="javascript"})
\ No newline at end of file
diff --git a/js/ace/snippets/json.js b/js/ace/snippets/json.js
new file mode 100644
index 0000000..5e0e0ea
--- /dev/null
+++ b/js/ace/snippets/json.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/json",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="json"})
\ No newline at end of file
diff --git a/js/ace/snippets/jsoniq.js b/js/ace/snippets/jsoniq.js
new file mode 100644
index 0000000..7ca20f9
--- /dev/null
+++ b/js/ace/snippets/jsoniq.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsoniq",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n	for $${1:item} in ${2:expr}\nsnippet return\n	return ${1:expr}\nsnippet import\n	import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n	some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n	every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n	if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n	switch(${1:"foo"})\n	case ${2:"foo"}\n	return ${3:true}\n	default return ${4:false}\nsnippet try\n	try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet tumbling\n	for tumbling window $${1:varname} in ${2:expr}\n	start at $${3:start} when ${4:expr}\n	end at $${5:end} when ${6:expr}\n	return ${7:expr}\nsnippet sliding\n	for sliding window $${1:varname} in ${2:expr}\n	start at $${3:start} when ${4:expr}\n	end at $${5:end} when ${6:expr}\n	return ${7:expr}\nsnippet let\n	let $${1:varname} := ${2:expr}\nsnippet group\n	group by $${1:varname} := ${2:expr}\nsnippet order\n	order by ${1:expr} ${2:descending}\nsnippet stable\n	stable order by ${1:expr}\nsnippet count\n	count $${1:varname}\nsnippet ordered\n	ordered { ${1:expr} }\nsnippet unordered\n	unordered { ${1:expr} }\nsnippet treat \n	treat as ${1:expr}\nsnippet castable\n	castable as ${1:atomicType}\nsnippet cast\n	cast as ${1:atomicType}\nsnippet typeswitch\n	typeswitch(${1:expr})\n	case ${2:type}  return ${3:expr}\n	default return ${4:expr}\nsnippet var\n	declare variable $${1:varname} := ${2:expr};\nsnippet fn\n	declare function ${1:ns}:${2:name}(){\n	${3:expr}\n	};\nsnippet module\n	module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="jsoniq"})
\ No newline at end of file
diff --git a/js/ace/snippets/jsp.js b/js/ace/snippets/jsp.js
new file mode 100644
index 0000000..fcbace7
--- /dev/null
+++ b/js/ace/snippets/jsp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet @page\n	<%@page contentType="text/html" pageEncoding="UTF-8"%>\nsnippet jstl\n	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>\n	<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>\nsnippet jstl:c\n	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>\nsnippet jstl:fn\n	<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>\nsnippet cpath\n	${pageContext.request.contextPath}\nsnippet cout\n	<c:out value="${1}" default="${2}" />\nsnippet cset\n	<c:set var="${1}" value="${2}" />\nsnippet cremove\n	<c:remove var="${1}" scope="${2:page}" />\nsnippet ccatch\n	<c:catch var="${1}" />\nsnippet cif\n	<c:if test="${${1}}">\n		${2}\n	</c:if>\nsnippet cchoose\n	<c:choose>\n		${1}\n	</c:choose>\nsnippet cwhen\n	<c:when test="${${1}}">\n		${2}\n	</c:when>\nsnippet cother\n	<c:otherwise>\n		${1}\n	</c:otherwise>\nsnippet cfore\n	<c:forEach items="${${1}}" var="${2}" varStatus="${3}">\n		${4:<c:out value="$2" />}\n	</c:forEach>\nsnippet cfort\n	<c:set var="${1}">${2:item1,item2,item3}</c:set>\n	<c:forTokens var="${3}" items="${$1}" delims="${4:,}">\n		${5:<c:out value="$3" />}\n	</c:forTokens>\nsnippet cparam\n	<c:param name="${1}" value="${2}" />\nsnippet cparam+\n	<c:param name="${1}" value="${2}" />\n	cparam+${3}\nsnippet cimport\n	<c:import url="${1}" />\nsnippet cimport+\n	<c:import url="${1}">\n		<c:param name="${2}" value="${3}" />\n		cparam+${4}\n	</c:import>\nsnippet curl\n	<c:url value="${1}" var="${2}" />\n	<a href="${$2}">${3}</a>\nsnippet curl+\n	<c:url value="${1}" var="${2}">\n		<c:param name="${4}" value="${5}" />\n		cparam+${6}\n	</c:url>\n	<a href="${$2}">${3}</a>\nsnippet credirect\n	<c:redirect url="${1}" />\nsnippet contains\n	${fn:contains(${1:string}, ${2:substr})}\nsnippet contains:i\n	${fn:containsIgnoreCase(${1:string}, ${2:substr})}\nsnippet endswith\n	${fn:endsWith(${1:string}, ${2:suffix})}\nsnippet escape\n	${fn:escapeXml(${1:string})}\nsnippet indexof\n	${fn:indexOf(${1:string}, ${2:substr})}\nsnippet join\n	${fn:join(${1:collection}, ${2:delims})}\nsnippet length\n	${fn:length(${1:collection_or_string})}\nsnippet replace\n	${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\nsnippet split\n	${fn:split(${1:string}, ${2:delims})}\nsnippet startswith\n	${fn:startsWith(${1:string}, ${2:prefix})}\nsnippet substr\n	${fn:substring(${1:string}, ${2:begin}, ${3:end})}\nsnippet substr:a\n	${fn:substringAfter(${1:string}, ${2:substr})}\nsnippet substr:b\n	${fn:substringBefore(${1:string}, ${2:substr})}\nsnippet lc\n	${fn:toLowerCase(${1:string})}\nsnippet uc\n	${fn:toUpperCase(${1:string})}\nsnippet trim\n	${fn:trim(${1:string})}\n',t.scope="jsp"})
\ No newline at end of file
diff --git a/js/ace/snippets/jsx.js b/js/ace/snippets/jsx.js
new file mode 100644
index 0000000..9ae1382
--- /dev/null
+++ b/js/ace/snippets/jsx.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsx",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jsx"})
\ No newline at end of file
diff --git a/js/ace/snippets/julia.js b/js/ace/snippets/julia.js
new file mode 100644
index 0000000..131783f
--- /dev/null
+++ b/js/ace/snippets/julia.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/julia",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="julia"})
\ No newline at end of file
diff --git a/js/ace/snippets/latex.js b/js/ace/snippets/latex.js
new file mode 100644
index 0000000..43f3fdb
--- /dev/null
+++ b/js/ace/snippets/latex.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/latex",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="latex"})
\ No newline at end of file
diff --git a/js/ace/snippets/less.js b/js/ace/snippets/less.js
new file mode 100644
index 0000000..4e2cafc
--- /dev/null
+++ b/js/ace/snippets/less.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/less",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="less"})
\ No newline at end of file
diff --git a/js/ace/snippets/liquid.js b/js/ace/snippets/liquid.js
new file mode 100644
index 0000000..a579963
--- /dev/null
+++ b/js/ace/snippets/liquid.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/liquid",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="liquid"})
\ No newline at end of file
diff --git a/js/ace/snippets/lisp.js b/js/ace/snippets/lisp.js
new file mode 100644
index 0000000..7c3fd30
--- /dev/null
+++ b/js/ace/snippets/lisp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lisp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lisp"})
\ No newline at end of file
diff --git a/js/ace/snippets/live_script.js b/js/ace/snippets/live_script.js
new file mode 100644
index 0000000..9bf6219
--- /dev/null
+++ b/js/ace/snippets/live_script.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/live_script",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""})
\ No newline at end of file
diff --git a/js/ace/snippets/livescript.js b/js/ace/snippets/livescript.js
new file mode 100644
index 0000000..7ca4056
--- /dev/null
+++ b/js/ace/snippets/livescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/livescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="livescript"})
\ No newline at end of file
diff --git a/js/ace/snippets/logiql.js b/js/ace/snippets/logiql.js
new file mode 100644
index 0000000..c4f0975
--- /dev/null
+++ b/js/ace/snippets/logiql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/logiql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="logiql"})
\ No newline at end of file
diff --git a/js/ace/snippets/lsl.js b/js/ace/snippets/lsl.js
new file mode 100644
index 0000000..b931573
--- /dev/null
+++ b/js/ace/snippets/lsl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lsl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet @\n	@${1:label};\nsnippet CAMERA_ACTIVE\n	CAMERA_ACTIVE, ${1:integer isActive}, $0\nsnippet CAMERA_BEHINDNESS_ANGLE\n	CAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\nsnippet CAMERA_BEHINDNESS_LAG\n	CAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\nsnippet CAMERA_DISTANCE\n	CAMERA_DISTANCE, ${1:float meters}, $0\nsnippet CAMERA_FOCUS\n	CAMERA_FOCUS, ${1:vector position}, $0\nsnippet CAMERA_FOCUS_LAG\n	CAMERA_FOCUS_LAG, ${1:float seconds}, $0\nsnippet CAMERA_FOCUS_LOCKED\n	CAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\nsnippet CAMERA_FOCUS_OFFSET\n	CAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\nsnippet CAMERA_FOCUS_THRESHOLD\n	CAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\nsnippet CAMERA_PITCH\n	CAMERA_PITCH, ${1:float degrees}, $0\nsnippet CAMERA_POSITION\n	CAMERA_POSITION, ${1:vector position}, $0\nsnippet CAMERA_POSITION_LAG\n	CAMERA_POSITION_LAG, ${1:float seconds}, $0\nsnippet CAMERA_POSITION_LOCKED\n	CAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\nsnippet CAMERA_POSITION_THRESHOLD\n	CAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\nsnippet CHARACTER_AVOIDANCE_MODE\n	CHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\nsnippet CHARACTER_DESIRED_SPEED\n	CHARACTER_DESIRED_SPEED, ${1:float speed}, $0\nsnippet CHARACTER_DESIRED_TURN_SPEED\n	CHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\nsnippet CHARACTER_LENGTH\n	CHARACTER_LENGTH, ${1:float length}, $0\nsnippet CHARACTER_MAX_TURN_RADIUS\n	CHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\nsnippet CHARACTER_ORIENTATION\n	CHARACTER_ORIENTATION, ${1:integer orientation}, $0\nsnippet CHARACTER_RADIUS\n	CHARACTER_RADIUS, ${1:float radius}, $0\nsnippet CHARACTER_STAY_WITHIN_PARCEL\n	CHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\nsnippet CHARACTER_TYPE\n	CHARACTER_TYPE, ${1:integer type}, $0\nsnippet HTTP_BODY_MAXLENGTH\n	HTTP_BODY_MAXLENGTH, ${1:integer length}, $0\nsnippet HTTP_CUSTOM_HEADER\n	HTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\nsnippet HTTP_METHOD\n	HTTP_METHOD, ${1:string method}, $0\nsnippet HTTP_MIMETYPE\n	HTTP_MIMETYPE, ${1:string mimeType}, $0\nsnippet HTTP_PRAGMA_NO_CACHE\n	HTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\nsnippet HTTP_VERBOSE_THROTTLE\n	HTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\nsnippet HTTP_VERIFY_CERT\n	HTTP_VERIFY_CERT, ${1:integer verify}, $0\nsnippet RC_DATA_FLAGS\n	RC_DATA_FLAGS, ${1:integer flags}, $0\nsnippet RC_DETECT_PHANTOM\n	RC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\nsnippet RC_MAX_HITS\n	RC_MAX_HITS, ${1:integer maxHits}, $0\nsnippet RC_REJECT_TYPES\n	RC_REJECT_TYPES, ${1:integer filterMask}, $0\nsnippet at_rot_target\n	at_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\n	{\n		$0\n	}\nsnippet at_target\n	at_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\n	{\n		$0\n	}\nsnippet attach\n	attach(${1:key id})\n	{\n		$0\n	}\nsnippet changed\n	changed(${1:integer change})\n	{\n		$0\n	}\nsnippet collision\n	collision(${1:integer index})\n	{\n		$0\n	}\nsnippet collision_end\n	collision_end(${1:integer index})\n	{\n		$0\n	}\nsnippet collision_start\n	collision_start(${1:integer index})\n	{\n		$0\n	}\nsnippet control\n	control(${1:key id}, ${2:integer level}, ${3:integer edge})\n	{\n		$0\n	}\nsnippet dataserver\n	dataserver(${1:key query_id}, ${2:string data})\n	{\n		$0\n	}\nsnippet do\n	do\n	{\n		$0\n	}\n	while (${1:condition});\nsnippet else\n	else\n	{\n		$0\n	}\nsnippet email\n	email(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\n	{\n		$0\n	}\nsnippet experience_permissions\n	experience_permissions(${1:key agent_id})\n	{\n		$0\n	}\nsnippet experience_permissions_denied\n	experience_permissions_denied(${1:key agent_id}, ${2:integer reason})\n	{\n		$0\n	}\nsnippet for\n	for (${1:start}; ${3:condition}; ${3:step})\n	{\n		$0\n	}\nsnippet http_request\n	http_request(${1:key request_id}, ${2:string method}, ${3:string body})\n	{\n		$0\n	}\nsnippet http_response\n	http_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\n	{\n		$0\n	}\nsnippet if\n	if (${1:condition})\n	{\n		$0\n	}\nsnippet jump\n	jump ${1:label};\nsnippet land_collision\n	land_collision(${1:vector pos})\n	{\n		$0\n	}\nsnippet land_collision_end\n	land_collision_end(${1:vector pos})\n	{\n		$0\n	}\nsnippet land_collision_start\n	land_collision_start(${1:vector pos})\n	{\n		$0\n	}\nsnippet link_message\n	link_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\n	{\n		$0\n	}\nsnippet listen\n	listen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\n	{\n		$0\n	}\nsnippet llAbs\n	llAbs(${1:integer val})\nsnippet llAcos\n	llAcos(${1:float val})\nsnippet llAddToLandBanList\n	llAddToLandBanList(${1:key agent}, ${2:float hours});\nsnippet llAddToLandPassList\n	llAddToLandPassList(${1:key agent}, ${2:float hours});\nsnippet llAdjustSoundVolume\n	llAdjustSoundVolume(${1:float volume});\nsnippet llAgentInExperience\n	llAgentInExperience(${1:key agent})\nsnippet llAllowInventoryDrop\n	llAllowInventoryDrop(${1:integer add});\nsnippet llAngleBetween\n	llAngleBetween(${1:rotation a}, ${2:rotation b})\nsnippet llApplyImpulse\n	llApplyImpulse(${1:vector force}, ${2:integer local});\nsnippet llApplyRotationalImpulse\n	llApplyRotationalImpulse(${1:vector force}, ${2:integer local});\nsnippet llAsin\n	llAsin(${1:float val})\nsnippet llAtan2\n	llAtan2(${1:float y}, ${2:float x})\nsnippet llAttachToAvatar\n	llAttachToAvatar(${1:integer attach_point});\nsnippet llAttachToAvatarTemp\n	llAttachToAvatarTemp(${1:integer attach_point});\nsnippet llAvatarOnLinkSitTarget\n	llAvatarOnLinkSitTarget(${1:integer link})\nsnippet llAvatarOnSitTarget\n	llAvatarOnSitTarget()\nsnippet llAxes2Rot\n	llAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\nsnippet llAxisAngle2Rot\n	llAxisAngle2Rot(${1:vector axis}, ${2:float angle})\nsnippet llBase64ToInteger\n	llBase64ToInteger(${1:string str})\nsnippet llBase64ToString\n	llBase64ToString(${1:string str})\nsnippet llBreakAllLinks\n	llBreakAllLinks();\nsnippet llBreakLink\n	llBreakLink(${1:integer link});\nsnippet llCastRay\n	llCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\nsnippet llCeil\n	llCeil(${1:float val})\nsnippet llClearCameraParams\n	llClearCameraParams();\nsnippet llClearLinkMedia\n	llClearLinkMedia(${1:integer link}, ${2:integer face});\nsnippet llClearPrimMedia\n	llClearPrimMedia(${1:integer face});\nsnippet llCloseRemoteDataChannel\n	llCloseRemoteDataChannel(${1:key channel});\nsnippet llCollisionFilter\n	llCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\nsnippet llCollisionSound\n	llCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\nsnippet llCos\n	llCos(${1:float theta})\nsnippet llCreateCharacter\n	llCreateCharacter(${1:list options});\nsnippet llCreateKeyValue\n	llCreateKeyValue(${1:string k})\nsnippet llCreateLink\n	llCreateLink(${1:key target}, ${2:integer parent});\nsnippet llCSV2List\n	llCSV2List(${1:string src})\nsnippet llDataSizeKeyValue\n	llDataSizeKeyValue()\nsnippet llDeleteCharacter\n	llDeleteCharacter();\nsnippet llDeleteKeyValue\n	llDeleteKeyValue(${1:string k})\nsnippet llDeleteSubList\n	llDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\nsnippet llDeleteSubString\n	llDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\nsnippet llDetachFromAvatar\n	llDetachFromAvatar();\nsnippet llDetectedGrab\n	llDetectedGrab(${1:integer number})\nsnippet llDetectedGroup\n	llDetectedGroup(${1:integer number})\nsnippet llDetectedKey\n	llDetectedKey(${1:integer number})\nsnippet llDetectedLinkNumber\n	llDetectedLinkNumber(${1:integer number})\nsnippet llDetectedName\n	llDetectedName(${1:integer number})\nsnippet llDetectedOwner\n	llDetectedOwner(${1:integer number})\nsnippet llDetectedPos\n	llDetectedPosl(${1:integer number})\nsnippet llDetectedRot\n	llDetectedRot(${1:integer number})\nsnippet llDetectedTouchBinormal\n	llDetectedTouchBinormal(${1:integer number})\nsnippet llDetectedTouchFace\n	llDetectedTouchFace(${1:integer number})\nsnippet llDetectedTouchNormal\n	llDetectedTouchNormal(${1:integer number})\nsnippet llDetectedTouchPos\n	llDetectedTouchPos(${1:integer number})\nsnippet llDetectedTouchST\n	llDetectedTouchST(${1:integer number})\nsnippet llDetectedTouchUV\n	llDetectedTouchUV(${1:integer number})\nsnippet llDetectedType\n	llDetectedType(${1:integer number})\nsnippet llDetectedVel\n	llDetectedVel(${1:integer number})\nsnippet llDialog\n	llDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\nsnippet llDie\n	llDie();\nsnippet llDumpList2String\n	llDumpList2String(${1:list src}, ${2:string separator})\nsnippet llEdgeOfWorld\n	llEdgeOfWorld(${1:vector pos}, ${2:vector dir})\nsnippet llEjectFromLand\n	llEjectFromLand(${1:key agent});\nsnippet llEmail\n	llEmail(${1:string address}, ${2:string subject}, ${3:string message});\nsnippet llEscapeURL\n	llEscapeURL(${1:string url})\nsnippet llEuler2Rot\n	llEuler2Rot(${1:vector v})\nsnippet llExecCharacterCmd\n	llExecCharacterCmd(${1:integer command}, ${2:list options});\nsnippet llEvade\n	llEvade(${1:key target}, ${2:list options});\nsnippet llFabs\n	llFabs(${1:float val})\nsnippet llFleeFrom\n	llFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\nsnippet llFloor\n	llFloor(${1:float val})\nsnippet llForceMouselook\n	llForceMouselook(${1:integer mouselook});\nsnippet llFrand\n	llFrand(${1:float mag})\nsnippet llGenerateKey\n	llGenerateKey()\nsnippet llGetAccel\n	llGetAccel()\nsnippet llGetAgentInfo\n	llGetAgentInfo(${1:key id})\nsnippet llGetAgentLanguage\n	llGetAgentLanguage(${1:key agent})\nsnippet llGetAgentList\n	llGetAgentList(${1:integer scope}, ${2:list options})\nsnippet llGetAgentSize\n	llGetAgentSize(${1:key agent})\nsnippet llGetAlpha\n	llGetAlpha(${1:integer face})\nsnippet llGetAndResetTime\n	llGetAndResetTime()\nsnippet llGetAnimation\n	llGetAnimation(${1:key id})\nsnippet llGetAnimationList\n	llGetAnimationList(${1:key agent})\nsnippet llGetAnimationOverride\n	llGetAnimationOverride(${1:string anim_state})\nsnippet llGetAttached\n	llGetAttached()\nsnippet llGetBoundingBox\n	llGetBoundingBox(${1:key object})\nsnippet llGetCameraPos\n	llGetCameraPos()\nsnippet llGetCameraRot\n	llGetCameraRot()\nsnippet llGetCenterOfMass\n	llGetCenterOfMass()\nsnippet llGetClosestNavPoint\n	llGetClosestNavPoint(${1:vector point}, ${2:list options})\nsnippet llGetColor\n	llGetColor(${1:integer face})\nsnippet llGetCreator\n	llGetCreator()\nsnippet llGetDate\n	llGetDate()\nsnippet llGetDisplayName\n	llGetDisplayName(${1:key id})\nsnippet llGetEnergy\n	llGetEnergy()\nsnippet llGetEnv\n	llGetEnv(${1:string name})\nsnippet llGetExperienceDetails\n	llGetExperienceDetails(${1:key experience_id})\nsnippet llGetExperienceErrorMessage\n	llGetExperienceErrorMessage(${1:integer error})\nsnippet llGetForce\n	llGetForce()\nsnippet llGetFreeMemory\n	llGetFreeMemory()\nsnippet llGetFreeURLs\n	llGetFreeURLs()\nsnippet llGetGeometricCenter\n	llGetGeometricCenter()\nsnippet llGetGMTclock\n	llGetGMTclock()\nsnippet llGetHTTPHeader\n	llGetHTTPHeader(${1:key request_id}, ${2:string header})\nsnippet llGetInventoryCreator\n	llGetInventoryCreator(${1:string item})\nsnippet llGetInventoryKey\n	llGetInventoryKey(${1:string name})\nsnippet llGetInventoryName\n	llGetInventoryName(${1:integer type}, ${2:integer number})\nsnippet llGetInventoryNumber\n	llGetInventoryNumber(${1:integer type})\nsnippet llGetInventoryPermMask\n	llGetInventoryPermMask(${1:string item}, ${2:integer mask})\nsnippet llGetInventoryType\n	llGetInventoryType(${1:string name})\nsnippet llGetKey\n	llGetKey()\nsnippet llGetLandOwnerAt\n	llGetLandOwnerAt(${1:vector pos})\nsnippet llGetLinkKey\n	llGetLinkKey(${1:integer link})\nsnippet llGetLinkMedia\n	llGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\nsnippet llGetLinkName\n	llGetLinkName(${1:integer link})\nsnippet llGetLinkNumber\n	llGetLinkNumber()\nsnippet llGetLinkNumberOfSides\n	llGetLinkNumberOfSides(${1:integer link})\nsnippet llGetLinkPrimitiveParams\n	llGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\nsnippet llGetListEntryType\n	llGetListEntryType(${1:list src}, ${2:integer index})\nsnippet llGetListLength\n	llGetListLength(${1:list src})\nsnippet llGetLocalPos\n	llGetLocalPos()\nsnippet llGetLocalRot\n	llGetLocalRot()\nsnippet llGetMass\n	llGetMass()\nsnippet llGetMassMKS\n	llGetMassMKS()\nsnippet llGetMaxScaleFactor\n	llGetMaxScaleFactor()\nsnippet llGetMemoryLimit\n	llGetMemoryLimit()\nsnippet llGetMinScaleFactor\n	llGetMinScaleFactor()\nsnippet llGetNextEmail\n	llGetNextEmail(${1:string address}, ${2:string subject});\nsnippet llGetNotecardLine\n	llGetNotecardLine(${1:string name}, ${2:integer line})\nsnippet llGetNumberOfNotecardLines\n	llGetNumberOfNotecardLines(${1:string name})\nsnippet llGetNumberOfPrims\n	llGetNumberOfPrims()\nsnippet llGetNumberOfSides\n	llGetNumberOfSides()\nsnippet llGetObjectDesc\n	llGetObjectDesc()\nsnippet llGetObjectDetails\n	llGetObjectDetails(${1:key id}, ${2:list params})\nsnippet llGetObjectMass\n	llGetObjectMass(${1:key id})\nsnippet llGetObjectName\n	llGetObjectName()\nsnippet llGetObjectPermMask\n	llGetObjectPermMask(${1:integer mask})\nsnippet llGetObjectPrimCount\n	llGetObjectPrimCount(${1:key prim})\nsnippet llGetOmega\n	llGetOmega()\nsnippet llGetOwner\n	llGetOwner()\nsnippet llGetOwnerKey\n	llGetOwnerKey(${1:key id})\nsnippet llGetParcelDetails\n	llGetParcelDetails(${1:vector pos}, ${2:list params})\nsnippet llGetParcelFlags\n	llGetParcelFlags(${1:vector pos})\nsnippet llGetParcelMaxPrims\n	llGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\nsnippet llGetParcelMusicURL\n	llGetParcelMusicURL()\nsnippet llGetParcelPrimCount\n	llGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\nsnippet llGetParcelPrimOwners\n	llGetParcelPrimOwners(${1:vector pos})\nsnippet llGetPermissions\n	llGetPermissions()\nsnippet llGetPermissionsKey\n	llGetPermissionsKey()\nsnippet llGetPhysicsMaterial\n	llGetPhysicsMaterial()\nsnippet llGetPos\n	llGetPos()\nsnippet llGetPrimitiveParams\n	llGetPrimitiveParams(${1:list params})\nsnippet llGetPrimMediaParams\n	llGetPrimMediaParams(${1:integer face}, ${2:list params})\nsnippet llGetRegionAgentCount\n	llGetRegionAgentCount()\nsnippet llGetRegionCorner\n	llGetRegionCorner()\nsnippet llGetRegionFlags\n	llGetRegionFlags()\nsnippet llGetRegionFPS\n	llGetRegionFPS()\nsnippet llGetRegionName\n	llGetRegionName()\nsnippet llGetRegionTimeDilation\n	llGetRegionTimeDilation()\nsnippet llGetRootPosition\n	llGetRootPosition()\nsnippet llGetRootRotation\n	llGetRootRotation()\nsnippet llGetRot\n	llGetRot()\nsnippet llGetScale\n	llGetScale()\nsnippet llGetScriptName\n	llGetScriptName()\nsnippet llGetScriptState\n	llGetScriptState(${1:string script})\nsnippet llGetSimStats\n	llGetSimStats(${1:integer stat_type})\nsnippet llGetSimulatorHostname\n	llGetSimulatorHostname()\nsnippet llGetSPMaxMemory\n	llGetSPMaxMemory()\nsnippet llGetStartParameter\n	llGetStartParameter()\nsnippet llGetStaticPath\n	llGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\nsnippet llGetStatus\n	llGetStatus(${1:integer status})\nsnippet llGetSubString\n	llGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\nsnippet llGetSunDirection\n	llGetSunDirection()\nsnippet llGetTexture\n	llGetTexture(${1:integer face})\nsnippet llGetTextureOffset\n	llGetTextureOffset(${1:integer face})\nsnippet llGetTextureRot\n	llGetTextureRot(${1:integer face})\nsnippet llGetTextureScale\n	llGetTextureScale(${1:integer face})\nsnippet llGetTime\n	llGetTime()\nsnippet llGetTimeOfDay\n	llGetTimeOfDay()\nsnippet llGetTimestamp\n	llGetTimestamp()\nsnippet llGetTorque\n	llGetTorque()\nsnippet llGetUnixTime\n	llGetUnixTime()\nsnippet llGetUsedMemory\n	llGetUsedMemory()\nsnippet llGetUsername\n	llGetUsername(${1:key id})\nsnippet llGetVel\n	llGetVel()\nsnippet llGetWallclock\n	llGetWallclock()\nsnippet llGiveInventory\n	llGiveInventory(${1:key destination}, ${2:string inventory});\nsnippet llGiveInventoryList\n	llGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\nsnippet llGiveMoney\n	llGiveMoney(${1:key destination}, ${2:integer amount})\nsnippet llGround\n	llGround(${1:vector offset})\nsnippet llGroundContour\n	llGroundContour(${1:vector offset})\nsnippet llGroundNormal\n	llGroundNormal(${1:vector offset})\nsnippet llGroundRepel\n	llGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\nsnippet llGroundSlope\n	llGroundSlope(${1:vector offset})\nsnippet llHTTPRequest\n	llHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\nsnippet llHTTPResponse\n	llHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\nsnippet llInsertString\n	llInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\nsnippet llInstantMessage\n	llInstantMessage(${1:key user}, ${2:string message});\nsnippet llIntegerToBase64\n	llIntegerToBase64(${1:integer number})\nsnippet llJson2List\n	llJson2List(${1:string json})\nsnippet llJsonGetValue\n	llJsonGetValue(${1:string json}, ${2:list specifiers})\nsnippet llJsonSetValue\n	llJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\nsnippet llJsonValueType\n	llJsonValueType(${1:string json}, ${2:list specifiers})\nsnippet llKey2Name\n	llKey2Name(${1:key id})\nsnippet llKeyCountKeyValue\n	llKeyCountKeyValue()\nsnippet llKeysKeyValue\n	llKeysKeyValue(${1:integer first}, ${2:integer count})\nsnippet llLinkParticleSystem\n	llLinkParticleSystem(${1:integer link}, ${2:list rules});\nsnippet llLinkSitTarget\n	llLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\nsnippet llList2CSV\n	llList2CSV(${1:list src})\nsnippet llList2Float\n	llList2Float(${1:list src}, ${2:integer index})\nsnippet llList2Integer\n	llList2Integer(${1:list src}, ${2:integer index})\nsnippet llList2Json\n	llList2Json(${1:string type}, ${2:list values})\nsnippet llList2Key\n	llList2Key(${1:list src}, ${2:integer index})\nsnippet llList2List\n	llList2List(${1:list src}, ${2:integer start}, ${3:integer end})\nsnippet llList2ListStrided\n	llList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\nsnippet llList2Rot\n	llList2Rot(${1:list src}, ${2:integer index})\nsnippet llList2String\n	llList2String(${1:list src}, ${2:integer index})\nsnippet llList2Vector\n	llList2Vector(${1:list src}, ${2:integer index})\nsnippet llListen\n	llListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\nsnippet llListenControl\n	llListenControl(${1:integer handle}, ${2:integer active});\nsnippet llListenRemove\n	llListenRemove(${1:integer handle});\nsnippet llListFindList\n	llListFindList(${1:list src}, ${2:list test})\nsnippet llListInsertList\n	llListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\nsnippet llListRandomize\n	llListRandomize(${1:list src}, ${2:integer stride})\nsnippet llListReplaceList\n	llListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\nsnippet llListSort\n	llListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\nsnippet llListStatistics\n	llListStatistics(${1:integer operation}, ${2:list src})\nsnippet llLoadURL\n	llLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\nsnippet llLog\n	llLog(${1:float val})\nsnippet llLog10\n	llLog10(${1:float val})\nsnippet llLookAt\n	llLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\nsnippet llLoopSound\n	llLoopSound(${1:string sound}, ${2:float volume});\nsnippet llLoopSoundMaster\n	llLoopSoundMaster(${1:string sound}, ${2:float volume});\nsnippet llLoopSoundSlave\n	llLoopSoundSlave(${1:string sound}, ${2:float volume});\nsnippet llManageEstateAccess\n	llManageEstateAccess(${1:integer action}, ${2:key agent})\nsnippet llMapDestination\n	llMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\nsnippet llMD5String\n	llMD5String(${1:string src}, ${2:integer nonce})\nsnippet llMessageLinked\n	llMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\nsnippet llMinEventDelay\n	llMinEventDelay(${1:float delay});\nsnippet llModifyLand\n	llModifyLand(${1:integer action}, ${2:integer brush});\nsnippet llModPow\n	llModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\nsnippet llMoveToTarget\n	llMoveToTarget(${1:vector target}, ${2:float tau});\nsnippet llNavigateTo\n	llNavigateTo(${1:vector pos}, ${2:list options});\nsnippet llOffsetTexture\n	llOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\nsnippet llOpenRemoteDataChannel\n	llOpenRemoteDataChannel();\nsnippet llOverMyLand\n	llOverMyLand(${1:key id})\nsnippet llOwnerSay\n	llOwnerSay(${1:string msg});\nsnippet llParcelMediaCommandList\n	llParcelMediaCommandList(${1:list commandList});\nsnippet llParcelMediaQuery\n	llParcelMediaQuery(${1:list query})\nsnippet llParseString2List\n	llParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\nsnippet llParseStringKeepNulls\n	llParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\nsnippet llParticleSystem\n	llParticleSystem(${1:list rules});\nsnippet llPassCollisions\n	llPassCollisions(${1:integer pass});\nsnippet llPassTouches\n	llPassTouches(${1:integer pass});\nsnippet llPatrolPoints\n	llPatrolPoints(${1:list patrolPoints}, ${2:list options});\nsnippet llPlaySound\n	llPlaySound(${1:string sound}, ${2:float volume});\nsnippet llPlaySoundSlave\n	llPlaySoundSlave(${1:string sound}, ${2:float volume});\nsnippet llPow\n	llPow(${1:float base}, ${2:float exponent})\nsnippet llPreloadSound\n	llPreloadSound(${1:string sound});\nsnippet llPursue\n	llPursue(${1:key target}, ${2:list options});\nsnippet llPushObject\n	llPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\nsnippet llReadKeyValue\n	llReadKeyValue(${1:string k})\nsnippet llRegionSay\n	llRegionSay(${1:integer channel}, ${2:string msg});\nsnippet llRegionSayTo\n	llRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\nsnippet llReleaseControls\n	llReleaseControls();\nsnippet llReleaseURL\n	llReleaseURL(${1:string url});\nsnippet llRemoteDataReply\n	llRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\nsnippet llRemoteLoadScriptPin\n	llRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\nsnippet llRemoveFromLandBanList\n	llRemoveFromLandBanList(${1:key agent});\nsnippet llRemoveFromLandPassList\n	llRemoveFromLandPassList(${1:key agent});\nsnippet llRemoveInventory\n	llRemoveInventory(${1:string item});\nsnippet llRemoveVehicleFlags\n	llRemoveVehicleFlags(${1:integer flags});\nsnippet llRequestAgentData\n	llRequestAgentData(${1:key id}, ${2:integer data})\nsnippet llRequestDisplayName\n	llRequestDisplayName(${1:key id})\nsnippet llRequestExperiencePermissions\n	llRequestExperiencePermissions(${1:key agent}, ${2:string name})\nsnippet llRequestInventoryData\n	llRequestInventoryData(${1:string name})\nsnippet llRequestPermissions\n	llRequestPermissions(${1:key agent}, ${2:integer permissions})\nsnippet llRequestSecureURL\n	llRequestSecureURL()\nsnippet llRequestSimulatorData\n	llRequestSimulatorData(${1:string region}, ${2:integer data})\nsnippet llRequestURL\n	llRequestURL()\nsnippet llRequestUsername\n	llRequestUsername(${1:key id})\nsnippet llResetAnimationOverride\n	llResetAnimationOverride(${1:string anim_state});\nsnippet llResetLandBanList\n	llResetLandBanList();\nsnippet llResetLandPassList\n	llResetLandPassList();\nsnippet llResetOtherScript\n	llResetOtherScript(${1:string name});\nsnippet llResetScript\n	llResetScript();\nsnippet llResetTime\n	llResetTime();\nsnippet llReturnObjectsByID\n	llReturnObjectsByID(${1:list objects})\nsnippet llReturnObjectsByOwner\n	llReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\nsnippet llRezAtRoot\n	llRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\nsnippet llRezObject\n	llRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\nsnippet llRot2Angle\n	llRot2Angle(${1:rotation rot})\nsnippet llRot2Axis\n	llRot2Axis(${1:rotation rot})\nsnippet llRot2Euler\n	llRot2Euler(${1:rotation quat})\nsnippet llRot2Fwd\n	llRot2Fwd(${1:rotation q})\nsnippet llRot2Left\n	llRot2Left(${1:rotation q})\nsnippet llRot2Up\n	llRot2Up(${1:rotation q})\nsnippet llRotateTexture\n	llRotateTexture(${1:float angle}, ${2:integer face});\nsnippet llRotBetween\n	llRotBetween(${1:vector start}, ${2:vector end})\nsnippet llRotLookAt\n	llRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\nsnippet llRotTarget\n	llRotTarget(${1:rotation rot}, ${2:float error})\nsnippet llRotTargetRemove\n	llRotTargetRemove(${1:integer handle});\nsnippet llRound\n	llRound(${1:float val})\nsnippet llSameGroup\n	llSameGroup(${1:key group})\nsnippet llSay\n	llSay(${1:integer channel}, ${2:string msg});\nsnippet llScaleByFactor\n	llScaleByFactor(${1:float scaling_factor})\nsnippet llScaleTexture\n	llScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\nsnippet llScriptDanger\n	llScriptDanger(${1:vector pos})\nsnippet llScriptProfiler\n	llScriptProfiler(${1:integer flags});\nsnippet llSendRemoteData\n	llSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\nsnippet llSensor\n	llSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\nsnippet llSensorRepeat\n	llSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\nsnippet llSetAlpha\n	llSetAlpha(${1:float alpha}, ${2:integer face});\nsnippet llSetAngularVelocity\n	llSetAngularVelocity(${1:vector force}, ${2:integer local});\nsnippet llSetAnimationOverride\n	llSetAnimationOverride(${1:string anim_state}, ${2:string anim})\nsnippet llSetBuoyancy\n	llSetBuoyancy(${1:float buoyancy});\nsnippet llSetCameraAtOffset\n	llSetCameraAtOffset(${1:vector offset});\nsnippet llSetCameraEyeOffset\n	llSetCameraEyeOffset(${1:vector offset});\nsnippet llSetCameraParams\n	llSetCameraParams(${1:list rules});\nsnippet llSetClickAction\n	llSetClickAction(${1:integer action});\nsnippet llSetColor\n	llSetColor(${1:vector color}, ${2:integer face});\nsnippet llSetContentType\n	llSetContentType(${1:key request_id}, ${2:integer content_type});\nsnippet llSetDamage\n	llSetDamage(${1:float damage});\nsnippet llSetForce\n	llSetForce(${1:vector force}, ${2:integer local});\nsnippet llSetForceAndTorque\n	llSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\nsnippet llSetHoverHeight\n	llSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\nsnippet llSetKeyframedMotion\n	llSetKeyframedMotion(${1:list keyframes}, ${2:list options});\nsnippet llSetLinkAlpha\n	llSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\nsnippet llSetLinkCamera\n	llSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\nsnippet llSetLinkColor\n	llSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\nsnippet llSetLinkMedia\n	llSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\nsnippet llSetLinkPrimitiveParams\n	llSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\nsnippet llSetLinkPrimitiveParamsFast\n	llSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\nsnippet llSetLinkTexture\n	llSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\nsnippet llSetLinkTextureAnim\n	llSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\nsnippet llSetLocalRot\n	llSetLocalRot(${1:rotation rot});\nsnippet llSetMemoryLimit\n	llSetMemoryLimit(${1:integer limit})\nsnippet llSetObjectDesc\n	llSetObjectDesc(${1:string description});\nsnippet llSetObjectName\n	llSetObjectName(${1:string name});\nsnippet llSetParcelMusicURL\n	llSetParcelMusicURL(${1:string url});\nsnippet llSetPayPrice\n	llSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\nsnippet llSetPhysicsMaterial\n	llSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\nsnippet llSetPos\n	llSetPos(${1:vector pos});\nsnippet llSetPrimitiveParams\n	llSetPrimitiveParams(${1:list rules});\nsnippet llSetPrimMediaParams\n	llSetPrimMediaParams(${1:integer face}, ${2:list params});\nsnippet llSetRegionPos\n	llSetRegionPos(${1:vector position})\nsnippet llSetRemoteScriptAccessPin\n	llSetRemoteScriptAccessPin(${1:integer pin});\nsnippet llSetRot\n	llSetRot(${1:rotation rot});\nsnippet llSetScale\n	llSetScale(${1:vector size});\nsnippet llSetScriptState\n	llSetScriptState(${1:string name}, ${2:integer run});\nsnippet llSetSitText\n	llSetSitText(${1:string text});\nsnippet llSetSoundQueueing\n	llSetSoundQueueing(${1:integer queue});\nsnippet llSetSoundRadius\n	llSetSoundRadius(${1:float radius});\nsnippet llSetStatus\n	llSetStatus(${1:integer status}, ${2:integer value});\nsnippet llSetText\n	llSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\nsnippet llSetTexture\n	llSetTexture(${1:string texture}, ${2:integer face});\nsnippet llSetTextureAnim\n	llSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\nsnippet llSetTimerEvent\n	llSetTimerEvent(${1:float sec});\nsnippet llSetTorque\n	llSetTorque(${1:vector torque}, ${2:integer local});\nsnippet llSetTouchText\n	llSetTouchText(${1:string text});\nsnippet llSetVehicleFlags\n	llSetVehicleFlags(${1:integer flags});\nsnippet llSetVehicleFloatParam\n	llSetVehicleFloatParam(${1:integer param}, ${2:float value});\nsnippet llSetVehicleRotationParam\n	llSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\nsnippet llSetVehicleType\n	llSetVehicleType(${1:integer type});\nsnippet llSetVehicleVectorParam\n	llSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\nsnippet llSetVelocity\n	llSetVelocity(${1:vector force}, ${2:integer local});\nsnippet llSHA1String\n	llSHA1String(${1:string src})\nsnippet llShout\n	llShout(${1:integer channel}, ${2:string msg});\nsnippet llSin\n	llSin(${1:float theta})\nsnippet llSitTarget\n	llSitTarget(${1:vector offset}, ${2:rotation rot});\nsnippet llSleep\n	llSleep(${1:float sec});\nsnippet llSqrt\n	llSqrt(${1:float val})\nsnippet llStartAnimation\n	llStartAnimation(${1:string anim});\nsnippet llStopAnimation\n	llStopAnimation(${1:string anim});\nsnippet llStopHover\n	llStopHover();\nsnippet llStopLookAt\n	llStopLookAt();\nsnippet llStopMoveToTarget\n	llStopMoveToTarget();\nsnippet llStopSound\n	llStopSound();\nsnippet llStringLength\n	llStringLength(${1:string str})\nsnippet llStringToBase64\n	llStringToBase64(${1:string str})\nsnippet llStringTrim\n	llStringTrim(${1:string src}, ${2:integer type})\nsnippet llSubStringIndex\n	llSubStringIndex(${1:string source}, ${2:string pattern})\nsnippet llTakeControls\n	llTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\nsnippet llTan\n	llTan(${1:float theta})\nsnippet llTarget\n	llTarget(${1:vector position}, ${2:float range})\nsnippet llTargetOmega\n	llTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\nsnippet llTargetRemove\n	llTargetRemove(${1:integer handle});\nsnippet llTeleportAgent\n	llTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\nsnippet llTeleportAgentGlobalCoords\n	llTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\nsnippet llTeleportAgentHome\n	llTeleportAgentHome(${1:key agent});\nsnippet llTextBox\n	llTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\nsnippet llToLower\n	llToLower(${1:string src})\nsnippet llToUpper\n	llToUpper(${1:string src})\nsnippet llTransferLindenDollars\n	llTransferLindenDollars(${1:key destination}, ${2:integer amount})\nsnippet llTriggerSound\n	llTriggerSound(${1:string sound}, ${2:float volume});\nsnippet llTriggerSoundLimited\n	llTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\nsnippet llUnescapeURL\n	llUnescapeURL(${1:string url})\nsnippet llUnSit\n	llUnSit(${1:key id});\nsnippet llUpdateCharacter\n	llUpdateCharacter(${1:list options})\nsnippet llUpdateKeyValue\n	llUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\nsnippet llVecDist\n	llVecDist(${1:vector vec_a}, ${2:vector vec_b})\nsnippet llVecMag\n	llVecMag(${1:vector vec})\nsnippet llVecNorm\n	llVecNorm(${1:vector vec})\nsnippet llVolumeDetect\n	llVolumeDetect(${1:integer detect});\nsnippet llWanderWithin\n	llWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\nsnippet llWater\n	llWater(${1:vector offset});\nsnippet llWhisper\n	llWhisper(${1:integer channel}, ${2:string msg});\nsnippet llWind\n	llWind(${1:vector offset});\nsnippet llXorBase64\n	llXorBase64(${1:string str1}, ${2:string str2})\nsnippet money\n	money(${1:key id}, ${2:integer amount})\n	{\n		$0\n	}\nsnippet object_rez\n	object_rez(${1:key id})\n	{\n		$0\n	}\nsnippet on_rez\n	on_rez(${1:integer start_param})\n	{\n		$0\n	}\nsnippet path_update\n	path_update(${1:integer type}, ${2:list reserved})\n	{\n		$0\n	}\nsnippet remote_data\n	remote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\n	{\n		$0\n	}\nsnippet run_time_permissions\n	run_time_permissions(${1:integer perm})\n	{\n		$0\n	}\nsnippet sensor\n	sensor(${1:integer index})\n	{\n		$0\n	}\nsnippet state\n	state ${1:name}\nsnippet touch\n	touch(${1:integer index})\n	{\n		$0\n	}\nsnippet touch_end\n	touch_end(${1:integer index})\n	{\n		$0\n	}\nsnippet touch_start\n	touch_start(${1:integer index})\n	{\n		$0\n	}\nsnippet transaction_result\n	transaction_result(${1:key id}, ${2:integer success}, ${3:string data})\n	{\n		$0\n	}\nsnippet while\n	while (${1:condition})\n	{\n		$0\n	}\n",t.scope="lsl"})
\ No newline at end of file
diff --git a/js/ace/snippets/lua.js b/js/ace/snippets/lua.js
new file mode 100644
index 0000000..091d96a
--- /dev/null
+++ b/js/ace/snippets/lua.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lua",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet #!\n	#!/usr/bin/env lua\n	$1\nsnippet local\n	local ${1:x} = ${2:1}\nsnippet fun\n	function ${1:fname}(${2:...})\n		${3:-- body}\n	end\nsnippet for\n	for ${1:i}=${2:1},${3:10} do\n		${4:print(i)}\n	end\nsnippet forp\n	for ${1:i},${2:v} in pairs(${3:table_name}) do\n	   ${4:-- body}\n	end\nsnippet fori\n	for ${1:i},${2:v} in ipairs(${3:table_name}) do\n	   ${4:-- body}\n	end\n",t.scope="lua"})
\ No newline at end of file
diff --git a/js/ace/snippets/luapage.js b/js/ace/snippets/luapage.js
new file mode 100644
index 0000000..b78dcf9
--- /dev/null
+++ b/js/ace/snippets/luapage.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/luapage",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="luapage"})
\ No newline at end of file
diff --git a/js/ace/snippets/lucene.js b/js/ace/snippets/lucene.js
new file mode 100644
index 0000000..232999a
--- /dev/null
+++ b/js/ace/snippets/lucene.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lucene",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lucene"})
\ No newline at end of file
diff --git a/js/ace/snippets/makefile.js b/js/ace/snippets/makefile.js
new file mode 100644
index 0000000..c987085
--- /dev/null
+++ b/js/ace/snippets/makefile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/makefile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet ifeq\n	ifeq (${1:cond0},${2:cond1})\n		${3:code}\n	endif\n",t.scope="makefile"})
\ No newline at end of file
diff --git a/js/ace/snippets/markdown.js b/js/ace/snippets/markdown.js
new file mode 100644
index 0000000..0a4a8f8
--- /dev/null
+++ b/js/ace/snippets/markdown.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/markdown",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Markdown\n\n# Includes octopress (http://octopress.org/) snippets\n\nsnippet [\n	[${1:text}](http://${2:address} "${3:title}")\nsnippet [*\n	[${1:link}](${2:`@*`} "${3:title}")${4}\n\nsnippet [:\n	[${1:id}]: http://${2:url} "${3:title}"\nsnippet [:*\n	[${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ![\n	![${1:alttext}](${2:/images/image.jpg} "${3:title}")\nsnippet ![*\n	![${1:alt}](${2:`@*`} "${3:title}")${4}\n\nsnippet ![:\n	![${1:id}]: ${2:url} "${3:title}"\nsnippet ![:*\n	![${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ===\nregex /^/=+/=*//\n	${PREV_LINE/./=/g}\n	\n	${0}\nsnippet ---\nregex /^/-+/-*//\n	${PREV_LINE/./-/g}\n	\n	${0}\nsnippet blockquote\n	{% blockquote %}\n	${1:quote}\n	{% endblockquote %}\n\nsnippet blockquote-author\n	{% blockquote ${1:author}, ${2:title} %}\n	${3:quote}\n	{% endblockquote %}\n\nsnippet blockquote-link\n	{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n	${4:quote}\n	{% endblockquote %}\n\nsnippet bt-codeblock-short\n	```\n	${1:code_snippet}\n	```\n\nsnippet bt-codeblock-full\n	``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n	${5:code_snippet}\n	```\n\nsnippet codeblock-short\n	{% codeblock %}\n	${1:code_snippet}\n	{% endcodeblock %}\n\nsnippet codeblock-full\n	{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n	${5:code_snippet}\n	{% endcodeblock %}\n\nsnippet gist-full\n	{% gist ${1:gist_id} ${2:filename} %}\n\nsnippet gist-short\n	{% gist ${1:gist_id} %}\n\nsnippet img\n	{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\nsnippet youtube\n	{% youtube ${1:video_id} %}\n\n# The quote should appear only once in the text. It is inherently part of it.\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\nsnippet pullquote\n	{% pullquote %}\n	${1:text} {" ${2:quote} "} ${3:text}\n	{% endpullquote %}\n',t.scope="markdown"})
\ No newline at end of file
diff --git a/js/ace/snippets/mask.js b/js/ace/snippets/mask.js
new file mode 100644
index 0000000..d615148
--- /dev/null
+++ b/js/ace/snippets/mask.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mask",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mask"})
\ No newline at end of file
diff --git a/js/ace/snippets/matlab.js b/js/ace/snippets/matlab.js
new file mode 100644
index 0000000..e2ee0a7
--- /dev/null
+++ b/js/ace/snippets/matlab.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/matlab",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="matlab"})
\ No newline at end of file
diff --git a/js/ace/snippets/mel.js b/js/ace/snippets/mel.js
new file mode 100644
index 0000000..1e1c474
--- /dev/null
+++ b/js/ace/snippets/mel.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mel"})
\ No newline at end of file
diff --git a/js/ace/snippets/mushcode.js b/js/ace/snippets/mushcode.js
new file mode 100644
index 0000000..25b7e76
--- /dev/null
+++ b/js/ace/snippets/mushcode.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mushcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mushcode"})
\ No newline at end of file
diff --git a/js/ace/snippets/mysql.js b/js/ace/snippets/mysql.js
new file mode 100644
index 0000000..71b06d9
--- /dev/null
+++ b/js/ace/snippets/mysql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mysql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mysql"})
\ No newline at end of file
diff --git a/js/ace/snippets/nix.js b/js/ace/snippets/nix.js
new file mode 100644
index 0000000..c44b967
--- /dev/null
+++ b/js/ace/snippets/nix.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/nix",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="nix"})
\ No newline at end of file
diff --git a/js/ace/snippets/objectivec.js b/js/ace/snippets/objectivec.js
new file mode 100644
index 0000000..aa49339
--- /dev/null
+++ b/js/ace/snippets/objectivec.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/objectivec",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="objectivec"})
\ No newline at end of file
diff --git a/js/ace/snippets/ocaml.js b/js/ace/snippets/ocaml.js
new file mode 100644
index 0000000..c9a46aa
--- /dev/null
+++ b/js/ace/snippets/ocaml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ocaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ocaml"})
\ No newline at end of file
diff --git a/js/ace/snippets/pascal.js b/js/ace/snippets/pascal.js
new file mode 100644
index 0000000..176f7d9
--- /dev/null
+++ b/js/ace/snippets/pascal.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/pascal",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pascal"})
\ No newline at end of file
diff --git a/js/ace/snippets/perl.js b/js/ace/snippets/perl.js
new file mode 100644
index 0000000..0668b47
--- /dev/null
+++ b/js/ace/snippets/perl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/perl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# #!/usr/bin/perl\nsnippet #!\n	#!/usr/bin/env perl\n\n# Hash Pointer\nsnippet .\n	 =>\n# Function\nsnippet sub\n	sub ${1:function_name} {\n		${2:#body ...}\n	}\n# Conditional\nsnippet if\n	if (${1}) {\n		${2:# body...}\n	}\n# Conditional if..else\nsnippet ife\n	if (${1}) {\n		${2:# body...}\n	}\n	else {\n		${3:# else...}\n	}\n# Conditional if..elsif..else\nsnippet ifee\n	if (${1}) {\n		${2:# body...}\n	}\n	elsif (${3}) {\n		${4:# elsif...}\n	}\n	else {\n		${5:# else...}\n	}\n# Conditional One-line\nsnippet xif\n	${1:expression} if ${2:condition};${3}\n# Unless conditional\nsnippet unless\n	unless (${1}) {\n		${2:# body...}\n	}\n# Unless conditional One-line\nsnippet xunless\n	${1:expression} unless ${2:condition};${3}\n# Try/Except\nsnippet eval\n	local $@;\n	eval {\n		${1:# do something risky...}\n	};\n	if (my $e = $@) {\n		${2:# handle failure...}\n	}\n# While Loop\nsnippet wh\n	while (${1}) {\n		${2:# body...}\n	}\n# While Loop One-line\nsnippet xwh\n	${1:expression} while ${2:condition};${3}\n# C-style For Loop\nsnippet cfor\n	for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n		${4:# body...}\n	}\n# For loop one-line\nsnippet xfor\n	${1:expression} for @${2:array};${3}\n# Foreach Loop\nsnippet for\n	foreach my $${1:x} (@${2:array}) {\n		${3:# body...}\n	}\n# Foreach Loop One-line\nsnippet fore\n	${1:expression} foreach @${2:array};${3}\n# Package\nsnippet package\n	package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\n	${2}\n\n	1;\n\n	__END__\n# Package syntax perl >= 5.14\nsnippet packagev514\n	package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\n	${3}\n\n	1;\n\n	__END__\n#moose\nsnippet moose\n	use Moose;\n	use namespace::autoclean;\n	${1:#}BEGIN {extends '${2:ParentClass}'};\n\n	${3}\n# parent\nsnippet parent\n	use parent qw(${1:Parent Class});\n# Read File\nsnippet slurp\n	my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n	${3}\n# strict warnings\nsnippet strwar\n	use strict;\n	use warnings;\n# older versioning with perlcritic bypass\nsnippet vers\n	## no critic\n	our $VERSION = '${1:version}';\n	eval $VERSION;\n	## use critic\n# new 'switch' like feature\nsnippet switch\n	use feature 'switch';\n\n# Anonymous subroutine\nsnippet asub\n	sub {\n	 	${1:# body }\n	}\n\n\n\n# Begin block\nsnippet begin\n	BEGIN {\n		${1:# begin body}\n	}\n\n# call package function with some parameter\nsnippet pkgmv\n	__PACKAGE__->${1:package_method}(${2:var})\n\n# call package function without a parameter\nsnippet pkgm\n	__PACKAGE__->${1:package_method}()\n\n# call package \"get_\" function without a parameter\nsnippet pkget\n	__PACKAGE__->get_${1:package_method}()\n\n# call package function with a parameter\nsnippet pkgetv\n	__PACKAGE__->get_${1:package_method}(${2:var})\n\n# complex regex\nsnippet qrx\n	qr/\n	     ${1:regex}\n	/xms\n\n#simpler regex\nsnippet qr/\n	qr/${1:regex}/x\n\n#given\nsnippet given\n	given ($${1:var}) {\n		${2:# cases}\n		${3:# default}\n	}\n\n# switch-like case\nsnippet when\n	when (${1:case}) {\n		${2:# body}\n	}\n\n# hash slice\nsnippet hslice\n	@{ ${1:hash}  }{ ${2:array} }\n\n\n# map\nsnippet map\n	map {  ${2: body }    }  ${1: @array } ;\n\n\n\n# Pod stub\nsnippet ppod\n	=head1 NAME\n\n	${1:ClassName} - ${2:ShortDesc}\n\n	=head1 SYNOPSIS\n\n	  use $1;\n\n	  ${3:# synopsis...}\n\n	=head1 DESCRIPTION\n\n	${4:# longer description...}\n\n\n	=head1 INTERFACE\n\n\n	=head1 DEPENDENCIES\n\n\n	=head1 SEE ALSO\n\n\n# Heading for a subroutine stub\nsnippet psub\n	=head2 ${1:MethodName}\n\n	${2:Summary....}\n\n# Heading for inline subroutine pod\nsnippet psubi\n	=head2 ${1:MethodName}\n\n	${2:Summary...}\n\n\n	=cut\n# inline documented subroutine\nsnippet subpod\n	=head2 $1\n\n	Summary of $1\n\n	=cut\n\n	sub ${1:subroutine_name} {\n		${2:# body...}\n	}\n# Subroutine signature\nsnippet parg\n	=over 2\n\n	=item\n	Arguments\n\n\n	=over 3\n\n	=item\n	C<${1:DataStructure}>\n\n	  ${2:Sample}\n\n\n	=back\n\n\n	=item\n	Return\n\n	=over 3\n\n\n	=item\n	C<${3:...return data}>\n\n\n	=back\n\n\n	=back\n\n\n\n# Moose has\nsnippet has\n	has ${1:attribute} => (\n		is	    => '${2:ro|rw}',\n		isa 	=> '${3:Str|Int|HashRef|ArrayRef|etc}',\n		default => sub {\n			${4:defaultvalue}\n		},\n		${5:# other attributes}\n	);\n\n\n# override\nsnippet override\n	override ${1:attribute} => sub {\n		${2:# my $self = shift;};\n		${3:# my ($self, $args) = @_;};\n	};\n\n\n# use test classes\nsnippet tuse\n	use Test::More;\n	use Test::Deep; # (); # uncomment to stop prototype errors\n	use Test::Exception;\n\n# local test lib\nsnippet tlib\n	use lib qw{ ./t/lib };\n\n#test methods\nsnippet tmeths\n	$ENV{TEST_METHOD} = '${1:regex}';\n\n# runtestclass\nsnippet trunner\n	use ${1:test_class};\n	$1->runtests();\n\n# Test::Class-style test\nsnippet tsub\n	sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n		my $self = shift;\n		${4:#  body}\n\n	}\n\n# Test::Routine-style test\nsnippet trsub\n	test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n		my ($self) = @_;\n		${3:# test code}\n	};\n\n#prep test method\nsnippet tprep\n	sub prep${1:number}_${2:test_case} :Test(startup) {\n		my $self = shift;\n		${4:#  body}\n	}\n\n# cause failures to print stack trace\nsnippet debug_trace\n	use Carp; # 'verbose';\n	# cloak \"die\"\n	# warn \"warning\"\n	$SIG{'__DIE__'} = sub {\n		require Carp; Carp::confess\n	};\n\n",t.scope="perl"})
\ No newline at end of file
diff --git a/js/ace/snippets/pgsql.js b/js/ace/snippets/pgsql.js
new file mode 100644
index 0000000..260ff29
--- /dev/null
+++ b/js/ace/snippets/pgsql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/pgsql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pgsql"})
\ No newline at end of file
diff --git a/js/ace/snippets/php.js b/js/ace/snippets/php.js
new file mode 100644
index 0000000..39f9ed3
--- /dev/null
+++ b/js/ace/snippets/php.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/php",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet <?\n	<?php\n\n	${1}\nsnippet ec\n	echo ${1};\nsnippet <?e\n	<?php echo ${1} ?>\n# this one is for php5.4\nsnippet <?=\n	<?=${1}?>\nsnippet ns\n	namespace ${1:Foo\\Bar\\Baz};\n	${2}\nsnippet use\n	use ${1:Foo\\Bar\\Baz};\n	${2}\nsnippet c\n	${1:abstract }class ${2:$FILENAME}\n	{\n		${3}\n	}\nsnippet i\n	interface ${1:$FILENAME}\n	{\n		${2}\n	}\nsnippet t.\n	$this->${1}\nsnippet f\n	function ${1:foo}(${2:array }${3:$bar})\n	{\n		${4}\n	}\n# method\nsnippet m\n	${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\n	{\n		${7}\n	}\n# setter method\nsnippet sm \n	${5:public} function set${6:$2}(${7:$2 }$$1)\n	{\n		$this->${8:$1} = $$1;\n		return $this;\n	}${9}\n# getter method\nsnippet gm\n	${3:public} function get${4:$2}()\n	{\n		return $this->${5:$1};\n	}${6}\n#setter\nsnippet $s\n	${1:$foo}->set${2:Bar}(${3});\n#getter\nsnippet $g\n	${1:$foo}->get${2:Bar}();\n\n# Tertiary conditional\nsnippet =?:\n	$${1:foo} = ${2:true} ? ${3:a} : ${4};\nsnippet ?:\n	${1:true} ? ${2:a} : ${3}\n\nsnippet C\n	$_COOKIE['${1:variable}']${2}\nsnippet E\n	$_ENV['${1:variable}']${2}\nsnippet F\n	$_FILES['${1:variable}']${2}\nsnippet G\n	$_GET['${1:variable}']${2}\nsnippet P\n	$_POST['${1:variable}']${2}\nsnippet R\n	$_REQUEST['${1:variable}']${2}\nsnippet S\n	$_SERVER['${1:variable}']${2}\nsnippet SS\n	$_SESSION['${1:variable}']${2}\n	\n# the following are old ones\nsnippet inc\n	include '${1:file}';${2}\nsnippet inc1\n	include_once '${1:file}';${2}\nsnippet req\n	require '${1:file}';${2}\nsnippet req1\n	require_once '${1:file}';${2}\n# Start Docblock\nsnippet /*\n# Class - post doc\nsnippet doc_cp${5}\n# Class Variable - post doc\nsnippet doc_vp${3}\n# Class Variable\nsnippet doc_v\n	${1:var} $${2};${5}\n# Class\nsnippet doc_c\n	${1:}class ${2:}\n	{\n		${7}\n	} // END $1class $2\n# Constant Definition - post doc\nsnippet doc_dp${2}\n# Constant Definition\nsnippet doc_d\n	ace.define(${1}, ${2});${4}\n# Function - post doc\nsnippet doc_fp${4}\n# Function signature\nsnippet doc_s\n	${1}function ${2}(${3});${7}\n# Function\nsnippet doc_f\n	${1}function ${2}(${3})\n	{${7}\n	}\n# Header\nsnippet doc_h\n	\n# Interface\nsnippet interface\n	interface ${1:$FILENAME}\n	{\n		${5}\n	}\n# class ...\nsnippet class\n	class ${2:$FILENAME}\n	{\n		${3}\n		${5:public} function ${6:__construct}(${7:argument})\n		{\n			${8:// code...}\n		}\n	}\n# ace.define(...)\nsnippet def\n	ace.define('${1}'${2});${3}\n# defined(...)\nsnippet def?\n	${1}defined('${2}')${3}\nsnippet wh\n	while (${1:/* condition */}) {\n		${2:// code...}\n	}\n# do ... while\nsnippet do\n	do {\n		${2:// code... }\n	} while (${1:/* condition */});\nsnippet if\n	if (${1:/* condition */}) {\n		${2:// code...}\n	}\nsnippet ifil\n	<?php if (${1:/* condition */}): ?>\n		${2:<!-- code... -->}\n	<?php endif; ?>\nsnippet ife\n	if (${1:/* condition */}) {\n		${2:// code...}\n	} else {\n		${3:// code...}\n	}\n	${4}\nsnippet ifeil\n	<?php if (${1:/* condition */}): ?>\n		${2:<!-- html... -->}\n	<?php else: ?>\n		${3:<!-- html... -->}\n	<?php endif; ?>\n	${4}\nsnippet else\n	else {\n		${1:// code...}\n	}\nsnippet elseif\n	elseif (${1:/* condition */}) {\n		${2:// code...}\n	}\nsnippet switch\n	switch ($${1:variable}) {\n		case '${2:value}':\n			${3:// code...}\n			break;\n		${5}\n		default:\n			${4:// code...}\n			break;\n	}\nsnippet case\n	case '${1:value}':\n		${2:// code...}\n		break;${3}\nsnippet for\n	for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\n		${4: // code...}\n	}\nsnippet foreach\n	foreach ($${1:variable} as $${2:value}) {\n		${3:// code...}\n	}\nsnippet foreachil\n	<?php foreach ($${1:variable} as $${2:value}): ?>\n		${3:<!-- html... -->}\n	<?php endforeach; ?>\nsnippet foreachk\n	foreach ($${1:variable} as $${2:key} => $${3:value}) {\n		${4:// code...}\n	}\nsnippet foreachkil\n	<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\n		${4:<!-- html... -->}\n	<?php endforeach; ?>\n# $... = array (...)\nsnippet array\n	$${1:arrayName} = array('${2}' => ${3});${4}\nsnippet try\n	try {\n		${2}\n	} catch (${1:Exception} $e) {\n	}\n# lambda with closure\nsnippet lambda\n	${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\n		${4}\n	};\n# pre_dump();\nsnippet pd\n	echo '<pre>'; var_dump(${1}); echo '</pre>';\n# pre_dump(); die();\nsnippet pdd\n	echo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\nsnippet vd\n	var_dump(${1});\nsnippet vdd\n	var_dump(${1}); die(${2:});\nsnippet http_redirect\n	header (\"HTTP/1.1 301 Moved Permanently\"); \n	header (\"Location: \".URL); \n	exit();\n# Getters & Setters\nsnippet gs\n	public function get${3:$2}()\n	{\n		return $this->${4:$1};\n	}\n	public function set$3(${7:$2 }$$1)\n	{\n		$this->$4 = $$1;\n		return $this;\n	}${8}\n# anotation, get, and set, useful for doctrine\nsnippet ags\n	${2:protected} $${3:foo};\n\n	public function get${4:$3}()\n	{\n		return $this->$3;\n	}\n\n	public function set$4(${5:$4 }$${6:$3})\n	{\n		$this->$3 = $$6;\n		return $this;\n	}\nsnippet rett\n	return true;\nsnippet retf\n	return false;\n",t.scope="php"})
\ No newline at end of file
diff --git a/js/ace/snippets/plain_text.js b/js/ace/snippets/plain_text.js
new file mode 100644
index 0000000..25ec4af
--- /dev/null
+++ b/js/ace/snippets/plain_text.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/plain_text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="plain_text"})
\ No newline at end of file
diff --git a/js/ace/snippets/powershell.js b/js/ace/snippets/powershell.js
new file mode 100644
index 0000000..1672035
--- /dev/null
+++ b/js/ace/snippets/powershell.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/powershell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="powershell"})
\ No newline at end of file
diff --git a/js/ace/snippets/praat.js b/js/ace/snippets/praat.js
new file mode 100644
index 0000000..8f290e0
--- /dev/null
+++ b/js/ace/snippets/praat.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/praat",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="praat"})
\ No newline at end of file
diff --git a/js/ace/snippets/prolog.js b/js/ace/snippets/prolog.js
new file mode 100644
index 0000000..7f00711
--- /dev/null
+++ b/js/ace/snippets/prolog.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/prolog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="prolog"})
\ No newline at end of file
diff --git a/js/ace/snippets/properties.js b/js/ace/snippets/properties.js
new file mode 100644
index 0000000..6c0b236
--- /dev/null
+++ b/js/ace/snippets/properties.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/properties",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="properties"})
\ No newline at end of file
diff --git a/js/ace/snippets/protobuf.js b/js/ace/snippets/protobuf.js
new file mode 100644
index 0000000..20b10fb
--- /dev/null
+++ b/js/ace/snippets/protobuf.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/protobuf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="",t.scope="protobuf"})
\ No newline at end of file
diff --git a/js/ace/snippets/python.js b/js/ace/snippets/python.js
new file mode 100644
index 0000000..ee023b2
--- /dev/null
+++ b/js/ace/snippets/python.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/python",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet #!\n	#!/usr/bin/env python\nsnippet imp\n	import ${1:module}\nsnippet from\n	from ${1:package} import ${2:module}\n# Module Docstring\nsnippet docs\n	\'\'\'\n	File: ${1:FILENAME:file_name}\n	Author: ${2:author}\n	Description: ${3}\n	\'\'\'\nsnippet wh\n	while ${1:condition}:\n		${2:# TODO: write code...}\n# dowh - does the same as do...while in other languages\nsnippet dowh\n	while True:\n		${1:# TODO: write code...}\n		if ${2:condition}:\n			break\nsnippet with\n	with ${1:expr} as ${2:var}:\n		${3:# TODO: write code...}\n# New Class\nsnippet cl\n	class ${1:ClassName}(${2:object}):\n		"""${3:docstring for $1}"""\n		def __init__(self, ${4:arg}):\n			${5:super($1, self).__init__()}\n			self.$4 = $4\n			${6}\n# New Function\nsnippet def\n	def ${1:fname}(${2:`indent(\'.\') ? \'self\' : \'\'`}):\n		"""${3:docstring for $1}"""\n		${4:# TODO: write code...}\nsnippet deff\n	def ${1:fname}(${2:`indent(\'.\') ? \'self\' : \'\'`}):\n		${3:# TODO: write code...}\n# New Method\nsnippet defs\n	def ${1:mname}(self, ${2:arg}):\n		${3:# TODO: write code...}\n# New Property\nsnippet property\n	def ${1:foo}():\n		doc = "${2:The $1 property.}"\n		def fget(self):\n			${3:return self._$1}\n		def fset(self, value):\n			${4:self._$1 = value}\n# Ifs\nsnippet if\n	if ${1:condition}:\n		${2:# TODO: write code...}\nsnippet el\n	else:\n		${1:# TODO: write code...}\nsnippet ei\n	elif ${1:condition}:\n		${2:# TODO: write code...}\n# For\nsnippet for\n	for ${1:item} in ${2:items}:\n		${3:# TODO: write code...}\n# Encodes\nsnippet cutf8\n	# -*- coding: utf-8 -*-\nsnippet clatin1\n	# -*- coding: latin-1 -*-\nsnippet cascii\n	# -*- coding: ascii -*-\n# Lambda\nsnippet ld\n	${1:var} = lambda ${2:vars} : ${3:action}\nsnippet .\n	self.\nsnippet try Try/Except\n	try:\n		${1:# TODO: write code...}\n	except ${2:Exception}, ${3:e}:\n		${4:raise $3}\nsnippet try Try/Except/Else\n	try:\n		${1:# TODO: write code...}\n	except ${2:Exception}, ${3:e}:\n		${4:raise $3}\n	else:\n		${5:# TODO: write code...}\nsnippet try Try/Except/Finally\n	try:\n		${1:# TODO: write code...}\n	except ${2:Exception}, ${3:e}:\n		${4:raise $3}\n	finally:\n		${5:# TODO: write code...}\nsnippet try Try/Except/Else/Finally\n	try:\n		${1:# TODO: write code...}\n	except ${2:Exception}, ${3:e}:\n		${4:raise $3}\n	else:\n		${5:# TODO: write code...}\n	finally:\n		${6:# TODO: write code...}\n# if __name__ == \'__main__\':\nsnippet ifmain\n	if __name__ == \'__main__\':\n		${1:main()}\n# __magic__\nsnippet _\n	__${1:init}__${2}\n# python debugger (pdb)\nsnippet pdb\n	import pdb; pdb.set_trace()\n# ipython debugger (ipdb)\nsnippet ipdb\n	import ipdb; ipdb.set_trace()\n# ipython debugger (pdbbb)\nsnippet pdbbb\n	import pdbpp; pdbpp.set_trace()\nsnippet pprint\n	import pprint; pprint.pprint(${1})${2}\nsnippet "\n	"""\n	${1:doc}\n	"""\n# test function/method\nsnippet test\n	def test_${1:description}(${2:self}):\n		${3:# TODO: write code...}\n# test case\nsnippet testcase\n	class ${1:ExampleCase}(unittest.TestCase):\n		\n		def test_${2:description}(self):\n			${3:# TODO: write code...}\nsnippet fut\n	from __future__ import ${1}\n#getopt\nsnippet getopt\n	try:\n		# Short option syntax: "hv:"\n		# Long option syntax: "help" or "verbose="\n		opts, args = getopt.getopt(sys.argv[1:], "${1:short_options}", [${2:long_options}])\n	\n	except getopt.GetoptError, err:\n		# Print debug info\n		print str(err)\n		${3:error_action}\n\n	for option, argument in opts:\n		if option in ("-h", "--help"):\n			${4}\n		elif option in ("-v", "--verbose"):\n			verbose = argument\n',t.scope="python"})
\ No newline at end of file
diff --git a/js/ace/snippets/r.js b/js/ace/snippets/r.js
new file mode 100644
index 0000000..85076d5
--- /dev/null
+++ b/js/ace/snippets/r.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/r",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet #!\n	#!/usr/bin/env Rscript\n\n# includes\nsnippet lib\n	library(${1:package})\nsnippet req\n	require(${1:package})\nsnippet source\n	source(\'${1:file}\')\n\n# conditionals\nsnippet if\n	if (${1:condition}) {\n		${2:code}\n	}\nsnippet el\n	else {\n		${1:code}\n	}\nsnippet ei\n	else if (${1:condition}) {\n		${2:code}\n	}\n\n# functions\nsnippet fun\n	${1:name} = function (${2:variables}) {\n		${3:code}\n	}\nsnippet ret\n	return(${1:code})\n\n# dataframes, lists, etc\nsnippet df\n	${1:name}[${2:rows}, ${3:cols}]\nsnippet c\n	c(${1:items})\nsnippet li\n	list(${1:items})\nsnippet mat\n	matrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\n\n# apply functions\nsnippet apply\n	apply(${1:array}, ${2:margin}, ${3:function})\nsnippet lapply\n	lapply(${1:list}, ${2:function})\nsnippet sapply\n	lapply(${1:list}, ${2:function})\nsnippet vapply\n	vapply(${1:list}, ${2:function}, ${3:type})\nsnippet mapply\n	mapply(${1:function}, ${2:...})\nsnippet tapply\n	tapply(${1:vector}, ${2:index}, ${3:function})\nsnippet rapply\n	rapply(${1:list}, ${2:function})\n\n# plyr functions\nsnippet dd\n	ddply(${1:frame}, ${2:variables}, ${3:function})\nsnippet dl\n	dlply(${1:frame}, ${2:variables}, ${3:function})\nsnippet da\n	daply(${1:frame}, ${2:variables}, ${3:function})\nsnippet d_\n	d_ply(${1:frame}, ${2:variables}, ${3:function})\n\nsnippet ad\n	adply(${1:array}, ${2:margin}, ${3:function})\nsnippet al\n	alply(${1:array}, ${2:margin}, ${3:function})\nsnippet aa\n	aaply(${1:array}, ${2:margin}, ${3:function})\nsnippet a_\n	a_ply(${1:array}, ${2:margin}, ${3:function})\n\nsnippet ld\n	ldply(${1:list}, ${2:function})\nsnippet ll\n	llply(${1:list}, ${2:function})\nsnippet la\n	laply(${1:list}, ${2:function})\nsnippet l_\n	l_ply(${1:list}, ${2:function})\n\nsnippet md\n	mdply(${1:matrix}, ${2:function})\nsnippet ml\n	mlply(${1:matrix}, ${2:function})\nsnippet ma\n	maply(${1:matrix}, ${2:function})\nsnippet m_\n	m_ply(${1:matrix}, ${2:function})\n\n# plot functions\nsnippet pl\n	plot(${1:x}, ${2:y})\nsnippet ggp\n	ggplot(${1:data}, aes(${2:aesthetics}))\nsnippet img\n	${1:(jpeg,bmp,png,tiff)}(filename="${2:filename}", width=${3}, height=${4}, unit="${5}")\n	${6:plot}\n	dev.off()\n\n# statistical test functions\nsnippet fis\n	fisher.test(${1:x}, ${2:y})\nsnippet chi\n	chisq.test(${1:x}, ${2:y})\nsnippet tt\n	t.test(${1:x}, ${2:y})\nsnippet wil\n	wilcox.test(${1:x}, ${2:y})\nsnippet cor\n	cor.test(${1:x}, ${2:y})\nsnippet fte\n	var.test(${1:x}, ${2:y})\nsnippet kvt \n	kv.test(${1:x}, ${2:y})\n',t.scope="r"})
\ No newline at end of file
diff --git a/js/ace/snippets/rdoc.js b/js/ace/snippets/rdoc.js
new file mode 100644
index 0000000..c7c3b1e
--- /dev/null
+++ b/js/ace/snippets/rdoc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rdoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rdoc"})
\ No newline at end of file
diff --git a/js/ace/snippets/rhtml.js b/js/ace/snippets/rhtml.js
new file mode 100644
index 0000000..f2b53b5
--- /dev/null
+++ b/js/ace/snippets/rhtml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rhtml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rhtml"})
\ No newline at end of file
diff --git a/js/ace/snippets/ruby.js b/js/ace/snippets/ruby.js
new file mode 100644
index 0000000..0c30680
--- /dev/null
+++ b/js/ace/snippets/ruby.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ruby",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='########################################\n# Ruby snippets - for Rails, see below #\n########################################\n\n# encoding for Ruby 1.9\nsnippet enc\n	# encoding: utf-8\n\n# #!/usr/bin/env ruby\nsnippet #!\n	#!/usr/bin/env ruby\n	# encoding: utf-8\n\n# New Block\nsnippet =b\n	=begin rdoc\n		${1}\n	=end\nsnippet y\n	:yields: ${1:arguments}\nsnippet rb\n	#!/usr/bin/env ruby -wKU\nsnippet beg\n	begin\n		${3}\n	rescue ${1:Exception} => ${2:e}\n	end\n\nsnippet req require\n	require "${1}"${2}\nsnippet #\n	# =>\nsnippet end\n	__END__\nsnippet case\n	case ${1:object}\n	when ${2:condition}\n		${3}\n	end\nsnippet when\n	when ${1:condition}\n		${2}\nsnippet def\n	def ${1:method_name}\n		${2}\n	end\nsnippet deft\n	def test_${1:case_name}\n		${2}\n	end\nsnippet if\n	if ${1:condition}\n		${2}\n	end\nsnippet ife\n	if ${1:condition}\n		${2}\n	else\n		${3}\n	end\nsnippet elsif\n	elsif ${1:condition}\n		${2}\nsnippet unless\n	unless ${1:condition}\n		${2}\n	end\nsnippet while\n	while ${1:condition}\n		${2}\n	end\nsnippet for\n	for ${1:e} in ${2:c}\n		${3}\n	end\nsnippet until\n	until ${1:condition}\n		${2}\n	end\nsnippet cla class .. end\n	class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n		${2}\n	end\nsnippet cla class .. initialize .. end\n	class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n		def initialize(${2:args})\n			${3}\n		end\n	end\nsnippet cla class .. < ParentClass .. initialize .. end\n	class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`} < ${2:ParentClass}\n		def initialize(${3:args})\n			${4}\n		end\n	end\nsnippet cla ClassName = Struct .. do .. end\n	${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`} = Struct.new(:${2:attr_names}) do\n		def ${3:method_name}\n			${4}\n		end\n	end\nsnippet cla class BlankSlate .. initialize .. end\n	class ${1:BlankSlate}\n		instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n	end\nsnippet cla class << self .. end\n	class << ${1:self}\n		${2}\n	end\n# class .. < DelegateClass .. initialize .. end\nsnippet cla-\n	class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`} < DelegateClass(${2:ParentClass})\n		def initialize(${3:args})\n			super(${4:del_obj})\n\n			${5}\n		end\n	end\nsnippet mod module .. end\n	module ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n		${2}\n	end\nsnippet mod module .. module_function .. end\n	module ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n		module_function\n\n		${2}\n	end\nsnippet mod module .. ClassMethods .. end\n	module ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n		module ClassMethods\n			${2}\n		end\n\n		module InstanceMethods\n\n		end\n\n		def self.included(receiver)\n			receiver.extend         ClassMethods\n			receiver.send :include, InstanceMethods\n		end\n	end\n# attr_reader\nsnippet r\n	attr_reader :${1:attr_names}\n# attr_writer\nsnippet w\n	attr_writer :${1:attr_names}\n# attr_accessor\nsnippet rw\n	attr_accessor :${1:attr_names}\nsnippet atp\n	attr_protected :${1:attr_names}\nsnippet ata\n	attr_accessible :${1:attr_names}\n# include Enumerable\nsnippet Enum\n	include Enumerable\n\n	def each(&block)\n		${1}\n	end\n# include Comparable\nsnippet Comp\n	include Comparable\n\n	def <=>(other)\n		${1}\n	end\n# extend Forwardable\nsnippet Forw-\n	extend Forwardable\n# def self\nsnippet defs\n	def self.${1:class_method_name}\n		${2}\n	end\n# def method_missing\nsnippet defmm\n	def method_missing(meth, *args, &blk)\n		${1}\n	end\nsnippet defd\n	def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\nsnippet defds\n	def_delegators :${1:@del_obj}, :${2:del_methods}\nsnippet am\n	alias_method :${1:new_name}, :${2:old_name}\nsnippet app\n	if __FILE__ == $PROGRAM_NAME\n		${1}\n	end\n# usage_if()\nsnippet usai\n	if ARGV.${1}\n		abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}\n	end\n# usage_unless()\nsnippet usau\n	unless ARGV.${1}\n		abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}\n	end\nsnippet array\n	Array.new(${1:10}) { |${2:i}| ${3} }\nsnippet hash\n	Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\nsnippet file File.foreach() { |line| .. }\n	File.foreach(${1:"path/to/file"}) { |${2:line}| ${3} }\nsnippet file File.read()\n	File.read(${1:"path/to/file"})${2}\nsnippet Dir Dir.global() { |file| .. }\n	Dir.glob(${1:"dir/glob/*"}) { |${2:file}| ${3} }\nsnippet Dir Dir[".."]\n	Dir[${1:"glob/**/*.rb"}]${2}\nsnippet dir\n	Filename.dirname(__FILE__)\nsnippet deli\n	delete_if { |${1:e}| ${2} }\nsnippet fil\n	fill(${1:range}) { |${2:i}| ${3} }\n# flatten_once()\nsnippet flao\n	inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\nsnippet zip\n	zip(${1:enums}) { |${2:row}| ${3} }\n# downto(0) { |n| .. }\nsnippet dow\n	downto(${1:0}) { |${2:n}| ${3} }\nsnippet ste\n	step(${1:2}) { |${2:n}| ${3} }\nsnippet tim\n	times { |${1:n}| ${2} }\nsnippet upt\n	upto(${1:1.0/0.0}) { |${2:n}| ${3} }\nsnippet loo\n	loop { ${1} }\nsnippet ea\n	each { |${1:e}| ${2} }\nsnippet ead\n	each do |${1:e}|\n		${2}\n	end\nsnippet eab\n	each_byte { |${1:byte}| ${2} }\nsnippet eac- each_char { |chr| .. }\n	each_char { |${1:chr}| ${2} }\nsnippet eac- each_cons(..) { |group| .. }\n	each_cons(${1:2}) { |${2:group}| ${3} }\nsnippet eai\n	each_index { |${1:i}| ${2} }\nsnippet eaid\n	each_index do |${1:i}|\n		${2}\n	end\nsnippet eak\n	each_key { |${1:key}| ${2} }\nsnippet eakd\n	each_key do |${1:key}|\n		${2}\n	end\nsnippet eal\n	each_line { |${1:line}| ${2} }\nsnippet eald\n	each_line do |${1:line}|\n		${2}\n	end\nsnippet eap\n	each_pair { |${1:name}, ${2:val}| ${3} }\nsnippet eapd\n	each_pair do |${1:name}, ${2:val}|\n		${3}\n	end\nsnippet eas-\n	each_slice(${1:2}) { |${2:group}| ${3} }\nsnippet easd-\n	each_slice(${1:2}) do |${2:group}|\n		${3}\n	end\nsnippet eav\n	each_value { |${1:val}| ${2} }\nsnippet eavd\n	each_value do |${1:val}|\n		${2}\n	end\nsnippet eawi\n	each_with_index { |${1:e}, ${2:i}| ${3} }\nsnippet eawid\n	each_with_index do |${1:e},${2:i}|\n		${3}\n	end\nsnippet reve\n	reverse_each { |${1:e}| ${2} }\nsnippet reved\n	reverse_each do |${1:e}|\n		${2}\n	end\nsnippet inj\n	inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\nsnippet injd\n	inject(${1:init}) do |${2:mem}, ${3:var}|\n		${4}\n	end\nsnippet map\n	map { |${1:e}| ${2} }\nsnippet mapd\n	map do |${1:e}|\n		${2}\n	end\nsnippet mapwi-\n	enum_with_index.map { |${1:e}, ${2:i}| ${3} }\nsnippet sor\n	sort { |a, b| ${1} }\nsnippet sorb\n	sort_by { |${1:e}| ${2} }\nsnippet ran\n	sort_by { rand }\nsnippet all\n	all? { |${1:e}| ${2} }\nsnippet any\n	any? { |${1:e}| ${2} }\nsnippet cl\n	classify { |${1:e}| ${2} }\nsnippet col\n	collect { |${1:e}| ${2} }\nsnippet cold\n	collect do |${1:e}|\n		${2}\n	end\nsnippet det\n	detect { |${1:e}| ${2} }\nsnippet detd\n	detect do |${1:e}|\n		${2}\n	end\nsnippet fet\n	fetch(${1:name}) { |${2:key}| ${3} }\nsnippet fin\n	find { |${1:e}| ${2} }\nsnippet find\n	find do |${1:e}|\n		${2}\n	end\nsnippet fina\n	find_all { |${1:e}| ${2} }\nsnippet finad\n	find_all do |${1:e}|\n		${2}\n	end\nsnippet gre\n	grep(${1:/pattern/}) { |${2:match}| ${3} }\nsnippet sub\n	${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\nsnippet sca\n	scan(${1:/pattern/}) { |${2:match}| ${3} }\nsnippet scad\n	scan(${1:/pattern/}) do |${2:match}|\n		${3}\n	end\nsnippet max\n	max { |a, b| ${1} }\nsnippet min\n	min { |a, b| ${1} }\nsnippet par\n	partition { |${1:e}| ${2} }\nsnippet pard\n	partition do |${1:e}|\n		${2}\n	end\nsnippet rej\n	reject { |${1:e}| ${2} }\nsnippet rejd\n	reject do |${1:e}|\n		${2}\n	end\nsnippet sel\n	select { |${1:e}| ${2} }\nsnippet seld\n	select do |${1:e}|\n		${2}\n	end\nsnippet lam\n	lambda { |${1:args}| ${2} }\nsnippet doo\n	do\n		${1}\n	end\nsnippet dov\n	do |${1:variable}|\n		${2}\n	end\nsnippet :\n	:${1:key} => ${2:"value"}${3}\nsnippet ope\n	open(${1:"path/or/url/or/pipe"}, "${2:w}") { |${3:io}| ${4} }\n# path_from_here()\nsnippet fpath\n	File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n# unix_filter {}\nsnippet unif\n	ARGF.each_line${1} do |${2:line}|\n		${3}\n	end\n# option_parse {}\nsnippet optp\n	require "optparse"\n\n	options = {${1:default => "args"}}\n\n	ARGV.options do |opts|\n		opts.banner = "Usage: #{File.basename($PROGRAM_NAME)}\nsnippet opt\n	opts.on( "-${1:o}", "--${2:long-option-name}", ${3:String},\n	         "${4:Option description.}") do |${5:opt}|\n		${6}\n	end\nsnippet tc\n	require "test/unit"\n\n	require "${1:library_file_name}"\n\n	class Test${2:$1} < Test::Unit::TestCase\n		def test_${3:case_name}\n			${4}\n		end\n	end\nsnippet ts\n	require "test/unit"\n\n	require "tc_${1:test_case_file}"\n	require "tc_${2:test_case_file}"${3}\nsnippet as\n	assert ${1:test}, "${2:Failure message.}"${3}\nsnippet ase\n	assert_equal ${1:expected}, ${2:actual}${3}\nsnippet asne\n	assert_not_equal ${1:unexpected}, ${2:actual}${3}\nsnippet asid\n	assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\nsnippet asio\n	assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\nsnippet asko\n	assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\nsnippet asn\n	assert_nil ${1:instance}${2}\nsnippet asnn\n	assert_not_nil ${1:instance}${2}\nsnippet asm\n	assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\nsnippet asnm\n	assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\nsnippet aso\n	assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\nsnippet asr\n	assert_raise ${1:Exception} { ${2} }\nsnippet asrd\n	assert_raise ${1:Exception} do\n		${2}\n	end\nsnippet asnr\n	assert_nothing_raised ${1:Exception} { ${2} }\nsnippet asnrd\n	assert_nothing_raised ${1:Exception} do\n		${2}\n	end\nsnippet asrt\n	assert_respond_to ${1:object}, :${2:method}${3}\nsnippet ass assert_same(..)\n	assert_same ${1:expected}, ${2:actual}${3}\nsnippet ass assert_send(..)\n	assert_send [${1:object}, :${2:message}, ${3:args}]${4}\nsnippet asns\n	assert_not_same ${1:unexpected}, ${2:actual}${3}\nsnippet ast\n	assert_throws :${1:expected} { ${2} }\nsnippet astd\n	assert_throws :${1:expected} do\n		${2}\n	end\nsnippet asnt\n	assert_nothing_thrown { ${1} }\nsnippet asntd\n	assert_nothing_thrown do\n		${1}\n	end\nsnippet fl\n	flunk "${1:Failure message.}"${2}\n# Benchmark.bmbm do .. end\nsnippet bm-\n	TESTS = ${1:10_000}\n	Benchmark.bmbm do |results|\n		${2}\n	end\nsnippet rep\n	results.report("${1:name}:") { TESTS.times { ${2} }}\n# Marshal.dump(.., file)\nsnippet Md\n	File.open(${1:"path/to/file.dump"}, "wb") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n# Mashal.load(obj)\nsnippet Ml\n	File.open(${1:"path/to/file.dump"}, "rb") { |${2:file}| Marshal.load($2) }${3}\n# deep_copy(..)\nsnippet deec\n	Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\nsnippet Pn-\n	PStore.new(${1:"file_name.pstore"})${2}\nsnippet tra\n	transaction(${1:true}) { ${2} }\n# xmlread(..)\nsnippet xml-\n	REXML::Document.new(File.read(${1:"path/to/file"}))${2}\n# xpath(..) { .. }\nsnippet xpa\n	elements.each(${1:"//Xpath"}) do |${2:node}|\n		${3}\n	end\n# class_from_name()\nsnippet clafn\n	split("::").inject(Object) { |par, const| par.const_get(const) }\n# singleton_class()\nsnippet sinc\n	class << self; self end\nsnippet nam\n	namespace :${1:`Filename()`} do\n		${2}\n	end\nsnippet tas\n	desc "${1:Task description}"\n	task :${2:task_name => [:dependent, :tasks]} do\n		${3}\n	end\n# block\nsnippet b\n	{ |${1:var}| ${2} }\nsnippet begin\n	begin\n		raise \'A test exception.\'\n	rescue Exception => e\n		puts e.message\n		puts e.backtrace.inspect\n	else\n		# other exception\n	ensure\n		# always executed\n	end\n\n#debugging\nsnippet debug\n	require \'ruby-debug\'; debugger; true;\nsnippet pry\n	require \'pry\'; binding.pry\n\n#############################################\n# Rails snippets - for pure Ruby, see above #\n#############################################\nsnippet art\n	assert_redirected_to ${1::action => "${2:index}"}\nsnippet artnp\n	assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\nsnippet artnpp\n	assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\nsnippet artp\n	assert_redirected_to ${1:model}_path(${2:@$1})\nsnippet artpp\n	assert_redirected_to ${1:model}s_path\nsnippet asd\n	assert_difference "${1:Model}.${2:count}", $1 do\n		${3}\n	end\nsnippet asnd\n	assert_no_difference "${1:Model}.${2:count}" do\n		${3}\n	end\nsnippet asre\n	assert_response :${1:success}, @response.body${2}\nsnippet asrj\n	assert_rjs :${1:replace}, "${2:dom id}"\nsnippet ass assert_select(..)\n	assert_select \'${1:path}\', :${2:text} => \'${3:inner_html\' ${4:do}\nsnippet bf\n	before_filter :${1:method}\nsnippet bt\n	belongs_to :${1:association}\nsnippet crw\n	cattr_accessor :${1:attr_names}\nsnippet defcreate\n	def create\n		@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\n\n		respond_to do |wants|\n			if @$1.save\n				flash[:notice] = \'$2 was successfully created.\'\n				wants.html { redirect_to(@$1) }\n				wants.xml  { render :xml => @$1, :status => :created, :location => @$1 }\n			else\n				wants.html { render :action => "new" }\n				wants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\n			end\n		end\n	end${3}\nsnippet defdestroy\n	def destroy\n		@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n		@$1.destroy\n\n		respond_to do |wants|\n			wants.html { redirect_to($1s_url) }\n			wants.xml  { head :ok }\n		end\n	end${3}\nsnippet defedit\n	def edit\n		@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n	end\nsnippet defindex\n	def index\n		@${1:model_class_name} = ${2:ModelClassName}.all\n\n		respond_to do |wants|\n			wants.html # index.html.erb\n			wants.xml  { render :xml => @$1s }\n		end\n	end${3}\nsnippet defnew\n	def new\n		@${1:model_class_name} = ${2:ModelClassName}.new\n\n		respond_to do |wants|\n			wants.html # new.html.erb\n			wants.xml  { render :xml => @$1 }\n		end\n	end${3}\nsnippet defshow\n	def show\n		@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\n		respond_to do |wants|\n			wants.html # show.html.erb\n			wants.xml  { render :xml => @$1 }\n		end\n	end${3}\nsnippet defupdate\n	def update\n		@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\n		respond_to do |wants|\n			if @$1.update_attributes(params[:$1])\n				flash[:notice] = \'$2 was successfully updated.\'\n				wants.html { redirect_to(@$1) }\n				wants.xml  { head :ok }\n			else\n				wants.html { render :action => "edit" }\n				wants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\n			end\n		end\n	end${3}\nsnippet flash\n	flash[:${1:notice}] = "${2}"\nsnippet habtm\n	has_and_belongs_to_many :${1:object}, :join_table => "${2:table_name}", :foreign_key => "${3}_id"${4}\nsnippet hm\n	has_many :${1:object}\nsnippet hmd\n	has_many :${1:other}s, :class_name => "${2:$1}", :foreign_key => "${3:$1}_id", :dependent => :destroy${4}\nsnippet hmt\n	has_many :${1:object}, :through => :${2:object}\nsnippet ho\n	has_one :${1:object}\nsnippet i18\n	I18n.t(\'${1:type.key}\')${2}\nsnippet ist\n	<%= image_submit_tag("${1:agree.png}", :id => "${2:id}"${3} %>\nsnippet log\n	Rails.logger.${1:debug} ${2}\nsnippet log2\n	RAILS_DEFAULT_LOGGER.${1:debug} ${2}\nsnippet logd\n	logger.debug { "${1:message}" }${2}\nsnippet loge\n	logger.error { "${1:message}" }${2}\nsnippet logf\n	logger.fatal { "${1:message}" }${2}\nsnippet logi\n	logger.info { "${1:message}" }${2}\nsnippet logw\n	logger.warn { "${1:message}" }${2}\nsnippet mapc\n	${1:map}.${2:connect} \'${3:controller/:action/:id}\'\nsnippet mapca\n	${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}"${5}\nsnippet mapr\n	${1:map}.resource :${2:resource}\nsnippet maprs\n	${1:map}.resources :${2:resource}\nsnippet mapwo\n	${1:map}.with_options :${2:controller} => \'${3:thing}\' do |$3|\n		${4}\n	end\nsnippet mbs\n	before_save :${1:method}\nsnippet mcht\n	change_table :${1:table_name} do |t|\n		${2}\n	end\nsnippet mp\n	map(&:${1:id})\nsnippet mrw\n	mattr_accessor :${1:attr_names}\nsnippet oa\n	order("${1:field}")\nsnippet od\n	order("${1:field} DESC")\nsnippet pa\n	params[:${1:id}]${2}\nsnippet ra\n	render :action => "${1:action}"\nsnippet ral\n	render :action => "${1:action}", :layout => "${2:layoutname}"\nsnippet rest\n	respond_to do |wants|\n		wants.${1:html} { ${2} }\n	end\nsnippet rf\n	render :file => "${1:filepath}"\nsnippet rfu\n	render :file => "${1:filepath}", :use_full_path => ${2:false}\nsnippet ri\n	render :inline => "${1:<%= \'hello\' %>}"\nsnippet ril\n	render :inline => "${1:<%= \'hello\' %>}", :locals => { ${2::name} => "${3:value}"${4} }\nsnippet rit\n	render :inline => "${1:<%= \'hello\' %>}", :type => ${2::rxml}\nsnippet rjson\n	render :json => ${1:text to render}\nsnippet rl\n	render :layout => "${1:layoutname}"\nsnippet rn\n	render :nothing => ${1:true}\nsnippet rns\n	render :nothing => ${1:true}, :status => ${2:401}\nsnippet rp\n	render :partial => "${1:item}"\nsnippet rpc\n	render :partial => "${1:item}", :collection => ${2:@$1s}\nsnippet rpl\n	render :partial => "${1:item}", :locals => { :${2:$1} => ${3:@$1}\nsnippet rpo\n	render :partial => "${1:item}", :object => ${2:@$1}\nsnippet rps\n	render :partial => "${1:item}", :status => ${2:500}\nsnippet rt\n	render :text => "${1:text to render}"\nsnippet rtl\n	render :text => "${1:text to render}", :layout => "${2:layoutname}"\nsnippet rtlt\n	render :text => "${1:text to render}", :layout => ${2:true}\nsnippet rts\n	render :text => "${1:text to render}", :status => ${2:401}\nsnippet ru\n	render :update do |${1:page}|\n		$1.${2}\n	end\nsnippet rxml\n	render :xml => ${1:text to render}\nsnippet sc\n	scope :${1:name}, :where(:@${2:field} => ${3:value})\nsnippet sl\n	scope :${1:name}, lambda do |${2:value}|\n		where("${3:field = ?}", ${4:bind var})\n	end\nsnippet sha1\n	Digest::SHA1.hexdigest(${1:string})\nsnippet sweeper\n	class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\n		observe $1\n\n		def after_save(${2:model_class_name})\n			expire_cache($2)\n		end\n\n		def after_destroy($2)\n			expire_cache($2)\n		end\n\n		def expire_cache($2)\n			expire_page\n		end\n	end\nsnippet tcb\n	t.boolean :${1:title}\n	${2}\nsnippet tcbi\n	t.binary :${1:title}, :limit => ${2:2}.megabytes\n	${3}\nsnippet tcd\n	t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n	${4}\nsnippet tcda\n	t.date :${1:title}\n	${2}\nsnippet tcdt\n	t.datetime :${1:title}\n	${2}\nsnippet tcf\n	t.float :${1:title}\n	${2}\nsnippet tch\n	t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n	${5}\nsnippet tci\n	t.integer :${1:title}\n	${2}\nsnippet tcl\n	t.integer :lock_version, :null => false, :default => 0\n	${1}\nsnippet tcr\n	t.references :${1:taggable}, :polymorphic => { :default => \'${2:Photo}\' }\n	${3}\nsnippet tcs\n	t.string :${1:title}\n	${2}\nsnippet tct\n	t.text :${1:title}\n	${2}\nsnippet tcti\n	t.time :${1:title}\n	${2}\nsnippet tcts\n	t.timestamp :${1:title}\n	${2}\nsnippet tctss\n	t.timestamps\n	${1}\nsnippet va\n	validates_associated :${1:attribute}\nsnippet vao\n	validates_acceptance_of :${1:terms}\nsnippet vc\n	validates_confirmation_of :${1:attribute}\nsnippet ve\n	validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\nsnippet vf\n	validates_format_of :${1:attribute}, :with => /${2:regex}/\nsnippet vi\n	validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\nsnippet vl\n	validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\nsnippet vn\n	validates_numericality_of :${1:attribute}\nsnippet vpo\n	validates_presence_of :${1:attribute}\nsnippet vu\n	validates_uniqueness_of :${1:attribute}\nsnippet wants\n	wants.${1:js|xml|html} { ${2} }\nsnippet wc\n	where(${1:"conditions"}${2:, bind_var})\nsnippet wh\n	where(${1:field} => ${2:value})\nsnippet xdelete\n	xhr :delete, :${1:destroy}, :id => ${2:1}${3}\nsnippet xget\n	xhr :get, :${1:show}, :id => ${2:1}${3}\nsnippet xpost\n	xhr :post, :${1:create}, :${2:object} => { ${3} }\nsnippet xput\n	xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\nsnippet test\n	test "should ${1:do something}" do\n		${2}\n	end\n#migrations\nsnippet mac\n	add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\nsnippet mrc\n	remove_column :${1:table_name}, :${2:column_name}\nsnippet mrnc\n	rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\nsnippet mcc\n	change_column :${1:table}, :${2:column}, :${3:type}\nsnippet mccc\n	t.column :${1:title}, :${2:string}\nsnippet mct\n	create_table :${1:table_name} do |t|\n		t.column :${2:name}, :${3:type}\n	end\nsnippet migration\n	class ${1:class_name} < ActiveRecord::Migration\n		def self.up\n			${2}\n		end\n\n		def self.down\n		end\n	end\n\nsnippet trc\n	t.remove :${1:column}\nsnippet tre\n	t.rename :${1:old_column_name}, :${2:new_column_name}\n	${3}\nsnippet tref\n	t.references :${1:model}\n\n#rspec\nsnippet it\n	it "${1:spec_name}" do\n		${2}\n	end\nsnippet itp\n	it "${1:spec_name}"\n	${2}\nsnippet desc\n	describe ${1:class_name} do\n		${2}\n	end\nsnippet cont\n	context "${1:message}" do\n		${2}\n	end\nsnippet bef\n	before :${1:each} do\n		${2}\n	end\nsnippet aft\n	after :${1:each} do\n		${2}\n	end\n',t.scope="ruby"})
\ No newline at end of file
diff --git a/js/ace/snippets/rust.js b/js/ace/snippets/rust.js
new file mode 100644
index 0000000..d30d87e
--- /dev/null
+++ b/js/ace/snippets/rust.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rust",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rust"})
\ No newline at end of file
diff --git a/js/ace/snippets/sass.js b/js/ace/snippets/sass.js
new file mode 100644
index 0000000..ccfde2c
--- /dev/null
+++ b/js/ace/snippets/sass.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sass",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sass"})
\ No newline at end of file
diff --git a/js/ace/snippets/scad.js b/js/ace/snippets/scad.js
new file mode 100644
index 0000000..9a4fcb0
--- /dev/null
+++ b/js/ace/snippets/scad.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scad",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scad"})
\ No newline at end of file
diff --git a/js/ace/snippets/scala.js b/js/ace/snippets/scala.js
new file mode 100644
index 0000000..dbbc7f4
--- /dev/null
+++ b/js/ace/snippets/scala.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scala",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scala"})
\ No newline at end of file
diff --git a/js/ace/snippets/scheme.js b/js/ace/snippets/scheme.js
new file mode 100644
index 0000000..d8770f2
--- /dev/null
+++ b/js/ace/snippets/scheme.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scheme",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scheme"})
\ No newline at end of file
diff --git a/js/ace/snippets/scss.js b/js/ace/snippets/scss.js
new file mode 100644
index 0000000..0526c69
--- /dev/null
+++ b/js/ace/snippets/scss.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scss",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scss"})
\ No newline at end of file
diff --git a/js/ace/snippets/sh.js b/js/ace/snippets/sh.js
new file mode 100644
index 0000000..3871076
--- /dev/null
+++ b/js/ace/snippets/sh.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sh",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\nsnippet #!\n	#!/usr/bin/env bash\n	\nsnippet if\n	if [[ ${1:condition} ]]; then\n		${2:#statements}\n	fi\nsnippet elif\n	elif [[ ${1:condition} ]]; then\n		${2:#statements}\nsnippet for\n	for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n		${3:#statements}\n	done\nsnippet fori\n	for ${1:needle} in ${2:haystack} ; do\n		${3:#statements}\n	done\nsnippet wh\n	while [[ ${1:condition} ]]; do\n		${2:#statements}\n	done\nsnippet until\n	until [[ ${1:condition} ]]; do\n		${2:#statements}\n	done\nsnippet case\n	case ${1:word} in\n		${2:pattern})\n			${3};;\n	esac\nsnippet go \n	while getopts \'${1:o}\' ${2:opts} \n	do \n		case $$2 in\n		${3:o0})\n			${4:#staments};;\n		esac\n	done\n# Set SCRIPT_DIR variable to directory script is located.\nsnippet sdir\n	SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"\n# getopt\nsnippet getopt\n	__ScriptVersion="${1:version}"\n\n	#===  FUNCTION  ================================================================\n	#         NAME:  usage\n	#  DESCRIPTION:  Display usage information.\n	#===============================================================================\n	function usage ()\n	{\n			cat <<- EOT\n\n	  Usage :  $${0:0} [options] [--] \n\n	  Options: \n	  -h|help       Display this message\n	  -v|version    Display script version\n\n			EOT\n	}    # ----------  end of function usage  ----------\n\n	#-----------------------------------------------------------------------\n	#  Handle command line arguments\n	#-----------------------------------------------------------------------\n\n	while getopts ":hv" opt\n	do\n	  case $opt in\n\n		h|help     )  usage; exit 0   ;;\n\n		v|version  )  echo "$${0:0} -- Version $__ScriptVersion"; exit 0   ;;\n\n		\\? )  echo -e "\\n  Option does not exist : $OPTARG\\n"\n			  usage; exit 1   ;;\n\n	  esac    # --- end of case ---\n	done\n	shift $(($OPTIND-1))\n\n',t.scope="sh"})
\ No newline at end of file
diff --git a/js/ace/snippets/sjs.js b/js/ace/snippets/sjs.js
new file mode 100644
index 0000000..8023e0d
--- /dev/null
+++ b/js/ace/snippets/sjs.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sjs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sjs"})
\ No newline at end of file
diff --git a/js/ace/snippets/smarty.js b/js/ace/snippets/smarty.js
new file mode 100644
index 0000000..5dc13d7
--- /dev/null
+++ b/js/ace/snippets/smarty.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/smarty",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="smarty"})
\ No newline at end of file
diff --git a/js/ace/snippets/snippets.js b/js/ace/snippets/snippets.js
new file mode 100644
index 0000000..8f2d037
--- /dev/null
+++ b/js/ace/snippets/snippets.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/snippets",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# snippets for making snippets :)\nsnippet snip\n	snippet ${1:trigger}\n		${2}\nsnippet msnip\n	snippet ${1:trigger} ${2:description}\n		${3}\nsnippet v\n	{VISUAL}\n",t.scope="snippets"})
\ No newline at end of file
diff --git a/js/ace/snippets/soy_template.js b/js/ace/snippets/soy_template.js
new file mode 100644
index 0000000..710cee6
--- /dev/null
+++ b/js/ace/snippets/soy_template.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/soy_template",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="soy_template"})
\ No newline at end of file
diff --git a/js/ace/snippets/space.js b/js/ace/snippets/space.js
new file mode 100644
index 0000000..8bc916b
--- /dev/null
+++ b/js/ace/snippets/space.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/space",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="space"})
\ No newline at end of file
diff --git a/js/ace/snippets/sql.js b/js/ace/snippets/sql.js
new file mode 100644
index 0000000..1bacce0
--- /dev/null
+++ b/js/ace/snippets/sql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet tbl\n	create table ${1:table} (\n		${2:columns}\n	);\nsnippet col\n	${1:name}	${2:type}	${3:default ''}	${4:not null}\nsnippet ccol\n	${1:name}	varchar2(${2:size})	${3:default ''}	${4:not null}\nsnippet ncol\n	${1:name}	number	${3:default 0}	${4:not null}\nsnippet dcol\n	${1:name}	date	${3:default sysdate}	${4:not null}\nsnippet ind\n	create index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n	create unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n	comment on table ${1:table} is '${2:comment}';\nsnippet colcom\n	comment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n	alter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n	create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n	select * from ${1:table}\n",t.scope="sql"})
\ No newline at end of file
diff --git a/js/ace/snippets/stylus.js b/js/ace/snippets/stylus.js
new file mode 100644
index 0000000..1da9d77
--- /dev/null
+++ b/js/ace/snippets/stylus.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/stylus",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="stylus"})
\ No newline at end of file
diff --git a/js/ace/snippets/svg.js b/js/ace/snippets/svg.js
new file mode 100644
index 0000000..26d9b1a
--- /dev/null
+++ b/js/ace/snippets/svg.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/svg",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="svg"})
\ No newline at end of file
diff --git a/js/ace/snippets/tcl.js b/js/ace/snippets/tcl.js
new file mode 100644
index 0000000..69ccc25
--- /dev/null
+++ b/js/ace/snippets/tcl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/tcl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# #!/usr/bin/env tclsh\nsnippet #!\n	#!/usr/bin/env tclsh\n	\n# Process\nsnippet pro\n	proc ${1:function_name} {${2:args}} {\n		${3:#body ...}\n	}\n#xif\nsnippet xif\n	${1:expr}? ${2:true} : ${3:false}\n# Conditional\nsnippet if\n	if {${1}} {\n		${2:# body...}\n	}\n# Conditional if..else\nsnippet ife\n	if {${1}} {\n		${2:# body...}\n	} else {\n		${3:# else...}\n	}\n# Conditional if..elsif..else\nsnippet ifee\n	if {${1}} {\n		${2:# body...}\n	} elseif {${3}} {\n		${4:# elsif...}\n	} else {\n		${5:# else...}\n	}\n# If catch then\nsnippet ifc\n	if { [catch {${1:#do something...}} ${2:err}] } {\n		${3:# handle failure...}\n	}\n# Catch\nsnippet catch\n	catch {${1}} ${2:err} ${3:options}\n# While Loop\nsnippet wh\n	while {${1}} {\n		${2:# body...}\n	}\n# For Loop\nsnippet for\n	for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n		${4:# body...}\n	}\n# Foreach Loop\nsnippet fore\n	foreach ${1:x} {${2:#list}} {\n		${3:# body...}\n	}\n# after ms script...\nsnippet af\n	after ${1:ms} ${2:#do something}\n# after cancel id\nsnippet afc\n	after cancel ${1:id or script}\n# after idle\nsnippet afi\n	after idle ${1:script}\n# after info id\nsnippet afin\n	after info ${1:id}\n# Expr\nsnippet exp\n	expr {${1:#expression here}}\n# Switch\nsnippet sw\n	switch ${1:var} {\n		${3:pattern 1} {\n			${4:#do something}\n		}\n		default {\n			${2:#do something}\n		}\n	}\n# Case\nsnippet ca\n	${1:pattern} {\n		${2:#do something}\n	}${3}\n# Namespace eval\nsnippet ns\n	namespace eval ${1:path} {${2:#script...}}\n# Namespace current\nsnippet nsc\n	namespace current\n",t.scope="tcl"})
\ No newline at end of file
diff --git a/js/ace/snippets/tex.js b/js/ace/snippets/tex.js
new file mode 100644
index 0000000..99d058e
--- /dev/null
+++ b/js/ace/snippets/tex.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/tex",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="#PREAMBLE\n#newcommand\nsnippet nc\n	\\newcommand{\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\n#usepackage\nsnippet up\n	\\usepackage[${1:[options}]{${2:package}}\n#newunicodechar\nsnippet nuc\n	\\newunicodechar{${1}}{${2:\\ensuremath}${3:tex-substitute}}}\n#DeclareMathOperator\nsnippet dmo\n	\\DeclareMathOperator{${1}}{${2}}\n\n#DOCUMENT\n# \\begin{}...\\end{}\nsnippet begin\n	\\begin{${1:env}}\n		${2}\n	\\end{$1}\n# Tabular\nsnippet tab\n	\\begin{${1:tabular}}{${2:c}}\n	${3}\n	\\end{$1}\nsnippet thm\n	\\begin[${1:author}]{${2:thm}}\n	${3}\n	\\end{$1}\nsnippet center\n	\\begin{center}\n		${1}\n	\\end{center}\n# Align(ed)\nsnippet ali\n	\\begin{align${1:ed}}\n		${2}\n	\\end{align$1}\n# Gather(ed)\nsnippet gat\n	\\begin{gather${1:ed}}\n		${2}\n	\\end{gather$1}\n# Equation\nsnippet eq\n	\\begin{equation}\n		${1}\n	\\end{equation}\n# Equation\nsnippet eq*\n	\\begin{equation*}\n		${1}\n	\\end{equation*}\n# Unnumbered Equation\nsnippet \\\n	\\[\n		${1}\n	\\]\n# Enumerate\nsnippet enum\n	\\begin{enumerate}\n		\\item ${1}\n	\\end{enumerate}\n# Itemize\nsnippet itemize\n	\\begin{itemize}\n		\\item ${1}\n	\\end{itemize}\n# Description\nsnippet desc\n	\\begin{description}\n		\\item[${1}] ${2}\n	\\end{description}\n# Matrix\nsnippet mat\n	\\begin{${1:p/b/v/V/B/small}matrix}\n		${2}\n	\\end{$1matrix}\n# Cases\nsnippet cas\n	\\begin{cases}\n		${1:equation}, &\\text{ if }${2:case}\\\\\n		${3}\n	\\end{cases}\n# Split\nsnippet spl\n	\\begin{split}\n		${1}\n	\\end{split}\n# Part\nsnippet part\n	\\part{${1:part name}} % (fold)\n	\\label{prt:${2:$1}}\n	${3}\n	% part $2 (end)\n# Chapter\nsnippet cha\n	\\chapter{${1:chapter name}}\n	\\label{cha:${2:$1}}\n	${3}\n# Section\nsnippet sec\n	\\section{${1:section name}}\n	\\label{sec:${2:$1}}\n	${3}\n# Sub Section\nsnippet sub\n	\\subsection{${1:subsection name}}\n	\\label{sub:${2:$1}}\n	${3}\n# Sub Sub Section\nsnippet subs\n	\\subsubsection{${1:subsubsection name}}\n	\\label{ssub:${2:$1}}\n	${3}\n# Paragraph\nsnippet par\n	\\paragraph{${1:paragraph name}}\n	\\label{par:${2:$1}}\n	${3}\n# Sub Paragraph\nsnippet subp\n	\\subparagraph{${1:subparagraph name}}\n	\\label{subp:${2:$1}}\n	${3}\n#References\nsnippet itd\n	\\item[${1:description}] ${2:item}\nsnippet figure\n	${1:Figure}~\\ref{${2:fig:}}${3}\nsnippet table\n	${1:Table}~\\ref{${2:tab:}}${3}\nsnippet listing\n	${1:Listing}~\\ref{${2:list}}${3}\nsnippet section\n	${1:Section}~\\ref{${2:sec:}}${3}\nsnippet page\n	${1:page}~\\pageref{${2}}${3}\nsnippet index\n	\\index{${1:index}}${2}\n#Citations\nsnippet cite\n	\\cite[${1}]{${2}}${3}\nsnippet fcite\n	\\footcite[${1}]{${2}}${3}\n#Formating text: italic, bold, underline, small capital, emphase ..\nsnippet it\n	\\textit{${1:text}}\nsnippet bf\n	\\textbf{${1:text}}\nsnippet under\n	\\underline{${1:text}}\nsnippet emp\n	\\emph{${1:text}}\nsnippet sc\n	\\textsc{${1:text}}\n#Choosing font\nsnippet sf\n	\\textsf{${1:text}}\nsnippet rm\n	\\textrm{${1:text}}\nsnippet tt\n	\\texttt{${1:text}}\n#misc\nsnippet ft\n	\\footnote{${1:text}}\nsnippet fig\n	\\begin{figure}\n	\\begin{center}\n	    \\includegraphics[scale=${1}]{Figures/${2}}\n	\\end{center}\n	\\caption{${3}}\n	\\label{fig:${4}}\n	\\end{figure}\nsnippet tikz\n	\\begin{figure}\n	\\begin{center}\n	\\begin{tikzpicture}[scale=${1:1}]\n		${2}\n	\\end{tikzpicture}\n	\\end{center}\n	\\caption{${3}}\n	\\label{fig:${4}}\n	\\end{figure}\n#math\nsnippet stackrel\n	\\stackrel{${1:above}}{${2:below}} ${3}\nsnippet frac\n	\\frac{${1:num}}{${2:denom}}\nsnippet sum\n	\\sum^{${1:n}}_{${2:i=1}}{${3}}",t.scope="tex"})
\ No newline at end of file
diff --git a/js/ace/snippets/text.js b/js/ace/snippets/text.js
new file mode 100644
index 0000000..233803d
--- /dev/null
+++ b/js/ace/snippets/text.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="text"})
\ No newline at end of file
diff --git a/js/ace/snippets/textile.js b/js/ace/snippets/textile.js
new file mode 100644
index 0000000..cf4d5d5
--- /dev/null
+++ b/js/ace/snippets/textile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/textile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Jekyll post header\nsnippet header\n	---\n	title: ${1:title}\n	layout: post\n	date: ${2:date} ${3:hour:minute:second} -05:00\n	---\n\n# Image\nsnippet img\n	!${1:url}(${2:title}):${3:link}!\n\n# Table\nsnippet |\n	|${1}|${2}\n\n# Link\nsnippet link\n	"${1:link text}":${2:url}\n\n# Acronym\nsnippet (\n	(${1:Expand acronym})${2}\n\n# Footnote\nsnippet fn\n	[${1:ref number}] ${3}\n\n	fn$1. ${2:footnote}\n	\n',t.scope="textile"})
\ No newline at end of file
diff --git a/js/ace/snippets/toml.js b/js/ace/snippets/toml.js
new file mode 100644
index 0000000..8c3dbef
--- /dev/null
+++ b/js/ace/snippets/toml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/toml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="toml"})
\ No newline at end of file
diff --git a/js/ace/snippets/twig.js b/js/ace/snippets/twig.js
new file mode 100644
index 0000000..9c21046
--- /dev/null
+++ b/js/ace/snippets/twig.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/twig",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="twig"})
\ No newline at end of file
diff --git a/js/ace/snippets/typescript.js b/js/ace/snippets/typescript.js
new file mode 100644
index 0000000..5e6425e
--- /dev/null
+++ b/js/ace/snippets/typescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/typescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="typescript"})
\ No newline at end of file
diff --git a/js/ace/snippets/vala.js b/js/ace/snippets/vala.js
new file mode 100644
index 0000000..89927bc
--- /dev/null
+++ b/js/ace/snippets/vala.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vala",["require","exports","module"],function(e,t,n){"use strict";t.snippets=[{content:"case ${1:condition}:\n	$0\n	break;\n",name:"case",scope:"vala",tabTrigger:"case"},{content:"/**\n * ${6}\n */\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\n\n	/**\n	 * ${7}\n	 */\n	public ${2}(${4}) {\n		${5}\n	}\n\n	$0\n}",name:"class",scope:"vala",tabTrigger:"class"},{content:"(${1}) => {\n	${0}\n}\n",name:"closure",scope:"vala",tabTrigger:"=>"},{content:"/*\n * $0\n */",name:"Comment (multiline)",scope:"vala",tabTrigger:"/*"},{content:"Console.WriteLine($1);\n$0",name:"Console.WriteLine (writeline)",scope:"vala",tabTrigger:"writeline"},{content:'[DBus(name = "$0")]',name:"DBus annotation",scope:"vala",tabTrigger:"[DBus"},{content:"delegate ${1:void} ${2:DelegateName}($0);",name:"delegate",scope:"vala",tabTrigger:"delegate"},{content:"do {\n	$0\n} while ($1);\n",name:"do while",scope:"vala",tabTrigger:"dowhile"},{content:"/**\n * $0\n */",name:"DocBlock",scope:"vala",tabTrigger:"/**"},{content:"else if ($1) {\n	$0\n}\n",name:"else if (elseif)",scope:"vala",tabTrigger:"elseif"},{content:"else {\n	$0\n}",name:"else",scope:"vala",tabTrigger:"else"},{content:"enum {$1:EnumName} {\n	$0\n}",name:"enum",scope:"vala",tabTrigger:"enum"},{content:"public errordomain ${1:Error} {\n	$0\n}",name:"error domain",scope:"vala",tabTrigger:"errordomain"},{content:"for ($1;$2;$3) {\n	$0\n}",name:"for",scope:"vala",tabTrigger:"for"},{content:"foreach ($1 in $2) {\n	$0\n}",name:"foreach",scope:"vala",tabTrigger:"foreach"},{content:"Gee.ArrayList<${1:G}>($0);",name:"Gee.ArrayList",scope:"vala",tabTrigger:"ArrayList"},{content:"Gee.HashMap<${1:K},${2:V}>($0);",name:"Gee.HashMap",scope:"vala",tabTrigger:"HashMap"},{content:"Gee.HashSet<${1:G}>($0);",name:"Gee.HashSet",scope:"vala",tabTrigger:"HashSet"},{content:"if ($1) {\n	$0\n}",name:"if",scope:"vala",tabTrigger:"if"},{content:"interface ${1:InterfaceName}{$2: : SuperInterface} {\n	$0\n}",name:"interface",scope:"vala",tabTrigger:"interface"},{content:"public static int main(string [] argv) {\n	${0}\n	return 0;\n}",name:"Main function",scope:"vala",tabTrigger:"main"},{content:"namespace $1 {\n	$0\n}\n",name:"namespace (ns)",scope:"vala",tabTrigger:"ns"},{content:"stdout.printf($0);",name:"printf",scope:"vala",tabTrigger:"printf"},{content:"${1:public} ${2:Type} ${3:Name} {\n	set {\n		$0\n	}\n	get {\n\n	}\n}",name:"property (prop)",scope:"vala",tabTrigger:"prop"},{content:"${1:public} ${2:Type} ${3:Name} {\n	get {\n		$0\n	}\n}",name:"read-only property (roprop)",scope:"vala",tabTrigger:"roprop"},{content:'@"${1:\\$var}"',name:"String template (@)",scope:"vala",tabTrigger:"@"},{content:"struct ${1:StructName} {\n	$0\n}",name:"struct",scope:"vala",tabTrigger:"struct"},{content:"switch ($1) {\n	$0\n}",name:"switch",scope:"vala",tabTrigger:"switch"},{content:"try {\n	$2\n} catch (${1:Error} e) {\n	$0\n}",name:"try/catch",scope:"vala",tabTrigger:"try"},{content:'"""$0""";',name:'Verbatim string (""")',scope:"vala",tabTrigger:"verbatim"},{content:"while ($1) {\n	$0\n}",name:"while",scope:"vala",tabTrigger:"while"}],t.scope=""})
\ No newline at end of file
diff --git a/js/ace/snippets/vbscript.js b/js/ace/snippets/vbscript.js
new file mode 100644
index 0000000..1cf30b9
--- /dev/null
+++ b/js/ace/snippets/vbscript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vbscript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vbscript"})
\ No newline at end of file
diff --git a/js/ace/snippets/velocity.js b/js/ace/snippets/velocity.js
new file mode 100644
index 0000000..9ab7789
--- /dev/null
+++ b/js/ace/snippets/velocity.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/velocity",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# macro\nsnippet #macro\n	#macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n		${3:## macro code}\n	#end\n# foreach\nsnippet #foreach\n	#foreach ( ${1:\\$item} in ${2:\\$collection} )\n		${3:## foreach code}\n	#end\n# if\nsnippet #if\n	#if ( ${1:true} )\n		${0}\n	#end\n# if ... else\nsnippet #ife\n	#if ( ${1:true} )\n		${2}\n	#else\n		${0}\n	#end\n#import\nsnippet #import\n	#import ( "${1:path/to/velocity/format}" )\n# set\nsnippet #set\n	#set ( $${1:var} = ${0} )\n',t.scope="velocity",t.includeScopes=["html","javascript","css"]})
\ No newline at end of file
diff --git a/js/ace/snippets/verilog.js b/js/ace/snippets/verilog.js
new file mode 100644
index 0000000..2c6f906
--- /dev/null
+++ b/js/ace/snippets/verilog.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/verilog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="verilog"})
\ No newline at end of file
diff --git a/js/ace/snippets/vhdl.js b/js/ace/snippets/vhdl.js
new file mode 100644
index 0000000..c8d6fb9
--- /dev/null
+++ b/js/ace/snippets/vhdl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vhdl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vhdl"})
\ No newline at end of file
diff --git a/js/ace/snippets/xml.js b/js/ace/snippets/xml.js
new file mode 100644
index 0000000..e1c1b39
--- /dev/null
+++ b/js/ace/snippets/xml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/xml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="xml"})
\ No newline at end of file
diff --git a/js/ace/snippets/xquery.js b/js/ace/snippets/xquery.js
new file mode 100644
index 0000000..ea0f7ed
--- /dev/null
+++ b/js/ace/snippets/xquery.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/xquery",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n	for $${1:item} in ${2:expr}\nsnippet return\n	return ${1:expr}\nsnippet import\n	import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n	some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n	every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n	if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n	switch(${1:"foo"})\n	case ${2:"foo"}\n	return ${3:true}\n	default return ${4:false}\nsnippet try\n	try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet tumbling\n	for tumbling window $${1:varname} in ${2:expr}\n	start at $${3:start} when ${4:expr}\n	end at $${5:end} when ${6:expr}\n	return ${7:expr}\nsnippet sliding\n	for sliding window $${1:varname} in ${2:expr}\n	start at $${3:start} when ${4:expr}\n	end at $${5:end} when ${6:expr}\n	return ${7:expr}\nsnippet let\n	let $${1:varname} := ${2:expr}\nsnippet group\n	group by $${1:varname} := ${2:expr}\nsnippet order\n	order by ${1:expr} ${2:descending}\nsnippet stable\n	stable order by ${1:expr}\nsnippet count\n	count $${1:varname}\nsnippet ordered\n	ordered { ${1:expr} }\nsnippet unordered\n	unordered { ${1:expr} }\nsnippet treat \n	treat as ${1:expr}\nsnippet castable\n	castable as ${1:atomicType}\nsnippet cast\n	cast as ${1:atomicType}\nsnippet typeswitch\n	typeswitch(${1:expr})\n	case ${2:type}  return ${3:expr}\n	default return ${4:expr}\nsnippet var\n	declare variable $${1:varname} := ${2:expr};\nsnippet fn\n	declare function ${1:ns}:${2:name}(){\n	${3:expr}\n	};\nsnippet module\n	module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="xquery"})
\ No newline at end of file
diff --git a/js/ace/snippets/yaml.js b/js/ace/snippets/yaml.js
new file mode 100644
index 0000000..80b5d3b
--- /dev/null
+++ b/js/ace/snippets/yaml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/yaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="yaml"})
\ No newline at end of file
diff --git a/js/ace/theme-ambiance.js b/js/ace/theme-ambiance.js
new file mode 100644
index 0000000..e7c0b6b
--- /dev/null
+++ b/js/ace/theme-ambiance.js
@@ -0,0 +1 @@
+ace.define("ace/theme/ambiance",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-ambiance",t.cssText=".ace-ambiance .ace_gutter {background-color: #3d3d3d;background-image: -moz-linear-gradient(left, #3D3D3D, #333);background-image: -ms-linear-gradient(left, #3D3D3D, #333);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));background-image: -webkit-linear-gradient(left, #3D3D3D, #333);background-image: -o-linear-gradient(left, #3D3D3D, #333);background-image: linear-gradient(left, #3D3D3D, #333);background-repeat: repeat-x;border-right: 1px solid #4d4d4d;text-shadow: 0px 1px 1px #4d4d4d;color: #222;}.ace-ambiance .ace_gutter-layer {background: repeat left top;}.ace-ambiance .ace_gutter-active-line {background-color: #3F3F3F;}.ace-ambiance .ace_fold-widget {text-align: center;}.ace-ambiance .ace_fold-widget:hover {color: #777;}.ace-ambiance .ace_fold-widget.ace_start,.ace-ambiance .ace_fold-widget.ace_end,.ace-ambiance .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-ambiance .ace_fold-widget.ace_start:after {content: '\u25be'}.ace-ambiance .ace_fold-widget.ace_end:after {content: '\u25b4'}.ace-ambiance .ace_fold-widget.ace_closed:after {content: '\u2023'}.ace-ambiance .ace_print-margin {border-left: 1px dotted #2D2D2D;right: 0;background: #262626;}.ace-ambiance .ace_scroller {-webkit-box-shadow: inset 0 0 10px black;-moz-box-shadow: inset 0 0 10px black;-o-box-shadow: inset 0 0 10px black;box-shadow: inset 0 0 10px black;}.ace-ambiance {color: #E6E1DC;background-color: #202020;}.ace-ambiance .ace_cursor {border-left: 1px solid #7991E8;}.ace-ambiance .ace_overwrite-cursors .ace_cursor {border: 1px solid #FFE300;background: #766B13;}.ace-ambiance.normal-mode .ace_cursor-layer {z-index: 0;}.ace-ambiance .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20);}.ace-ambiance .ace_marker-layer .ace_selected-word {border-radius: 4px;border: 8px solid #3f475d;box-shadow: 0 0 4px black;}.ace-ambiance .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-ambiance .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25);}.ace-ambiance .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031);}.ace-ambiance .ace_invisible {color: #333;}.ace-ambiance .ace_paren {color: #24C2C7;}.ace-ambiance .ace_keyword {color: #cda869;}.ace-ambiance .ace_keyword.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_punctuation.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_identifier {}.ace-ambiance .ace-statement {color: #cda869;}.ace-ambiance .ace_constant {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_language {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_library {}.ace-ambiance .ace_constant.ace_numeric {color: #78CF8A;}.ace-ambiance .ace_invalid {text-decoration: underline;}.ace-ambiance .ace_invalid.ace_illegal {color:#F8F8F8;background-color: rgba(86, 45, 86, 0.75);}.ace-ambiance .ace_invalid,.ace-ambiance .ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1;}.ace-ambiance .ace_support {color: #9B859D;}.ace-ambiance .ace_support.ace_function {color: #DAD085;}.ace-ambiance .ace_function.ace_buildin {color: #9b859d;}.ace-ambiance .ace_string {color: #8f9d6a;}.ace-ambiance .ace_string.ace_regexp {color: #DAD085;}.ace-ambiance .ace_comment {font-style: italic;color: #555;}.ace-ambiance .ace_comment.ace_doc {}.ace-ambiance .ace_comment.ace_doc.ace_tag {color: #666;font-style: normal;}.ace-ambiance .ace_definition,.ace-ambiance .ace_type {color: #aac6e3;}.ace-ambiance .ace_variable {color: #9999cc;}.ace-ambiance .ace_variable.ace_language {color: #9b859d;}.ace-ambiance .ace_xml-pe {color: #494949;}.ace-ambiance .ace_gutter-layer,.ace-ambiance .ace_text-layer {background-image: url(\"data:image/png;base64,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\");}.ace-ambiance .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-chaos.js b/js/ace/theme-chaos.js
new file mode 100644
index 0000000..fa5b75a
--- /dev/null
+++ b/js/ace/theme-chaos.js
@@ -0,0 +1 @@
+ace.define("ace/theme/chaos",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-chaos",t.cssText=".ace-chaos .ace_gutter {background: #141414;color: #595959;border-right: 1px solid #282828;}.ace-chaos .ace_gutter-cell.ace_warning {background-image: none;background: #FC0;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_gutter-cell.ace_error {background-position: -6px center;background-image: none;background: #F10;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_print-margin {border-left: 1px solid #555;right: 0;background: #1D1D1D;}.ace-chaos {background-color: #161616;color: #E6E1DC;}.ace-chaos .ace_cursor {border-left: 2px solid #FFFFFF;}.ace-chaos .ace_cursor.ace_overwrite {border-left: 0px;border-bottom: 1px solid #FFFFFF;}.ace-chaos .ace_marker-layer .ace_selection {background: #494836;}.ace-chaos .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-chaos .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #FCE94F;}.ace-chaos .ace_marker-layer .ace_active-line {background: #333;}.ace-chaos .ace_gutter-active-line {background-color: #222;}.ace-chaos .ace_invisible {color: #404040;}.ace-chaos .ace_keyword {color:#00698F;}.ace-chaos .ace_keyword.ace_operator {color:#FF308F;}.ace-chaos .ace_constant {color:#1EDAFB;}.ace-chaos .ace_constant.ace_language {color:#FDC251;}.ace-chaos .ace_constant.ace_library {color:#8DFF0A;}.ace-chaos .ace_constant.ace_numeric {color:#58C554;}.ace-chaos .ace_invalid {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_invalid.ace_deprecated {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_support {color: #999;}.ace-chaos .ace_support.ace_function {color:#00AEEF;}.ace-chaos .ace_function {color:#00AEEF;}.ace-chaos .ace_string {color:#58C554;}.ace-chaos .ace_comment {color:#555;font-style:italic;padding-bottom: 0px;}.ace-chaos .ace_variable {color:#997744;}.ace-chaos .ace_meta.ace_tag {color:#BE53E6;}.ace-chaos .ace_entity.ace_other.ace_attribute-name {color:#FFFF89;}.ace-chaos .ace_markup.ace_underline {text-decoration: underline;}.ace-chaos .ace_fold-widget {text-align: center;}.ace-chaos .ace_fold-widget:hover {color: #777;}.ace-chaos .ace_fold-widget.ace_start,.ace-chaos .ace_fold-widget.ace_end,.ace-chaos .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-chaos .ace_fold-widget.ace_start:after {content: '\u25be'}.ace-chaos .ace_fold-widget.ace_end:after {content: '\u25b4'}.ace-chaos .ace_fold-widget.ace_closed:after {content: '\u2023'}.ace-chaos .ace_indent-guide {border-right:1px dotted #333;margin-right:-1px;}.ace-chaos .ace_fold { background: #222; border-radius: 3px; color: #7AF; border: none; }.ace-chaos .ace_fold:hover {background: #CCC; color: #000;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-chrome.js b/js/ace/theme-chrome.js
new file mode 100644
index 0000000..29b01c7
--- /dev/null
+++ b/js/ace/theme-chrome.js
@@ -0,0 +1 @@
+ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-clouds.js b/js/ace/theme-clouds.js
new file mode 100644
index 0000000..c04b8d1
--- /dev/null
+++ b/js/ace/theme-clouds.js
@@ -0,0 +1 @@
+ace.define("ace/theme/clouds",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-clouds",t.cssText='.ace-clouds .ace_gutter {background: #ebebeb;color: #333}.ace-clouds .ace_print-margin {width: 1px;background: #e8e8e8}.ace-clouds {background-color: #FFFFFF;color: #000000}.ace-clouds .ace_cursor {color: #000000}.ace-clouds .ace_marker-layer .ace_selection {background: #BDD5FC}.ace-clouds.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-clouds .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-clouds .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds .ace_marker-layer .ace_active-line {background: #FFFBD1}.ace-clouds .ace_gutter-active-line {background-color : #dcdcdc}.ace-clouds .ace_marker-layer .ace_selected-word {border: 1px solid #BDD5FC}.ace-clouds .ace_invisible {color: #BFBFBF}.ace-clouds .ace_keyword,.ace-clouds .ace_meta,.ace-clouds .ace_support.ace_constant.ace_property-value {color: #AF956F}.ace-clouds .ace_keyword.ace_operator {color: #484848}.ace-clouds .ace_keyword.ace_other.ace_unit {color: #96DC5F}.ace-clouds .ace_constant.ace_language {color: #39946A}.ace-clouds .ace_constant.ace_numeric {color: #46A609}.ace-clouds .ace_constant.ace_character.ace_entity {color: #BF78CC}.ace-clouds .ace_invalid {background-color: #FF002A}.ace-clouds .ace_fold {background-color: #AF956F;border-color: #000000}.ace-clouds .ace_storage,.ace-clouds .ace_support.ace_class,.ace-clouds .ace_support.ace_function,.ace-clouds .ace_support.ace_other,.ace-clouds .ace_support.ace_type {color: #C52727}.ace-clouds .ace_string {color: #5D90CD}.ace-clouds .ace_comment {color: #BCC8BA}.ace-clouds .ace_entity.ace_name.ace_tag,.ace-clouds .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-clouds_midnight.js b/js/ace/theme-clouds_midnight.js
new file mode 100644
index 0000000..7427807
--- /dev/null
+++ b/js/ace/theme-clouds_midnight.js
@@ -0,0 +1 @@
+ace.define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-clouds-midnight",t.cssText=".ace-clouds-midnight .ace_gutter {background: #232323;color: #929292}.ace-clouds-midnight .ace_print-margin {width: 1px;background: #232323}.ace-clouds-midnight {background-color: #191919;color: #929292}.ace-clouds-midnight .ace_cursor {color: #7DA5DC}.ace-clouds-midnight .ace_marker-layer .ace_selection {background: #000000}.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #191919;border-radius: 2px}.ace-clouds-midnight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-clouds-midnight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds-midnight .ace_marker-layer .ace_active-line {background: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_gutter-active-line {background-color: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_marker-layer .ace_selected-word {border: 1px solid #000000}.ace-clouds-midnight .ace_invisible {color: #BFBFBF}.ace-clouds-midnight .ace_keyword,.ace-clouds-midnight .ace_meta,.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {color: #927C5D}.ace-clouds-midnight .ace_keyword.ace_operator {color: #4B4B4B}.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {color: #366F1A}.ace-clouds-midnight .ace_constant.ace_language {color: #39946A}.ace-clouds-midnight .ace_constant.ace_numeric {color: #46A609}.ace-clouds-midnight .ace_constant.ace_character.ace_entity {color: #A165AC}.ace-clouds-midnight .ace_invalid {color: #FFFFFF;background-color: #E92E2E}.ace-clouds-midnight .ace_fold {background-color: #927C5D;border-color: #929292}.ace-clouds-midnight .ace_storage,.ace-clouds-midnight .ace_support.ace_class,.ace-clouds-midnight .ace_support.ace_function,.ace-clouds-midnight .ace_support.ace_other,.ace-clouds-midnight .ace_support.ace_type {color: #E92E2E}.ace-clouds-midnight .ace_string {color: #5D90CD}.ace-clouds-midnight .ace_comment {color: #3C403B}.ace-clouds-midnight .ace_entity.ace_name.ace_tag,.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds-midnight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-cobalt.js b/js/ace/theme-cobalt.js
new file mode 100644
index 0000000..10e10eb
--- /dev/null
+++ b/js/ace/theme-cobalt.js
@@ -0,0 +1 @@
+ace.define("ace/theme/cobalt",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-cobalt",t.cssText=".ace-cobalt .ace_gutter {background: #011e3a;color: rgb(128,145,160)}.ace-cobalt .ace_print-margin {width: 1px;background: #011e3a}.ace-cobalt {background-color: #002240;color: #FFFFFF}.ace-cobalt .ace_cursor {color: #FFFFFF}.ace-cobalt .ace_marker-layer .ace_selection {background: rgba(179, 101, 57, 0.75)}.ace-cobalt.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002240;border-radius: 2px}.ace-cobalt .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-cobalt .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_marker-layer .ace_selected-word {border: 1px solid rgba(179, 101, 57, 0.75)}.ace-cobalt .ace_invisible {color: rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_keyword,.ace-cobalt .ace_meta {color: #FF9D00}.ace-cobalt .ace_constant,.ace-cobalt .ace_constant.ace_character,.ace-cobalt .ace_constant.ace_character.ace_escape,.ace-cobalt .ace_constant.ace_other {color: #FF628C}.ace-cobalt .ace_invalid {color: #F8F8F8;background-color: #800F00}.ace-cobalt .ace_support {color: #80FFBB}.ace-cobalt .ace_support.ace_constant {color: #EB939A}.ace-cobalt .ace_fold {background-color: #FF9D00;border-color: #FFFFFF}.ace-cobalt .ace_support.ace_function {color: #FFB054}.ace-cobalt .ace_storage {color: #FFEE80}.ace-cobalt .ace_entity {color: #FFDD00}.ace-cobalt .ace_string {color: #3AD900}.ace-cobalt .ace_string.ace_regexp {color: #80FFC2}.ace-cobalt .ace_comment {font-style: italic;color: #0088FF}.ace-cobalt .ace_heading,.ace-cobalt .ace_markup.ace_heading {color: #C8E4FD;background-color: #001221}.ace-cobalt .ace_list,.ace-cobalt .ace_markup.ace_list {background-color: #130D26}.ace-cobalt .ace_variable {color: #CCCCCC}.ace-cobalt .ace_variable.ace_language {color: #FF80E1}.ace-cobalt .ace_meta.ace_tag {color: #9EFFFF}.ace-cobalt .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-crimson_editor.js b/js/ace/theme-crimson_editor.js
new file mode 100644
index 0000000..9e3653e
--- /dev/null
+++ b/js/ace/theme-crimson_editor.js
@@ -0,0 +1 @@
+ace.define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssText='.ace-crimson-editor .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-crimson-editor .ace_gutter-layer {width: 100%;text-align: right;}.ace-crimson-editor .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-crimson-editor {background-color: #FFFFFF;color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor {color: black;}.ace-crimson-editor .ace_invisible {color: rgb(191, 191, 191);}.ace-crimson-editor .ace_identifier {color: black;}.ace-crimson-editor .ace_keyword {color: blue;}.ace-crimson-editor .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-crimson-editor .ace_constant.ace_language {color: rgb(255, 156, 0);}.ace-crimson-editor .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_invalid {text-decoration: line-through;color: rgb(224, 0, 0);}.ace-crimson-editor .ace_fold {}.ace-crimson-editor .ace_support.ace_function {color: rgb(192, 0, 0);}.ace-crimson-editor .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_support.ace_type,.ace-crimson-editor .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-crimson-editor .ace_keyword.ace_operator {color: rgb(49, 132, 149);}.ace-crimson-editor .ace_string {color: rgb(128, 0, 128);}.ace-crimson-editor .ace_comment {color: rgb(76, 136, 107);}.ace-crimson-editor .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-crimson-editor .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-crimson-editor .ace_constant.ace_numeric {color: rgb(0, 0, 64);}.ace-crimson-editor .ace_variable {color: rgb(0, 64, 128);}.ace-crimson-editor .ace_xml-pe {color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-crimson-editor .ace_gutter-active-line {background-color : #dcdcdc;}.ace-crimson-editor .ace_meta.ace_tag {color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex {color: rgb(192, 0, 192);}.ace-crimson-editor .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.cssClass="ace-crimson-editor";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-dawn.js b/js/ace/theme-dawn.js
new file mode 100644
index 0000000..79ca2f1
--- /dev/null
+++ b/js/ace/theme-dawn.js
@@ -0,0 +1 @@
+ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-dawn",t.cssText=".ace-dawn .ace_gutter {background: #ebebeb;color: #333}.ace-dawn .ace_print-margin {width: 1px;background: #e8e8e8}.ace-dawn {background-color: #F9F9F9;color: #080808}.ace-dawn .ace_cursor {color: #000000}.ace-dawn .ace_marker-layer .ace_selection {background: rgba(39, 95, 255, 0.30)}.ace-dawn.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #F9F9F9;border-radius: 2px}.ace-dawn .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-dawn .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(75, 75, 126, 0.50)}.ace-dawn .ace_marker-layer .ace_active-line {background: rgba(36, 99, 180, 0.12)}.ace-dawn .ace_gutter-active-line {background-color : #dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word {border: 1px solid rgba(39, 95, 255, 0.30)}.ace-dawn .ace_invisible {color: rgba(75, 75, 126, 0.50)}.ace-dawn .ace_keyword,.ace-dawn .ace_meta {color: #794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other {color: #811F24}.ace-dawn .ace_invalid.ace_illegal {text-decoration: underline;font-style: italic;color: #F8F8F8;background-color: #B52A1D}.ace-dawn .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #B52A1D}.ace-dawn .ace_support {color: #691C97}.ace-dawn .ace_support.ace_constant {color: #B4371F}.ace-dawn .ace_fold {background-color: #794938;border-color: #080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function {color: #693A17}.ace-dawn .ace_storage {font-style: italic;color: #A71D5D}.ace-dawn .ace_string {color: #0B6125}.ace-dawn .ace_string.ace_regexp {color: #CF5628}.ace-dawn .ace_comment {font-style: italic;color: #5A525F}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading {color: #19356D}.ace-dawn .ace_variable {color: #234A97}.ace-dawn .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-dreamweaver.js b/js/ace/theme-dreamweaver.js
new file mode 100644
index 0000000..618cbae
--- /dev/null
+++ b/js/ace/theme-dreamweaver.js
@@ -0,0 +1 @@
+ace.define("ace/theme/dreamweaver",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-dreamweaver",t.cssText='.ace-dreamweaver .ace_gutter {background: #e8e8e8;color: #333;}.ace-dreamweaver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-dreamweaver {background-color: #FFFFFF;color: black;}.ace-dreamweaver .ace_fold {background-color: #757AD8;}.ace-dreamweaver .ace_cursor {color: black;}.ace-dreamweaver .ace_invisible {color: rgb(191, 191, 191);}.ace-dreamweaver .ace_storage,.ace-dreamweaver .ace_keyword {color: blue;}.ace-dreamweaver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-dreamweaver .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-dreamweaver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-dreamweaver .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-dreamweaver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_support.ace_type,.ace-dreamweaver .ace_support.ace_class {color: #009;}.ace-dreamweaver .ace_support.ace_php_tag {color: #f00;}.ace-dreamweaver .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-dreamweaver .ace_string {color: #00F;}.ace-dreamweaver .ace_comment {color: rgb(76, 136, 107);}.ace-dreamweaver .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-dreamweaver .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-dreamweaver .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-dreamweaver .ace_variable {color: #06F}.ace-dreamweaver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-dreamweaver .ace_entity.ace_name.ace_function {color: #00F;}.ace-dreamweaver .ace_heading {color: rgb(12, 7, 255);}.ace-dreamweaver .ace_list {color:rgb(185, 6, 144);}.ace-dreamweaver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-dreamweaver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-dreamweaver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-dreamweaver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-dreamweaver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-dreamweaver .ace_gutter-active-line {background-color : #DCDCDC;}.ace-dreamweaver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-dreamweaver .ace_meta.ace_tag {color:#009;}.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {color:#060;}.ace-dreamweaver .ace_meta.ace_tag.ace_form {color:#F90;}.ace-dreamweaver .ace_meta.ace_tag.ace_image {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_script {color:#900;}.ace-dreamweaver .ace_meta.ace_tag.ace_style {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_table {color:#099;}.ace-dreamweaver .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-dreamweaver .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-eclipse.js b/js/ace/theme-eclipse.js
new file mode 100644
index 0000000..b15aeec
--- /dev/null
+++ b/js/ace/theme-eclipse.js
@@ -0,0 +1 @@
+ace.define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssText='.ace-eclipse .ace_gutter {background: #ebebeb;border-right: 1px solid rgb(159, 159, 159);color: rgb(136, 136, 136);}.ace-eclipse .ace_print-margin {width: 1px;background: #ebebeb;}.ace-eclipse {background-color: #FFFFFF;color: black;}.ace-eclipse .ace_fold {background-color: rgb(60, 76, 114);}.ace-eclipse .ace_cursor {color: black;}.ace-eclipse .ace_storage,.ace-eclipse .ace_keyword,.ace-eclipse .ace_variable {color: rgb(127, 0, 85);}.ace-eclipse .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-eclipse .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-eclipse .ace_function {color: rgb(60, 76, 114);}.ace-eclipse .ace_string {color: rgb(42, 0, 255);}.ace-eclipse .ace_comment {color: rgb(113, 150, 130);}.ace-eclipse .ace_comment.ace_doc {color: rgb(63, 95, 191);}.ace-eclipse .ace_comment.ace_doc.ace_tag {color: rgb(127, 159, 191);}.ace-eclipse .ace_constant.ace_numeric {color: darkblue;}.ace-eclipse .ace_tag {color: rgb(25, 118, 116);}.ace-eclipse .ace_type {color: rgb(127, 0, 127);}.ace-eclipse .ace_xml-pe {color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_meta.ace_tag {color:rgb(25, 118, 116);}.ace-eclipse .ace_invisible {color: #ddd;}.ace-eclipse .ace_entity.ace_other.ace_attribute-name {color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_step {background: rgb(255, 255, 0);}.ace-eclipse .ace_active-line {background: rgb(232, 242, 254);}.ace-eclipse .ace_gutter-active-line {background-color : #DADADA;}.ace-eclipse .ace_marker-layer .ace_selected-word {border: 1px solid rgb(181, 213, 255);}.ace-eclipse .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.cssClass="ace-eclipse";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-github.js b/js/ace/theme-github.js
new file mode 100644
index 0000000..56ee219
--- /dev/null
+++ b/js/ace/theme-github.js
@@ -0,0 +1 @@
+ace.define("ace/theme/github",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-idle_fingers.js b/js/ace/theme-idle_fingers.js
new file mode 100644
index 0000000..d66d1bd
--- /dev/null
+++ b/js/ace/theme-idle_fingers.js
@@ -0,0 +1 @@
+ace.define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-idle-fingers",t.cssText=".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: rgb(153,153,153)}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;border-radius: 2px}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-katzenmilch.js b/js/ace/theme-katzenmilch.js
new file mode 100644
index 0000000..7d72938
--- /dev/null
+++ b/js/ace/theme-katzenmilch.js
@@ -0,0 +1 @@
+ace.define("ace/theme/katzenmilch",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-katzenmilch",t.cssText=".ace-katzenmilch .ace_gutter,.ace-katzenmilch .ace_gutter {background: #e8e8e8;color: #333}.ace-katzenmilch .ace_print-margin {width: 1px;background: #e8e8e8}.ace-katzenmilch {background-color: #f3f2f3;color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_cursor {border-left: 2px solid #100011}.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #100011}.ace-katzenmilch .ace_marker-layer .ace_selection {background: rgba(100, 5, 208, 0.27)}.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #f3f2f3;border-radius: 2px}.ace-katzenmilch .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-katzenmilch .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #000000}.ace-katzenmilch .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254)}.ace-katzenmilch .ace_gutter-active-line {background-color: rgb(232, 242, 254)}.ace-katzenmilch .ace_marker-layer .ace_selected-word {border: 1px solid rgba(100, 5, 208, 0.27)}.ace-katzenmilch .ace_fold {background-color: rgba(2, 95, 73, 0.97);border-color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_keyword {color: #674Aa8;rbackground-color: rgba(163, 170, 216, 0.055)}.ace-katzenmilch .ace_constant.ace_language {color: #7D7e52;rbackground-color: rgba(189, 190, 130, 0.059)}.ace-katzenmilch .ace_constant.ace_numeric {color: rgba(79, 130, 123, 0.93);rbackground-color: rgba(119, 194, 187, 0.059)}.ace-katzenmilch .ace_constant.ace_character,.ace-katzenmilch .ace_constant.ace_other {color: rgba(2, 95, 105, 1.0);rbackground-color: rgba(127, 34, 153, 0.063)}.ace-katzenmilch .ace_support.ace_function {color: #9D7e62;rbackground-color: rgba(189, 190, 130, 0.039)}.ace-katzenmilch .ace_support.ace_class {color: rgba(239, 106, 167, 1.0);rbackground-color: rgba(239, 106, 167, 0.063)}.ace-katzenmilch .ace_storage {color: rgba(123, 92, 191, 1.0);rbackground-color: rgba(139, 93, 223, 0.051)}.ace-katzenmilch .ace_invalid {color: #DFDFD5;rbackground-color: #CC1B27}.ace-katzenmilch .ace_string {color: #5a5f9b;rbackground-color: rgba(170, 175, 219, 0.035)}.ace-katzenmilch .ace_comment {font-style: italic;color: rgba(64, 79, 80, 0.67);rbackground-color: rgba(95, 15, 255, 0.0078)}.ace-katzenmilch .ace_entity.ace_name.ace_function,.ace-katzenmilch .ace_variable {color: rgba(2, 95, 73, 0.97);rbackground-color: rgba(34, 255, 73, 0.12)}.ace-katzenmilch .ace_variable.ace_language {color: #316fcf;rbackground-color: rgba(58, 175, 255, 0.039)}.ace-katzenmilch .ace_variable.ace_parameter {font-style: italic;color: rgba(51, 150, 159, 0.87);rbackground-color: rgba(5, 214, 249, 0.043)}.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {color: rgba(73, 70, 194, 0.93);rbackground-color: rgba(73, 134, 194, 0.035)}.ace-katzenmilch .ace_entity.ace_name.ace_tag {color: #3976a2;rbackground-color: rgba(73, 166, 210, 0.039)}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-kr_theme.js b/js/ace/theme-kr_theme.js
new file mode 100644
index 0000000..5f5a402
--- /dev/null
+++ b/js/ace/theme-kr_theme.js
@@ -0,0 +1 @@
+ace.define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-kr-theme",t.cssText=".ace-kr-theme .ace_gutter {background: #1c1917;color: #FCFFE0}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme {background-color: #0B0A09;color: #FCFFE0}.ace-kr-theme .ace_cursor {color: #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;border-radius: 2px}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_list,.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-kuroir.js b/js/ace/theme-kuroir.js
new file mode 100644
index 0000000..9cc8c07
--- /dev/null
+++ b/js/ace/theme-kuroir.js
@@ -0,0 +1 @@
+ace.define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-kuroir",t.cssText=".ace-kuroir .ace_gutter {background: #e8e8e8;color: #333;}.ace-kuroir .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-kuroir {background-color: #E8E9E8;color: #363636;}.ace-kuroir .ace_cursor {color: #202020;}.ace-kuroir .ace_marker-layer .ace_selection {background: rgba(245, 170, 0, 0.57);}.ace-kuroir.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #E8E9E8;border-radius: 2px;}.ace-kuroir .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-kuroir .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.29);}.ace-kuroir .ace_marker-layer .ace_active-line {background: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_gutter-active-line {background-color: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_marker-layer .ace_selected-word {border: 1px solid rgba(245, 170, 0, 0.57);}.ace-kuroir .ace_fold {border-color: #363636;}.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#FD1732;background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-merbivore.js b/js/ace/theme-merbivore.js
new file mode 100644
index 0000000..bd1844e
--- /dev/null
+++ b/js/ace/theme-merbivore.js
@@ -0,0 +1 @@
+ace.define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-merbivore",t.cssText=".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore {background-color: #161616;color: #E6E1DC}.ace-merbivore .ace_cursor {color: #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;border-radius: 2px}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-merbivore_soft.js b/js/ace/theme-merbivore_soft.js
new file mode 100644
index 0000000..6e21e7b
--- /dev/null
+++ b/js/ace/theme-merbivore_soft.js
@@ -0,0 +1 @@
+ace.define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-merbivore-soft",t.cssText=".ace-merbivore-soft .ace_gutter {background: #262424;color: #E6E1DC}.ace-merbivore-soft .ace_print-margin {width: 1px;background: #262424}.ace-merbivore-soft {background-color: #1C1C1C;color: #E6E1DC}.ace-merbivore-soft .ace_cursor {color: #FFFFFF}.ace-merbivore-soft .ace_marker-layer .ace_selection {background: #494949}.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1C1C1C;border-radius: 2px}.ace-merbivore-soft .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore-soft .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore-soft .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore-soft .ace_gutter-active-line {background-color: #333435}.ace-merbivore-soft .ace_marker-layer .ace_selected-word {border: 1px solid #494949}.ace-merbivore-soft .ace_invisible {color: #404040}.ace-merbivore-soft .ace_entity.ace_name.ace_tag,.ace-merbivore-soft .ace_keyword,.ace-merbivore-soft .ace_meta,.ace-merbivore-soft .ace_meta.ace_tag,.ace-merbivore-soft .ace_storage {color: #FC803A}.ace-merbivore-soft .ace_constant,.ace-merbivore-soft .ace_constant.ace_character,.ace-merbivore-soft .ace_constant.ace_character.ace_escape,.ace-merbivore-soft .ace_constant.ace_other,.ace-merbivore-soft .ace_support.ace_type {color: #68C1D8}.ace-merbivore-soft .ace_constant.ace_character.ace_escape {color: #B3E5B4}.ace-merbivore-soft .ace_constant.ace_language {color: #E1C582}.ace-merbivore-soft .ace_constant.ace_library,.ace-merbivore-soft .ace_string,.ace-merbivore-soft .ace_support.ace_constant {color: #8EC65F}.ace-merbivore-soft .ace_constant.ace_numeric {color: #7FC578}.ace-merbivore-soft .ace_invalid,.ace-merbivore-soft .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #FE3838}.ace-merbivore-soft .ace_fold {background-color: #FC803A;border-color: #E6E1DC}.ace-merbivore-soft .ace_comment,.ace-merbivore-soft .ace_meta {font-style: italic;color: #AC4BB8}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {color: #EAF1A3}.ace-merbivore-soft .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-mono_industrial.js b/js/ace/theme-mono_industrial.js
new file mode 100644
index 0000000..4d6b93c
--- /dev/null
+++ b/js/ace/theme-mono_industrial.js
@@ -0,0 +1 @@
+ace.define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-mono-industrial",t.cssText=".ace-mono-industrial .ace_gutter {background: #1d2521;color: #C5C9C9}.ace-mono-industrial .ace_print-margin {width: 1px;background: #555651}.ace-mono-industrial {background-color: #222C28;color: #FFFFFF}.ace-mono-industrial .ace_cursor {color: #FFFFFF}.ace-mono-industrial .ace_marker-layer .ace_selection {background: rgba(145, 153, 148, 0.40)}.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #222C28;border-radius: 2px}.ace-mono-industrial .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-mono-industrial .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_marker-layer .ace_active-line {background: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_gutter-active-line {background-color: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_marker-layer .ace_selected-word {border: 1px solid rgba(145, 153, 148, 0.40)}.ace-mono-industrial .ace_invisible {color: rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_string {background-color: #151C19;color: #FFFFFF}.ace-mono-industrial .ace_keyword,.ace-mono-industrial .ace_meta {color: #A39E64}.ace-mono-industrial .ace_constant,.ace-mono-industrial .ace_constant.ace_character,.ace-mono-industrial .ace_constant.ace_character.ace_escape,.ace-mono-industrial .ace_constant.ace_numeric,.ace-mono-industrial .ace_constant.ace_other {color: #E98800}.ace-mono-industrial .ace_entity.ace_name.ace_function,.ace-mono-industrial .ace_keyword.ace_operator,.ace-mono-industrial .ace_variable {color: #A8B3AB}.ace-mono-industrial .ace_invalid {color: #FFFFFF;background-color: rgba(153, 0, 0, 0.68)}.ace-mono-industrial .ace_support.ace_constant {color: #C87500}.ace-mono-industrial .ace_fold {background-color: #A8B3AB;border-color: #FFFFFF}.ace-mono-industrial .ace_support.ace_function {color: #588E60}.ace-mono-industrial .ace_entity.ace_name,.ace-mono-industrial .ace_support.ace_class,.ace-mono-industrial .ace_support.ace_type {color: #5778B6}.ace-mono-industrial .ace_storage {color: #C23B00}.ace-mono-industrial .ace_variable.ace_language,.ace-mono-industrial .ace_variable.ace_parameter {color: #648BD2}.ace-mono-industrial .ace_comment {color: #666C68;background-color: #151C19}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {color: #909993}.ace-mono-industrial .ace_entity.ace_name.ace_tag {color: #A65EFF}.ace-mono-industrial .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-monokai.js b/js/ace/theme-monokai.js
new file mode 100644
index 0000000..3a4361c
--- /dev/null
+++ b/js/ace/theme-monokai.js
@@ -0,0 +1 @@
+ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-monokai",t.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #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_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.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_entity.ace_other.ace_attribute-name,.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_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-pastel_on_dark.js b/js/ace/theme-pastel_on_dark.js
new file mode 100644
index 0000000..e3dee73
--- /dev/null
+++ b/js/ace/theme-pastel_on_dark.js
@@ -0,0 +1 @@
+ace.define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-pastel-on-dark",t.cssText=".ace-pastel-on-dark .ace_gutter {background: #353030;color: #8F938F}.ace-pastel-on-dark .ace_print-margin {width: 1px;background: #353030}.ace-pastel-on-dark {background-color: #2C2828;color: #8F938F}.ace-pastel-on-dark .ace_cursor {color: #A7A7A7}.ace-pastel-on-dark .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2C2828;border-radius: 2px}.ace-pastel-on-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-pastel-on-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_keyword,.ace-pastel-on-dark .ace_meta {color: #757aD8}.ace-pastel-on-dark .ace_constant,.ace-pastel-on-dark .ace_constant.ace_character,.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,.ace-pastel-on-dark .ace_constant.ace_other {color: #4FB7C5}.ace-pastel-on-dark .ace_keyword.ace_operator {color: #797878}.ace-pastel-on-dark .ace_constant.ace_character {color: #AFA472}.ace-pastel-on-dark .ace_constant.ace_language {color: #DE8E30}.ace-pastel-on-dark .ace_constant.ace_numeric {color: #CCCCCC}.ace-pastel-on-dark .ace_invalid,.ace-pastel-on-dark .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-pastel-on-dark .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-pastel-on-dark .ace_fold {background-color: #757aD8;border-color: #8F938F}.ace-pastel-on-dark .ace_support.ace_function {color: #AEB2F8}.ace-pastel-on-dark .ace_string {color: #66A968}.ace-pastel-on-dark .ace_string.ace_regexp {color: #E9C062}.ace-pastel-on-dark .ace_comment {color: #A6C6FF}.ace-pastel-on-dark .ace_variable {color: #BEBF55}.ace-pastel-on-dark .ace_variable.ace_language {color: #C1C144}.ace-pastel-on-dark .ace_xml-pe {color: #494949}.ace-pastel-on-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-solarized_dark.js b/js/ace/theme-solarized_dark.js
new file mode 100644
index 0000000..34af033
--- /dev/null
+++ b/js/ace/theme-solarized_dark.js
@@ -0,0 +1 @@
+ace.define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-solarized-dark",t.cssText=".ace-solarized-dark .ace_gutter {background: #01313f;color: #d0edf7}.ace-solarized-dark .ace_print-margin {width: 1px;background: #33555E}.ace-solarized-dark {background-color: #002B36;color: #93A1A1}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,.ace-solarized-dark .ace_storage {color: #93A1A1}.ace-solarized-dark .ace_cursor,.ace-solarized-dark .ace_string.ace_regexp {color: #D30102}.ace-solarized-dark .ace_marker-layer .ace_active-line,.ace-solarized-dark .ace_marker-layer .ace_selection {background: rgba(255, 255, 255, 0.1)}.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002B36;border-radius: 2px}.ace-solarized-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-solarized-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_gutter-active-line {background-color: #0d3440}.ace-solarized-dark .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-dark .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_keyword,.ace-solarized-dark .ace_meta,.ace-solarized-dark .ace_support.ace_class,.ace-solarized-dark .ace_support.ace_type {color: #859900}.ace-solarized-dark .ace_constant.ace_character,.ace-solarized-dark .ace_constant.ace_other {color: #CB4B16}.ace-solarized-dark .ace_constant.ace_language {color: #B58900}.ace-solarized-dark .ace_constant.ace_numeric {color: #D33682}.ace-solarized-dark .ace_fold {background-color: #268BD2;border-color: #93A1A1}.ace-solarized-dark .ace_entity.ace_name.ace_function,.ace-solarized-dark .ace_entity.ace_name.ace_tag,.ace-solarized-dark .ace_support.ace_function,.ace-solarized-dark .ace_variable,.ace-solarized-dark .ace_variable.ace_language {color: #268BD2}.ace-solarized-dark .ace_string {color: #2AA198}.ace-solarized-dark .ace_comment {font-style: italic;color: #657B83}.ace-solarized-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-solarized_light.js b/js/ace/theme-solarized_light.js
new file mode 100644
index 0000000..d785f2b
--- /dev/null
+++ b/js/ace/theme-solarized_light.js
@@ -0,0 +1 @@
+ace.define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-solarized-light",t.cssText=".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light {background-color: #FDF6E3;color: #586E75}.ace-solarized-light .ace_cursor {color: #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: rgba(7, 54, 67, 0.09)}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;border-radius: 2px}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #EDE5C1}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-terminal.js b/js/ace/theme-terminal.js
new file mode 100644
index 0000000..4949228
--- /dev/null
+++ b/js/ace/theme-terminal.js
@@ -0,0 +1 @@
+ace.define("ace/theme/terminal",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-terminal-theme",t.cssText=".ace-terminal-theme .ace_gutter {background: #1a0005;color: steelblue}.ace-terminal-theme .ace_print-margin {width: 1px;background: #1a1a1a}.ace-terminal-theme {background-color: black;color: #DEDEDE}.ace-terminal-theme .ace_cursor {color: #9F9F9F}.ace-terminal-theme .ace_marker-layer .ace_selection {background: #424242}.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px black;border-radius: 2px}.ace-terminal-theme .ace_marker-layer .ace_step {background: rgb(0, 0, 0)}.ace-terminal-theme .ace_marker-layer .ace_bracket {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-start {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {margin: -1px 0 0 -1px;border: 1px solid #900}.ace-terminal-theme .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-terminal-theme .ace_gutter-active-line {background-color: #2A112A}.ace-terminal-theme .ace_marker-layer .ace_selected-word {border: 1px solid #424242}.ace-terminal-theme .ace_invisible {color: #343434}.ace-terminal-theme .ace_keyword,.ace-terminal-theme .ace_meta,.ace-terminal-theme .ace_storage,.ace-terminal-theme .ace_storage.ace_type,.ace-terminal-theme .ace_support.ace_type {color: tomato}.ace-terminal-theme .ace_keyword.ace_operator {color: deeppink}.ace-terminal-theme .ace_constant.ace_character,.ace-terminal-theme .ace_constant.ace_language,.ace-terminal-theme .ace_constant.ace_numeric,.ace-terminal-theme .ace_keyword.ace_other.ace_unit,.ace-terminal-theme .ace_support.ace_constant,.ace-terminal-theme .ace_variable.ace_parameter {color: #E78C45}.ace-terminal-theme .ace_constant.ace_other {color: gold}.ace-terminal-theme .ace_invalid {color: yellow;background-color: red}.ace-terminal-theme .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-terminal-theme .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-terminal-theme .ace_entity.ace_name.ace_function,.ace-terminal-theme .ace_support.ace_function,.ace-terminal-theme .ace_variable {color: #7AA6DA}.ace-terminal-theme .ace_support.ace_class,.ace-terminal-theme .ace_support.ace_type {color: #E7C547}.ace-terminal-theme .ace_heading,.ace-terminal-theme .ace_string {color: #B9CA4A}.ace-terminal-theme .ace_entity.ace_name.ace_tag,.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,.ace-terminal-theme .ace_meta.ace_tag,.ace-terminal-theme .ace_string.ace_regexp,.ace-terminal-theme .ace_variable {color: #D54E53}.ace-terminal-theme .ace_comment {color: orangered}.ace-terminal-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-textmate.js b/js/ace/theme-textmate.js
new file mode 100644
index 0000000..24c5e16
--- /dev/null
+++ b/js/ace/theme-textmate.js
@@ -0,0 +1 @@
+ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.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 {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: 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_heading {color: rgb(12, 7, 255);}.ace-tm .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 r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-tomorrow.js b/js/ace/theme-tomorrow.js
new file mode 100644
index 0000000..0c43059
--- /dev/null
+++ b/js/ace/theme-tomorrow.js
@@ -0,0 +1 @@
+ace.define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tomorrow",t.cssText=".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-tomorrow_night.js b/js/ace/theme-tomorrow_night.js
new file mode 100644
index 0000000..d144fa8
--- /dev/null
+++ b/js/ace/theme-tomorrow_night.js
@@ -0,0 +1 @@
+ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night",t.cssText=".ace-tomorrow-night .ace_gutter {background: #25282c;color: #C5C8C6}.ace-tomorrow-night .ace_print-margin {width: 1px;background: #25282c}.ace-tomorrow-night {background-color: #1D1F21;color: #C5C8C6}.ace-tomorrow-night .ace_cursor {color: #AEAFAD}.ace-tomorrow-night .ace_marker-layer .ace_selection {background: #373B41}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1D1F21;border-radius: 2px}.ace-tomorrow-night .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #4B4E55}.ace-tomorrow-night .ace_marker-layer .ace_active-line {background: #282A2E}.ace-tomorrow-night .ace_gutter-active-line {background-color: #282A2E}.ace-tomorrow-night .ace_marker-layer .ace_selected-word {border: 1px solid #373B41}.ace-tomorrow-night .ace_invisible {color: #4B4E55}.ace-tomorrow-night .ace_keyword,.ace-tomorrow-night .ace_meta,.ace-tomorrow-night .ace_storage,.ace-tomorrow-night .ace_storage.ace_type,.ace-tomorrow-night .ace_support.ace_type {color: #B294BB}.ace-tomorrow-night .ace_keyword.ace_operator {color: #8ABEB7}.ace-tomorrow-night .ace_constant.ace_character,.ace-tomorrow-night .ace_constant.ace_language,.ace-tomorrow-night .ace_constant.ace_numeric,.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night .ace_support.ace_constant,.ace-tomorrow-night .ace_variable.ace_parameter {color: #DE935F}.ace-tomorrow-night .ace_constant.ace_other {color: #CED1CF}.ace-tomorrow-night .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night .ace_fold {background-color: #81A2BE;border-color: #C5C8C6}.ace-tomorrow-night .ace_entity.ace_name.ace_function,.ace-tomorrow-night .ace_support.ace_function,.ace-tomorrow-night .ace_variable {color: #81A2BE}.ace-tomorrow-night .ace_support.ace_class,.ace-tomorrow-night .ace_support.ace_type {color: #F0C674}.ace-tomorrow-night .ace_heading,.ace-tomorrow-night .ace_markup.ace_heading,.ace-tomorrow-night .ace_string {color: #B5BD68}.ace-tomorrow-night .ace_entity.ace_name.ace_tag,.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night .ace_meta.ace_tag,.ace-tomorrow-night .ace_string.ace_regexp,.ace-tomorrow-night .ace_variable {color: #CC6666}.ace-tomorrow-night .ace_comment {color: #969896}.ace-tomorrow-night .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-tomorrow_night_blue.js b/js/ace/theme-tomorrow_night_blue.js
new file mode 100644
index 0000000..8cbe316
--- /dev/null
+++ b/js/ace/theme-tomorrow_night_blue.js
@@ -0,0 +1 @@
+ace.define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-blue",t.cssText=".ace-tomorrow-night-blue .ace_gutter {background: #00204b;color: #7388b5}.ace-tomorrow-night-blue .ace_print-margin {width: 1px;background: #00204b}.ace-tomorrow-night-blue {background-color: #002451;color: #FFFFFF}.ace-tomorrow-night-blue .ace_constant.ace_other,.ace-tomorrow-night-blue .ace_cursor {color: #FFFFFF}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {background: #003F8E}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002451;border-radius: 2px}.ace-tomorrow-night-blue .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404F7D}.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {background: #00346E}.ace-tomorrow-night-blue .ace_gutter-active-line {background-color: #022040}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {border: 1px solid #003F8E}.ace-tomorrow-night-blue .ace_invisible {color: #404F7D}.ace-tomorrow-night-blue .ace_keyword,.ace-tomorrow-night-blue .ace_meta,.ace-tomorrow-night-blue .ace_storage,.ace-tomorrow-night-blue .ace_storage.ace_type,.ace-tomorrow-night-blue .ace_support.ace_type {color: #EBBBFF}.ace-tomorrow-night-blue .ace_keyword.ace_operator {color: #99FFFF}.ace-tomorrow-night-blue .ace_constant.ace_character,.ace-tomorrow-night-blue .ace_constant.ace_language,.ace-tomorrow-night-blue .ace_constant.ace_numeric,.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-blue .ace_support.ace_constant,.ace-tomorrow-night-blue .ace_variable.ace_parameter {color: #FFC58F}.ace-tomorrow-night-blue .ace_invalid {color: #FFFFFF;background-color: #F99DA5}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #EBBBFF}.ace-tomorrow-night-blue .ace_fold {background-color: #BBDAFF;border-color: #FFFFFF}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,.ace-tomorrow-night-blue .ace_support.ace_function,.ace-tomorrow-night-blue .ace_variable {color: #BBDAFF}.ace-tomorrow-night-blue .ace_support.ace_class,.ace-tomorrow-night-blue .ace_support.ace_type {color: #FFEEAD}.ace-tomorrow-night-blue .ace_heading,.ace-tomorrow-night-blue .ace_markup.ace_heading,.ace-tomorrow-night-blue .ace_string {color: #D1F1A9}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-blue .ace_meta.ace_tag,.ace-tomorrow-night-blue .ace_string.ace_regexp,.ace-tomorrow-night-blue .ace_variable {color: #FF9DA4}.ace-tomorrow-night-blue .ace_comment {color: #7285B7}.ace-tomorrow-night-blue .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-tomorrow_night_bright.js b/js/ace/theme-tomorrow_night_bright.js
new file mode 100644
index 0000000..6feb888
--- /dev/null
+++ b/js/ace/theme-tomorrow_night_bright.js
@@ -0,0 +1 @@
+ace.define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-bright",t.cssText=".ace-tomorrow-night-bright .ace_gutter {background: #1a1a1a;color: #DEDEDE}.ace-tomorrow-night-bright .ace_print-margin {width: 1px;background: #1a1a1a}.ace-tomorrow-night-bright {background-color: #000000;color: #DEDEDE}.ace-tomorrow-night-bright .ace_cursor {color: #9F9F9F}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {background: #424242}.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #000000;border-radius: 2px}.ace-tomorrow-night-bright .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #888888}.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {border: 1px solid rgb(110, 119, 0);border-bottom: 0;box-shadow: inset 0 -1px rgb(110, 119, 0);margin: -1px 0 0 -1px;background: rgba(255, 235, 0, 0.1)}.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-tomorrow-night-bright .ace_gutter-active-line {background-color: #2A2A2A}.ace-tomorrow-night-bright .ace_stack {background-color: rgb(66, 90, 44)}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {border: 1px solid #888888}.ace-tomorrow-night-bright .ace_invisible {color: #343434}.ace-tomorrow-night-bright .ace_keyword,.ace-tomorrow-night-bright .ace_meta,.ace-tomorrow-night-bright .ace_storage,.ace-tomorrow-night-bright .ace_storage.ace_type,.ace-tomorrow-night-bright .ace_support.ace_type {color: #C397D8}.ace-tomorrow-night-bright .ace_keyword.ace_operator {color: #70C0B1}.ace-tomorrow-night-bright .ace_constant.ace_character,.ace-tomorrow-night-bright .ace_constant.ace_language,.ace-tomorrow-night-bright .ace_constant.ace_numeric,.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-bright .ace_support.ace_constant,.ace-tomorrow-night-bright .ace_variable.ace_parameter {color: #E78C45}.ace-tomorrow-night-bright .ace_constant.ace_other {color: #EEEEEE}.ace-tomorrow-night-bright .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night-bright .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,.ace-tomorrow-night-bright .ace_support.ace_function,.ace-tomorrow-night-bright .ace_variable {color: #7AA6DA}.ace-tomorrow-night-bright .ace_support.ace_class,.ace-tomorrow-night-bright .ace_support.ace_type {color: #E7C547}.ace-tomorrow-night-bright .ace_heading,.ace-tomorrow-night-bright .ace_markup.ace_heading,.ace-tomorrow-night-bright .ace_string {color: #B9CA4A}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-bright .ace_meta.ace_tag,.ace-tomorrow-night-bright .ace_string.ace_regexp,.ace-tomorrow-night-bright .ace_variable {color: #D54E53}.ace-tomorrow-night-bright .ace_comment {color: #969896}.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {color: #C2C280}.ace-tomorrow-night-bright .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-tomorrow_night_eighties.js b/js/ace/theme-tomorrow_night_eighties.js
new file mode 100644
index 0000000..6dea2cc
--- /dev/null
+++ b/js/ace/theme-tomorrow_night_eighties.js
@@ -0,0 +1 @@
+ace.define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-eighties",t.cssText=".ace-tomorrow-night-eighties .ace_gutter {background: #272727;color: #CCC}.ace-tomorrow-night-eighties .ace_print-margin {width: 1px;background: #272727}.ace-tomorrow-night-eighties {background-color: #2D2D2D;color: #CCCCCC}.ace-tomorrow-night-eighties .ace_constant.ace_other,.ace-tomorrow-night-eighties .ace_cursor {color: #CCCCCC}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {background: #515151}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2D2D2D;border-radius: 2px}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #6A6A6A}.ace-tomorrow-night-bright .ace_stack {background: rgb(66, 90, 44)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {background: #393939}.ace-tomorrow-night-eighties .ace_gutter-active-line {background-color: #393939}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {border: 1px solid #515151}.ace-tomorrow-night-eighties .ace_invisible {color: #6A6A6A}.ace-tomorrow-night-eighties .ace_keyword,.ace-tomorrow-night-eighties .ace_meta,.ace-tomorrow-night-eighties .ace_storage,.ace-tomorrow-night-eighties .ace_storage.ace_type,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #CC99CC}.ace-tomorrow-night-eighties .ace_keyword.ace_operator {color: #66CCCC}.ace-tomorrow-night-eighties .ace_constant.ace_character,.ace-tomorrow-night-eighties .ace_constant.ace_language,.ace-tomorrow-night-eighties .ace_constant.ace_numeric,.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-eighties .ace_support.ace_constant,.ace-tomorrow-night-eighties .ace_variable.ace_parameter {color: #F99157}.ace-tomorrow-night-eighties .ace_invalid {color: #CDCDCD;background-color: #F2777A}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {color: #CDCDCD;background-color: #CC99CC}.ace-tomorrow-night-eighties .ace_fold {background-color: #6699CC;border-color: #CCCCCC}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,.ace-tomorrow-night-eighties .ace_support.ace_function,.ace-tomorrow-night-eighties .ace_variable {color: #6699CC}.ace-tomorrow-night-eighties .ace_support.ace_class,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #FFCC66}.ace-tomorrow-night-eighties .ace_heading,.ace-tomorrow-night-eighties .ace_markup.ace_heading,.ace-tomorrow-night-eighties .ace_string {color: #99CC99}.ace-tomorrow-night-eighties .ace_comment {color: #999999}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-eighties .ace_meta.ace_tag,.ace-tomorrow-night-eighties .ace_variable {color: #F2777A}.ace-tomorrow-night-eighties .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-twilight.js b/js/ace/theme-twilight.js
new file mode 100644
index 0000000..1c5dfda
--- /dev/null
+++ b/js/ace/theme-twilight.js
@@ -0,0 +1 @@
+ace.define("ace/theme/twilight",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-twilight",t.cssText=".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight {background-color: #141414;color: #F8F8F8}.ace-twilight .ace_cursor {color: #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;border-radius: 2px}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_heading,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_list,.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-vibrant_ink.js b/js/ace/theme-vibrant_ink.js
new file mode 100644
index 0000000..a0aebbf
--- /dev/null
+++ b/js/ace/theme-vibrant_ink.js
@@ -0,0 +1 @@
+ace.define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-vibrant-ink",t.cssText=".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink {background-color: #0F0F0F;color: #FFFFFF}.ace-vibrant-ink .ace_cursor {color: #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;border-radius: 2px}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/theme-xcode.js b/js/ace/theme-xcode.js
new file mode 100644
index 0000000..873bd35
--- /dev/null
+++ b/js/ace/theme-xcode.js
@@ -0,0 +1 @@
+ace.define("ace/theme/xcode",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-xcode",t.cssText=".ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode {background-color: #FFFFFF;color: #000000}.ace-xcode .ace_cursor {color: #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/js/ace/worker-coffee.js b/js/ace/worker-coffee.js
new file mode 100644
index 0000000..e54130a
--- /dev/null
+++ b/js/ace/worker-coffee.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/coffee/rewriter",["require","exports","module"],function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},x=[].slice;m=function(e,t){var n;return n=[e,t],n.generated=!0,n},t.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,r;r=this.tokens,t=0;while(n=r[t])t+=e.call(this,n,t,r);return!0},e.prototype.detectEnd=function(e,t,n){var r,i,s,a,f;s=this.tokens,r=0;while(i=s[e]){if(r===0&&t.call(this,i,e))return n.call(this,i,e);if(!i||r<0)return n.call(this,i,e-1);if(a=i[0],S.call(u,a)>=0)r+=1;else if(f=i[0],S.call(o,f)>=0)r-=1;e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,r,i;i=this.tokens;for(e=n=0,r=i.length;n<r;e=++n){t=i[e][0];if(t!=="TERMINATOR")break}if(e)return this.tokens.splice(0,e)},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return(n=e[0])===")"||n==="CALL_END"||e[0]==="OUTDENT"&&this.tag(t-1)===")"},e=function(e,t){return this.tokens[e[0]==="OUTDENT"?t-1:t][0]="CALL_END"},this.scanTokens(function(n,r){return n[0]==="CALL_START"&&this.detectEnd(r+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e,t){var n;return(n=e[0])==="]"||n==="INDEX_END"},e=function(e,t){return e[0]="INDEX_END"},this.scanTokens(function(n,r){return n[0]==="INDEX_START"&&this.detectEnd(r+1,t,e),1})},e.prototype.matchTags=function(){var e,t,n,r,i,s,o;t=arguments[0],r=2<=arguments.length?x.call(arguments,1):[],e=0;for(n=i=0,s=r.length;0<=s?i<s:i>s;n=0<=s?++i:--i){while(this.tag(t+n+e)==="HERECOMMENT")e+=2;if(r[n]==null)continue;typeof r[n]=="string"&&(r[n]=[r[n]]);if(o=this.tag(t+n+e),S.call(r[n],o)<0)return!1}return!0},e.prototype.looksObjectish=function(e){return this.matchTags(e,"@",null,":")||this.matchTags(e,null,":")},e.prototype.findTagsBackwards=function(e,t){var n,r,i,s,a,f,l;n=[];while(e>=0&&(n.length||(s=this.tag(e),S.call(t,s)<0)&&((a=this.tag(e),S.call(u,a)<0)||this.tokens[e].generated)&&(f=this.tag(e),S.call(p,f)<0)))(r=this.tag(e),S.call(o,r)>=0)&&n.push(this.tag(e)),(i=this.tag(e),S.call(u,i)>=0)&&n.length&&n.pop(),e-=1;return l=this.tag(e),S.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e;return e=[],this.scanTokens(function(t,n,r){var s,h,d,v,g,y,b,w,E,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R;H=t[0],T=(N=n>0?r[n-1]:[])[0],E=(n<r.length-1?r[n+1]:[])[0],O=function(){return e[e.length-1]},M=n,v=function(e){return n-M+e},g=function(){var e,t;return(e=O())!=null?(t=e[2])!=null?t.ours:void 0:void 0},y=function(){var e;return g()&&((e=O())!=null?e[0]:void 0)==="("},w=function(){var e;return g()&&((e=O())!=null?e[0]:void 0)==="{"},b=function(){var e;return g&&((e=O())!=null?e[0]:void 0)==="CONTROL"},_=function(t){var i;i=t!=null?t:n,e.push(["(",i,{ours:!0}]),r.splice(i,0,m("CALL_START","("));if(t==null)return n+=1},h=function(){return e.pop(),r.splice(n,0,m("CALL_END",")")),n+=1},s=function(){while(y())h()},D=function(t,i){var s;i==null&&(i=!0),s=t!=null?t:n,e.push(["{",s,{sameLine:!0,startsLine:i,ours:!0}]),r.splice(s,0,m("{",m(new String("{"))));if(t==null)return n+=1},d=function(t){return t=t!=null?t:n,e.pop(),r.splice(t,0,m("}","}")),n+=1};if(!y()||H!=="IF"&&H!=="TRY"&&H!=="FINALLY"&&H!=="CATCH"&&H!=="CLASS"&&H!=="SWITCH"){if(H==="INDENT"&&g()){if(T!=="=>"&&T!=="->"&&T!=="["&&T!=="("&&T!==","&&T!=="{"&&T!=="TRY"&&T!=="ELSE"&&T!=="=")while(y())h();return b()&&e.pop(),e.push([H,n]),v(1)}if(S.call(u,H)>=0)return e.push([H,n]),v(1);if(S.call(o,H)>=0){while(g())y()?h():w()?d():e.pop();e.pop()}if((S.call(l,H)>=0&&t.spaced&&!t.stringEnd||H==="?"&&n>0&&!r[n-1].spaced)&&(S.call(a,E)>=0||S.call(c,E)>=0&&((B=r[n+1])!=null?!B.spaced:!void 0)&&((j=r[n+1])!=null?!j.newLine:!void 0)))return H==="?"&&(H=t[0]="FUNC_EXIST"),_(n+1),v(2);if(S.call(l,H)>=0&&this.matchTags(n+1,"INDENT",null,":")&&!this.findTagsBackwards(n,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return _(n+1),e.push(["INDENT",n+2]),v(3);if(H===":"){this.tag(n-2)==="@"?C=n-2:C=n-1;while(this.tag(C-2)==="HERECOMMENT")C-=2;P=C===0||(F=this.tag(C-1),S.call(p,F)>=0)||r[C-1].newLine;if(O()){I=O(),A=I[0],L=I[1];if((A==="{"||A==="INDENT"&&this.tag(L-1)==="{")&&(P||this.tag(C-1)===","||this.tag(C-1)==="{"))return v(1)}return D(C,!!P),v(2)}if(y()&&S.call(i,H)>=0){if(T==="OUTDENT")return h(),v(1);if(N.newLine)return s(),v(1)}w()&&S.call(p,H)>=0&&(O()[2].sameLine=!1);if(S.call(f,H)>=0)while(g()){q=O(),A=q[0],L=q[1],R=q[2],k=R.sameLine,P=R.startsLine;if(y()&&T!==",")h();else if(w()&&k&&!P)d();else{if(!w()||H!=="TERMINATOR"||T===","||!!P&&!!this.looksObjectish(n+1))break;d()}}if(H===","&&!this.looksObjectish(n+1)&&w()&&(E!=="TERMINATOR"||!this.looksObjectish(n+2))){x=E==="OUTDENT"?1:0;while(w())d(n+x)}return v(1)}return e.push(["CONTROL",n,{ours:!0}]),v(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var r,i,s,o,u,a;return e[2]?1:!e.generated&&!e.explicit?1:(e[0]==="{"&&(s=(u=n[t+1])!=null?u[2]:void 0)?(i=s.first_line,r=s.first_column):(o=(a=n[t-1])!=null?a[2]:void 0)?(i=o.last_line,r=o.last_column):i=r=0,e[2]={first_line:i,first_column:r,last_line:i,last_column:r},1)})},e.prototype.normalizeLines=function(){var e,t,n,r,o;return o=n=r=null,t=function(e,t){var n,r,u,a;return e[1]!==";"&&(n=e[0],S.call(d,n)>=0)&&!(e[0]==="TERMINATOR"&&(r=this.tag(t+1),S.call(s,r)>=0))&&(e[0]!=="ELSE"||o==="THEN")&&((u=e[0])!=="CATCH"&&u!=="FINALLY"||o!=="->"&&o!=="=>")||(a=e[0],S.call(i,a)>=0)&&this.tokens[t-1].newLine},e=function(e,t){return this.tokens.splice(this.tag(t-1)===","?t-1:t,0,r)},this.scanTokens(function(i,u,a){var f,l,c,h,p,d;l=i[0];if(l==="TERMINATOR"){if(this.tag(u+1)==="ELSE"&&this.tag(u-1)!=="OUTDENT")return a.splice.apply(a,[u,1].concat(x.call(this.indentation()))),1;if(h=this.tag(u+1),S.call(s,h)>=0)return a.splice(u,1),0}if(l==="CATCH")for(f=c=1;c<=2;f=++c){if((p=this.tag(u+f))!=="OUTDENT"&&p!=="TERMINATOR"&&p!=="FINALLY")continue;return a.splice.apply(a,[u+f,0].concat(x.call(this.indentation()))),2+f}return S.call(v,l)>=0&&this.tag(u+1)!=="INDENT"&&(l!=="ELSE"||this.tag(u+1)!=="IF")?(o=l,d=this.indentation(!0),n=d[0],r=d[1],o==="THEN"&&(n.fromThen=!0),a.splice(u+1,0,n),this.detectEnd(u+2,t,e),l==="THEN"&&a.splice(u,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,r;return r=e[0],n=this.tokens[t-1][0],r==="TERMINATOR"||r==="INDENT"&&S.call(v,n)<0},e=function(e,t){if(e[0]!=="INDENT"||e.generated&&!e.fromThen)return n[0]="POST_"+n[0]},this.scanTokens(function(r,i){return r[0]!=="IF"?1:(n=r,this.detectEnd(i+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return e==null&&(e=!1),t=["INDENT",2],n=["OUTDENT",2],e&&(t.generated=n.generated=!0),e||(t.explicit=n.explicit=!0),[t,n]},e.prototype.generate=m,e.prototype.tag=function(e){var t;return(t=this.tokens[e])!=null?t[0]:void 0},e}(),r=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],t.INVERSES=h={},u=[],o=[];for(b=0,w=r.length;b<w;b++)E=r[b],g=E[0],y=E[1],u.push(h[y]=g),o.push(h[g]=y);s=["CATCH","THEN","ELSE","FINALLY"].concat(o),l=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],a=["IDENTIFIER","NUMBER","STRING","JS","REGEX","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","SUPER","THROW","@","->","=>","[","(","{","--","++"],c=["+","-"],f=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],v=["ELSE","->","=>","TRY","FINALLY","THEN"],d=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],p=["TERMINATOR","INDENT","OUTDENT"],i=[".","?.","::","?::"]}),ace.define("ace/mode/coffee/helpers",["require","exports","module"],function(e,t,n){var r,i,s,o,u,a,f;t.starts=function(e,t,n){return t===e.substr(n,t.length)},t.ends=function(e,t,n){var r;return r=t.length,t===e.substr(e.length-r-(n||0),r)},t.repeat=u=function(e,t){var n;n="";while(t>0)t&1&&(n+=e),t>>>=1,e+=e;return n},t.compact=function(e){var t,n,r,i;i=[];for(n=0,r=e.length;n<r;n++)t=e[n],t&&i.push(t);return i},t.count=function(e,t){var n,r;n=r=0;if(!t.length)return 1/0;while(r=1+e.indexOf(t,r))n++;return n},t.merge=function(e,t){return i(i({},e),t)},i=t.extend=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e},t.flatten=s=function(e){var t,n,r,i;n=[];for(r=0,i=e.length;r<i;r++)t=e[r],t instanceof Array?n=n.concat(s(t)):n.push(t);return n},t.del=function(e,t){var n;return n=e[t],delete e[t],n},t.last=o=function(e,t){return e[e.length-(t||0)-1]},t.some=(f=Array.prototype.some)!=null?f:function(e){var t,n,r;for(n=0,r=this.length;n<r;n++){t=this[n];if(e(t))return!0}return!1},t.invertLiterate=function(e){var t,n,r;return r=!0,n=function(){var n,i,s,o;s=e.split("\n"),o=[];for(n=0,i=s.length;n<i;n++)t=s[n],r&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(r=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},r=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},t.addLocationDataFn=function(e,t){return function(n){return typeof n=="object"&&!!n.updateLocationDataIfMissing&&n.updateLocationDataIfMissing(r(e,t)),n}},t.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?""+(t.first_line+1)+":"+(t.first_column+1)+"-"+(""+(t.last_line+1)+":"+(t.last_column+1)):"No location data"},t.baseFileName=function(e,t,n){var r,i;return t==null&&(t=!1),n==null&&(n=!1),i=n?/\\|\//:/\//,r=e.split(i),e=r[r.length-1],t&&e.indexOf(".")>=0?(r=e.split("."),r.pop(),r[r.length-1]==="coffee"&&r.length>1&&r.pop(),r.join(".")):e},t.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},t.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},t.throwSyntaxError=function(e,t){var n;throw t.last_line==null&&(t.last_line=t.first_line),t.last_column==null&&(t.last_column=t.first_column),n=new SyntaxError(e),n.location=t,n.toString=a,n.stack=n.toString(),n},t.updateSyntaxError=function(e,t,n){return e.toString===a&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=e.toString()),e},a=function(){var e,t,n,r,i,s,o,a,f,l,c,h,p;if(!this.code||!this.location)return Error.prototype.toString.call(this);h=this.location,o=h.first_line,s=h.first_column,f=h.last_line,a=h.last_column,f==null&&(f=o),a==null&&(a=s),i=this.filename||"[stdin]",e=this.code.split("\n")[o],c=s,r=o===f?a+1:e.length,l=u(" ",c)+u("^",r-c),typeof process!="undefined"&&process!==null&&(n=process.stdout.isTTY&&!process.env.NODE_DISABLE_COLORS);if((p=this.colorful)!=null?p:n)t=function(e){return""+e+""},e=e.slice(0,c)+t(e.slice(c,r))+e.slice(r),l=t(l);return""+i+":"+(o+1)+":"+(s+1)+": error: "+this.message+"\n"+e+"\n"+l}}),ace.define("ace/mode/coffee/lexer",["require","exports","module","ace/mode/coffee/rewriter","ace/mode/coffee/helpers"],function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};et=e("./rewriter"),F=et.Rewriter,w=et.INVERSES,tt=e("./helpers"),V=tt.count,Y=tt.starts,X=tt.compact,K=tt.last,G=tt.repeat,$=tt.invertLiterate,Q=tt.locationDataToString,Z=tt.throwSyntaxError,t.Lexer=k=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,r,i,s;t==null&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;while(this.chunk=e.slice(r))n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.heredocToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n;return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i),t.rewrite===!1?this.tokens:(new F).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===r&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(U,""),W.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=$(e)),e},e.prototype.identifierToken=function(){var e,t,n,r,i,s,o,l,c,h,p,d,v,m;return(o=y.exec(this.chunk))?(s=o[0],r=o[1],e=o[2],i=r.length,l=void 0,r==="own"&&this.tag()==="FOR"?(this.token("OWN",r),r.length):(n=e||(c=K(this.tokens))&&((d=c[0])==="."||d==="?."||d==="::"||d==="?::"||!c.spaced&&c[0]==="@"),h="IDENTIFIER",!n&&(nt.call(x,r)>=0||nt.call(f,r)>=0)&&(h=r.toUpperCase(),h==="WHEN"&&(v=this.tag(),nt.call(T,v)>=0)?h="LEADING_WHEN":h==="FOR"?this.seenFor=!0:h==="UNLESS"?h="IF":nt.call(z,h)>=0?h="UNARY":nt.call(B,h)>=0&&(h!=="INSTANCEOF"&&this.seenFor?(h="FOR"+h,this.seenFor=!1):(h="RELATION",this.value()==="!"&&(l=this.tokens.pop(),r="!"+r)))),nt.call(S,r)>=0&&(n?(h="IDENTIFIER",r=new String(r),r.reserved=!0):nt.call(j,r)>=0&&this.error('reserved word "'+r+'"')),n||(nt.call(u,r)>=0&&(r=a[r]),h=function(){switch(r){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return h}}()),p=this.token(h,r,0,i),l&&(m=[l[2].first_line,l[2].first_column],p[2].first_line=m[0],p[2].first_column=m[1]),e&&(t=s.lastIndexOf(":"),this.token(":",":",t,e.length)),s.length)):0},e.prototype.numberToken=function(){var e,t,n,r,i;if(!(n=D.exec(this.chunk)))return 0;r=n[0],/^0[BOX]/.test(r)?this.error("radix prefix '"+r+"' must be lowercase"):/E/.test(r)&&!/^0x/.test(r)?this.error("exponential notation '"+r+"' must be indicated with a lowercase 'e'"):/^0\d*[89]/.test(r)?this.error("decimal literal '"+r+"' must not be prefixed with '0'"):/^0\d+/.test(r)&&this.error("octal literal '"+r+"' must be prefixed with '0o'"),t=r.length;if(i=/^0o([0-7]+)/.exec(r))r="0x"+parseInt(i[1],8).toString(16);if(e=/^0b([01]+)/.exec(r))r="0x"+parseInt(e[1],2).toString(16);return this.token("NUMBER",r,0,t),t},e.prototype.stringToken=function(){var e,t,n,r;switch(t=this.chunk.charAt(0)){case"'":n=q.exec(this.chunk)[0];break;case'"':n=this.balancedString(this.chunk,'"')}return n?(r=this.removeNewlines(n.slice(1,-1)),t==='"'&&0<n.indexOf("#{",1)?this.interpolateString(r,{strOffset:1,lexedLength:n.length}):this.token("STRING",t+this.escapeLines(r)+t,0,n.length),(e=/^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(n))&&this.error("octal escape sequences "+n+" are not allowed"),n.length):0},e.prototype.heredocToken=function(){var e,t,n,r;return(n=p.exec(this.chunk))?(t=n[0],r=t.charAt(0),e=this.sanitizeHeredoc(n[2],{quote:r,indent:null}),r==='"'&&0<=e.indexOf("#{")?this.interpolateString(e,{heredoc:!0,strOffset:3,lexedLength:t.length}):this.token("STRING",this.makeString(e,r,!0),0,t.length),t.length):0},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(l))?(e=n[0],t=n[1],t&&this.token("HERECOMMENT",this.sanitizeHeredoc(t,{herecomment:!0,indent:G(" ",this.indent)}),0,e.length),e.length):0},e.prototype.jsToken=function(){var e,t;return this.chunk.charAt(0)!=="`"||!(e=E.exec(this.chunk))?0:(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length)},e.prototype.regexToken=function(){var e,t,n,r,i,s,o;return this.chunk.charAt(0)!=="/"?0:(n=m.exec(this.chunk))?(t=this.heregexToken(n),t):(r=K(this.tokens),r&&(s=r[0],nt.call(r.spaced?M:_,s)>=0)?0:(n=H.exec(this.chunk))?(o=n,n=o[0],i=o[1],e=o[2],i.slice(0,2)==="/*"&&this.error("regular expressions cannot begin with `*`"),i==="//"&&(i="/(?:)/"),this.token("REGEX",""+i+e,0,n.length),n.length):0)},e.prototype.heregexToken=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m;i=e[0],t=e[1],n=e[2];if(0>t.indexOf("#{"))return u=this.escapeLines(t.replace(g,"$1$2").replace(/\//g,"\\/"),!0),u.match(/^\*/)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX","/"+(u||"(?:)")+"/"+n,0,i.length),i.length;this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),l=[],d=this.interpolateString(t,{regex:!0});for(h=0,p=d.length;h<p;h++){f=d[h],a=f[0],c=f[1];if(a==="TOKENS")l.push.apply(l,c);else if(a==="NEOSTRING"){if(!(c=c.replace(g,"$1$2")))continue;c=c.replace(/\\/g,"\\\\"),f[0]="STRING",f[1]=this.makeString(c,'"',!0),l.push(f)}else this.error("Unexpected "+a);o=K(this.tokens),s=["+","+"],s[2]=o[2],l.push(s)}return l.pop(),((v=l[0])!=null?v[0]:void 0)!=="STRING"&&(this.token("STRING",'""',0,0),this.token("+","+",0,0)),(m=this.tokens).push.apply(m,l),n&&(r=i.lastIndexOf(n),this.token(",",",",r,0),this.token("STRING",'"'+n+'"',r,n.length)),this.token(")",")",i.length-1,0),i.length},e.prototype.lineToken=function(){var e,t,n,r,i;if(!(n=O.exec(this.chunk)))return 0;t=n[0],this.seenFor=!1,i=t.length-1-t.lastIndexOf("\n"),r=this.unfinished();if(i-this.indebt===this.indent)return r?this.suppressNewlines():this.newlineToken(0),t.length;if(i>this.indent){if(r)return this.indebt=i-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=i,t.length;e=i-this.indent+this.outdebt,this.token("INDENT",e,t.length-i,i),this.indents.push(e),this.ends.push("OUTDENT"),this.outdebt=this.indebt=0}else i<this.baseIndent?this.error("missing indentation",t.length):(this.indebt=0,this.outdentToken(this.indent-i,r,t.length));return this.indent=i,t.length},e.prototype.outdentToken=function(e,t,n){var r,i;while(e>0)i=this.indents.length-1,this.indents[i]===void 0?e=0:this.indents[i]===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.indents[i]<this.outdebt?(this.outdebt-=this.indents[i],e-=this.indents[i]):(r=this.indents.pop()+this.outdebt,e-=r,this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",r,0,n));r&&(this.outdebt-=e);while(this.value()===";")this.tokens.pop();return this.tag()!=="TERMINATOR"&&!t&&this.token("TERMINATOR","\n",n,0),this},e.prototype.whitespaceToken=function(){var e,t,n;return!(e=W.exec(this.chunk))&&!(t=this.chunk.charAt(0)==="\n")?0:(n=K(this.tokens),n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0)},e.prototype.newlineToken=function(e){while(this.value()===";")this.tokens.pop();return this.tag()!=="TERMINATOR"&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return this.value()==="\\"&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,r,i,u,a,f;(e=P.exec(this.chunk))?(r=e[0],o.test(r)&&this.tagParameters()):r=this.chunk.charAt(0),n=r,t=K(this.tokens);if(r==="="&&t){!t[1].reserved&&(i=t[1],nt.call(S,i)>=0)&&this.error('reserved word "'+this.value()+"\" can't be assigned");if((u=t[1])==="||"||u==="&&")return t[0]="COMPOUND_ASSIGN",t[1]+="=",r.length}if(r===";")this.seenFor=!1,n="TERMINATOR";else if(nt.call(L,r)>=0)n="MATH";else if(nt.call(c,r)>=0)n="COMPARE";else if(nt.call(h,r)>=0)n="COMPOUND_ASSIGN";else if(nt.call(z,r)>=0)n="UNARY";else if(nt.call(I,r)>=0)n="SHIFT";else if(nt.call(C,r)>=0||r==="?"&&(t!=null?t.spaced:void 0))n="LOGIC";else if(t&&!t.spaced)if(r==="("&&(a=t[0],nt.call(s,a)>=0))t[0]==="?"&&(t[0]="FUNC_EXIST"),n="CALL_START";else if(r==="["&&(f=t[0],nt.call(b,f)>=0)){n="INDEX_START";switch(t[0]){case"?":t[0]="INDEX_SOAK"}}switch(r){case"(":case"{":case"[":this.ends.push(w[r]);break;case")":case"}":case"]":this.pair(r)}return this.token(n,r),r.length},e.prototype.sanitizeHeredoc=function(e,t){var n,r,i,s,o;i=t.indent,r=t.herecomment;if(r){d.test(e)&&this.error('block comment cannot contain "*/", starting');if(e.indexOf("\n")<0)return e}else while(s=v.exec(e)){n=s[1];if(i===null||0<(o=n.length)&&o<i.length)i=n}return i&&(e=e.replace(RegExp("\\n"+i,"g"),"\n")),r||(e=e.replace(/^\n/,"")),e},e.prototype.tagParameters=function(){var e,t,n,r;if(this.tag()!==")")return this;t=[],r=this.tokens,e=r.length,r[--e][0]="PARAM_END";while(n=r[--e])switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return n[0]==="("?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.balancedString=function(e,t){var n,r,i,s,o,u,a,f;n=0,u=[t];for(r=a=1,f=e.length;1<=f?a<f:a>f;r=1<=f?++a:--a){if(n){--n;continue}switch(i=e.charAt(r)){case"\\":++n;continue;case t:u.pop();if(!u.length)return e.slice(0,+r+1||9e9);t=u[u.length-1];continue}t!=="}"||i!=='"'&&i!=="'"?t==="}"&&i==="/"&&(s=m.exec(e.slice(r))||H.exec(e.slice(r)))?n+=s[0].length-1:t==="}"&&i==="{"?u.push(t="}"):t==='"'&&o==="#"&&i==="{"&&u.push(t="}"):u.push(t=i),o=i}return this.error("missing "+u.pop()+", starting")},e.prototype.interpolateString=function(t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O;n==null&&(n={}),s=n.heredoc,b=n.regex,v=n.offsetInChunk,E=n.strOffset,c=n.lexedLength,v=v||0,E=E||0,c=c||t.length,T=[],m=0,o=-1;while(l=t.charAt(o+=1)){if(l==="\\"){o+=1;continue}if(l!=="#"||t.charAt(o+1)!=="{"||!(i=this.balancedString(t.slice(o+1),"}")))continue;m<o&&T.push(this.makeToken("NEOSTRING",t.slice(m,o),E+m)),u=i.slice(1,-1);if(u.length){L=this.getLineAndColumnFromChunk(E+o+1),h=L[0],r=L[1],d=(new e).tokenize(u,{line:h,column:r,rewrite:!1}),y=d.pop(),((A=d[0])!=null?A[0]:void 0)==="TERMINATOR"&&(y=d.shift());if(f=d.length)f>1&&(d.unshift(this.makeToken("(","(",E+o+1,0)),d.push(this.makeToken(")",")",E+o+1+u.length,0))),T.push(["TOKENS",d])}o+=i.length,m=o+1}o>m&&m<t.length&&T.push(this.makeToken("NEOSTRING",t.slice(m),E+m));if(b)return T;if(!T.length)return this.token("STRING",'""',v,c);T[0][0]!=="NEOSTRING"&&T.unshift(this.makeToken("NEOSTRING","",v)),(a=T.length>1)&&this.token("(","(",v,0);for(o=C=0,k=T.length;C<k;o=++C)x=T[o],S=x[0],N=x[1],o&&(o&&(g=this.token("+","+")),p=S==="TOKENS"?N[0]:x,g[2]={first_line:p[2].first_line,first_column:p[2].first_column,last_line:p[2].first_line,last_column:p[2].first_column}),S==="TOKENS"?(O=this.tokens).push.apply(O,N):S==="NEOSTRING"?(x[0]="STRING",x[1]=this.makeString(N,'"',s),this.tokens.push(x)):this.error("Unexpected "+S);return a&&(w=this.makeToken(")",")",v+c,0),w.stringEnd=!0,this.tokens.push(w)),T},e.prototype.pair=function(e){var t,n;return e!==(n=K(this.ends))?("OUTDENT"!==n&&this.error("unmatched "+e),this.indent-=t=K(this.indents),this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,r,i;return e===0?[this.chunkLine,this.chunkColumn]:(e>=this.chunk.length?i=this.chunk:i=this.chunk.slice(0,+(e-1)+1||9e9),n=V(i,"\n"),t=this.chunkColumn,n>0?(r=i.split("\n"),t=K(r).length):t+=i.length,[this.chunkLine+n,t])},e.prototype.makeToken=function(e,t,n,r){var i,s,o,u,a;return n==null&&(n=0),r==null&&(r=t.length),s={},u=this.getLineAndColumnFromChunk(n),s.first_line=u[0],s.first_column=u[1],i=Math.max(0,r-1),a=this.getLineAndColumnFromChunk(n+i),s.last_line=a[0],s.last_column=a[1],o=[e,t,s],o},e.prototype.token=function(e,t,n,r){var i;return i=this.makeToken(e,t,n,r),this.tokens.push(i),i},e.prototype.tag=function(e,t){var n;return(n=K(this.tokens,e))&&(t?n[0]=t:n[0])},e.prototype.value=function(e,t){var n;return(n=K(this.tokens,e))&&(t?n[1]=t:n[1])},e.prototype.unfinished=function(){var e;return N.test(this.chunk)||(e=this.tag())==="\\"||e==="."||e==="?."||e==="?::"||e==="UNARY"||e==="MATH"||e==="+"||e==="-"||e==="SHIFT"||e==="RELATION"||e==="COMPARE"||e==="LOGIC"||e==="THROW"||e==="EXTENDS"},e.prototype.removeNewlines=function(e){return e.replace(/^\s*\n\s*/,"").replace(/([^\\]|\\\\)\s*\n\s*$/,"$1")},e.prototype.escapeLines=function(e,t){return e=e.replace(/\\[^\S\n]*(\n|\\)\s*/g,function(e,t){return t==="\n"?"":e}),t?e.replace(A,"\\n"):e.replace(/\s*\n\s*/g," ")},e.prototype.makeString=function(e,t,n){return e?(e=e.replace(RegExp("\\\\("+t+"|\\\\)","g"),function(e,n){return n===t?n:e}),e=e.replace(RegExp(""+t,"g"),"\\$&"),t+this.escapeLines(e,n)+t):t+t},e.prototype.error=function(e,t){var n,r,i;return t==null&&(t=0),i=this.getLineAndColumnFromChunk(t),r=i[0],n=i[1],Z(e,{first_line:r,first_column:n})},e}(),x=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],f=["undefined","then","unless","until","loop","of","by","when"],a={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},u=function(){var e;e=[];for(J in a)e.push(J);return e}(),f=f.concat(u),j=["case","default","function","var","void","with","const","let","enum","export","import","native","__hasProp","__extends","__slice","__bind","__indexOf","implements","interface","package","private","protected","public","static","yield"],R=["arguments","eval"],S=x.concat(j).concat(R),t.RESERVED=j.concat(x).concat(f).concat(R),t.STRICT_PROSCRIBED=R,r=65279,y=/^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/,D=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,p=/^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/,P=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?(\.|::)|\.{2,3})/,W=/^[^\n\S]+/,l=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,o=/^[-=]>/,O=/^(?:\n[^\n\S]*)+/,q=/^'[^\\']*(?:\\[\s\S][^\\']*)*'/,E=/^`[^\\`]*(?:\\.[^\\`]*)*`/,H=/^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/,m=/^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/,g=/((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g,A=/\n/g,v=/\n+([^\n\S]*)/g,d=/\*\//,N=/^\s*(?:,|\??\.(?![.\d])|::)/,U=/\s+$/,h=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],z=["!","~","NEW","TYPEOF","DELETE","DO"],C=["&&","||","&","|","^"],I=["<<",">>",">>>"],c=["==","!=","<",">","<=",">="],L=["*","/","%"],B=["IN","OF","INSTANCEOF"],i=["TRUE","FALSE"],M=["NUMBER","REGEX","BOOL","NULL","UNDEFINED","++","--"],_=M.concat(")","}","THIS","IDENTIFIER","STRING","]"),s=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],b=s.concat("NUMBER","BOOL","NULL","UNDEFINED"),T=["INDENT","OUTDENT","TERMINATOR"]}),ace.define("ace/mode/coffee/parser",["require","exports","module"],function(e,t,n){function i(){this.yy={}}var r={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,STRING:31,Literal:32,JS:33,REGEX:34,DEBUGGER:35,UNDEFINED:36,NULL:37,BOOL:38,Assignable:39,"=":40,AssignObj:41,ObjAssignable:42,":":43,ThisProperty:44,RETURN:45,HERECOMMENT:46,PARAM_START:47,ParamList:48,PARAM_END:49,FuncGlyph:50,"->":51,"=>":52,OptComma:53,",":54,Param:55,ParamVar:56,"...":57,Array:58,Object:59,Splat:60,SimpleAssignable:61,Accessor:62,Parenthetical:63,Range:64,This:65,".":66,"?.":67,"::":68,"?::":69,Index:70,INDEX_START:71,IndexValue:72,INDEX_END:73,INDEX_SOAK:74,Slice:75,"{":76,AssignList:77,"}":78,CLASS:79,EXTENDS:80,OptFuncExist:81,Arguments:82,SUPER:83,FUNC_EXIST:84,CALL_START:85,CALL_END:86,ArgList:87,THIS:88,"@":89,"[":90,"]":91,RangeDots:92,"..":93,Arg:94,SimpleArgs:95,TRY:96,Catch:97,FINALLY:98,CATCH:99,THROW:100,"(":101,")":102,WhileSource:103,WHILE:104,WHEN:105,UNTIL:106,Loop:107,LOOP:108,ForBody:109,FOR:110,ForStart:111,ForSource:112,ForVariables:113,OWN:114,ForValue:115,FORIN:116,FOROF:117,BY:118,SWITCH:119,Whens:120,ELSE:121,When:122,LEADING_WHEN:123,IfBlock:124,IF:125,POST_IF:126,UNARY:127,"-":128,"+":129,"--":130,"++":131,"?":132,MATH:133,SHIFT:134,COMPARE:135,LOGIC:136,RELATION:137,COMPOUND_ASSIGN:138,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"-",129:"+",130:"--",131:"++",132:"?",133:"MATH",134:"SHIFT",135:"COMPARE",136:"LOGIC",137:"RELATION",138:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[16,3],[16,4],[16,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[9,2],[9,1],[10,1],[14,5],[14,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[12,1],[12,1],[12,1],[12,1],[12,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[95,1],[95,3],[18,2],[18,3],[18,4],[18,5],[97,3],[97,3],[97,2],[23,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[19,2],[19,2],[19,2],[19,1],[107,2],[107,2],[20,2],[20,2],[20,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[21,5],[21,7],[21,4],[21,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return this.$=i.addLocationDataFn(u[a],u[a])(new i.Block);case 2:return this.$=o[a];case 3:this.$=i.addLocationDataFn(u[a],u[a])(i.Block.wrap([o[a]]));break;case 4:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-2].push(o[a]));break;case 5:this.$=o[a-1];break;case 6:this.$=o[a];break;case 7:this.$=o[a];break;case 8:this.$=o[a];break;case 9:this.$=o[a];break;case 10:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 11:this.$=o[a];break;case 12:this.$=o[a];break;case 13:this.$=o[a];break;case 14:this.$=o[a];break;case 15:this.$=o[a];break;case 16:this.$=o[a];break;case 17:this.$=o[a];break;case 18:this.$=o[a];break;case 19:this.$=o[a];break;case 20:this.$=o[a];break;case 21:this.$=o[a];break;case 22:this.$=o[a];break;case 23:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Block);break;case 24:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-1]);break;case 25:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 26:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 27:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 28:this.$=o[a];break;case 29:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 30:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 31:this.$=i.addLocationDataFn(u[a],u[a])(new i.Literal(o[a]));break;case 32:this.$=i.addLocationDataFn(u[a],u[a])(new i.Undefined);break;case 33:this.$=i.addLocationDataFn(u[a],u[a])(new i.Null);break;case 34:this.$=i.addLocationDataFn(u[a],u[a])(new i.Bool(o[a]));break;case 35:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Assign(o[a-2],o[a]));break;case 36:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Assign(o[a-3],o[a]));break;case 37:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Assign(o[a-4],o[a-1]));break;case 38:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 39:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Assign(i.addLocationDataFn(u[a-2])(new i.Value(o[a-2])),o[a],"object"));break;case 40:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Assign(i.addLocationDataFn(u[a-4])(new i.Value(o[a-4])),o[a-1],"object"));break;case 41:this.$=o[a];break;case 42:this.$=o[a];break;case 43:this.$=o[a];break;case 44:this.$=o[a];break;case 45:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Return(o[a]));break;case 46:this.$=i.addLocationDataFn(u[a],u[a])(new i.Return);break;case 47:this.$=i.addLocationDataFn(u[a],u[a])(new i.Comment(o[a]));break;case 48:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Code(o[a-3],o[a],o[a-1]));break;case 49:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Code([],o[a],o[a-1]));break;case 50:this.$=i.addLocationDataFn(u[a],u[a])("func");break;case 51:this.$=i.addLocationDataFn(u[a],u[a])("boundfunc");break;case 52:this.$=o[a];break;case 53:this.$=o[a];break;case 54:this.$=i.addLocationDataFn(u[a],u[a])([]);break;case 55:this.$=i.addLocationDataFn(u[a],u[a])([o[a]]);break;case 56:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-2].concat(o[a]));break;case 57:this.$=i.addLocationDataFn(u[a-3],u[a])(o[a-3].concat(o[a]));break;case 58:this.$=i.addLocationDataFn(u[a-5],u[a])(o[a-5].concat(o[a-2]));break;case 59:this.$=i.addLocationDataFn(u[a],u[a])(new i.Param(o[a]));break;case 60:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Param(o[a-1],null,!0));break;case 61:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Param(o[a-2],o[a]));break;case 62:this.$=o[a];break;case 63:this.$=o[a];break;case 64:this.$=o[a];break;case 65:this.$=o[a];break;case 66:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Splat(o[a-1]));break;case 67:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 68:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a-1].add(o[a]));break;case 69:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Value(o[a-1],[].concat(o[a])));break;case 70:this.$=o[a];break;case 71:this.$=o[a];break;case 72:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 73:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 74:this.$=o[a];break;case 75:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 76:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 77:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 78:this.$=o[a];break;case 79:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Access(o[a]));break;case 80:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Access(o[a],"soak"));break;case 81:this.$=i.addLocationDataFn(u[a-1],u[a])([i.addLocationDataFn(u[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(u[a])(new i.Access(o[a]))]);break;case 82:this.$=i.addLocationDataFn(u[a-1],u[a])([i.addLocationDataFn(u[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(u[a])(new i.Access(o[a]))]);break;case 83:this.$=i.addLocationDataFn(u[a],u[a])(new i.Access(new i.Literal("prototype")));break;case 84:this.$=o[a];break;case 85:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-1]);break;case 86:this.$=i.addLocationDataFn(u[a-1],u[a])(i.extend(o[a],{soak:!0}));break;case 87:this.$=i.addLocationDataFn(u[a],u[a])(new i.Index(o[a]));break;case 88:this.$=i.addLocationDataFn(u[a],u[a])(new i.Slice(o[a]));break;case 89:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Obj(o[a-2],o[a-3].generated));break;case 90:this.$=i.addLocationDataFn(u[a],u[a])([]);break;case 91:this.$=i.addLocationDataFn(u[a],u[a])([o[a]]);break;case 92:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-2].concat(o[a]));break;case 93:this.$=i.addLocationDataFn(u[a-3],u[a])(o[a-3].concat(o[a]));break;case 94:this.$=i.addLocationDataFn(u[a-5],u[a])(o[a-5].concat(o[a-2]));break;case 95:this.$=i.addLocationDataFn(u[a],u[a])(new i.Class);break;case 96:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Class(null,null,o[a]));break;case 97:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Class(null,o[a]));break;case 98:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Class(null,o[a-1],o[a]));break;case 99:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Class(o[a]));break;case 100:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Class(o[a-1],null,o[a]));break;case 101:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Class(o[a-2],o[a]));break;case 102:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Class(o[a-3],o[a-1],o[a]));break;case 103:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 104:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 105:this.$=i.addLocationDataFn(u[a],u[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 106:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Call("super",o[a]));break;case 107:this.$=i.addLocationDataFn(u[a],u[a])(!1);break;case 108:this.$=i.addLocationDataFn(u[a],u[a])(!0);break;case 109:this.$=i.addLocationDataFn(u[a-1],u[a])([]);break;case 110:this.$=i.addLocationDataFn(u[a-3],u[a])(o[a-2]);break;case 111:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(new i.Literal("this")));break;case 112:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(new i.Literal("this")));break;case 113:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Value(i.addLocationDataFn(u[a-1])(new i.Literal("this")),[i.addLocationDataFn(u[a])(new i.Access(o[a]))],"this"));break;case 114:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Arr([]));break;case 115:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Arr(o[a-2]));break;case 116:this.$=i.addLocationDataFn(u[a],u[a])("inclusive");break;case 117:this.$=i.addLocationDataFn(u[a],u[a])("exclusive");break;case 118:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Range(o[a-3],o[a-1],o[a-2]));break;case 119:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Range(o[a-2],o[a],o[a-1]));break;case 120:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Range(o[a-1],null,o[a]));break;case 121:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Range(null,o[a],o[a-1]));break;case 122:this.$=i.addLocationDataFn(u[a],u[a])(new i.Range(null,null,o[a]));break;case 123:this.$=i.addLocationDataFn(u[a],u[a])([o[a]]);break;case 124:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-2].concat(o[a]));break;case 125:this.$=i.addLocationDataFn(u[a-3],u[a])(o[a-3].concat(o[a]));break;case 126:this.$=i.addLocationDataFn(u[a-3],u[a])(o[a-2]);break;case 127:this.$=i.addLocationDataFn(u[a-5],u[a])(o[a-5].concat(o[a-2]));break;case 128:this.$=o[a];break;case 129:this.$=o[a];break;case 130:this.$=o[a];break;case 131:this.$=i.addLocationDataFn(u[a-2],u[a])([].concat(o[a-2],o[a]));break;case 132:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Try(o[a]));break;case 133:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Try(o[a-1],o[a][0],o[a][1]));break;case 134:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Try(o[a-2],null,null,o[a]));break;case 135:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Try(o[a-3],o[a-2][0],o[a-2][1],o[a]));break;case 136:this.$=i.addLocationDataFn(u[a-2],u[a])([o[a-1],o[a]]);break;case 137:this.$=i.addLocationDataFn(u[a-2],u[a])([i.addLocationDataFn(u[a-1])(new i.Value(o[a-1])),o[a]]);break;case 138:this.$=i.addLocationDataFn(u[a-1],u[a])([null,o[a]]);break;case 139:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Throw(o[a]));break;case 140:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Parens(o[a-1]));break;case 141:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Parens(o[a-2]));break;case 142:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.While(o[a]));break;case 143:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.While(o[a-2],{guard:o[a]}));break;case 144:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.While(o[a],{invert:!0}));break;case 145:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.While(o[a-2],{invert:!0,guard:o[a]}));break;case 146:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a-1].addBody(o[a]));break;case 147:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a].addBody(i.addLocationDataFn(u[a-1])(i.Block.wrap([o[a-1]]))));break;case 148:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a].addBody(i.addLocationDataFn(u[a-1])(i.Block.wrap([o[a-1]]))));break;case 149:this.$=i.addLocationDataFn(u[a],u[a])(o[a]);break;case 150:this.$=i.addLocationDataFn(u[a-1],u[a])((new i.While(i.addLocationDataFn(u[a-1])(new i.Literal("true")))).addBody(o[a]));break;case 151:this.$=i.addLocationDataFn(u[a-1],u[a])((new i.While(i.addLocationDataFn(u[a-1])(new i.Literal("true")))).addBody(i.addLocationDataFn(u[a])(i.Block.wrap([o[a]]))));break;case 152:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.For(o[a-1],o[a]));break;case 153:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.For(o[a-1],o[a]));break;case 154:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.For(o[a],o[a-1]));break;case 155:this.$=i.addLocationDataFn(u[a-1],u[a])({source:i.addLocationDataFn(u[a])(new i.Value(o[a]))});break;case 156:this.$=i.addLocationDataFn(u[a-1],u[a])(function(){return o[a].own=o[a-1].own,o[a].name=o[a-1][0],o[a].index=o[a-1][1],o[a]}());break;case 157:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a]);break;case 158:this.$=i.addLocationDataFn(u[a-2],u[a])(function(){return o[a].own=!0,o[a]}());break;case 159:this.$=o[a];break;case 160:this.$=o[a];break;case 161:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 162:this.$=i.addLocationDataFn(u[a],u[a])(new i.Value(o[a]));break;case 163:this.$=i.addLocationDataFn(u[a],u[a])([o[a]]);break;case 164:this.$=i.addLocationDataFn(u[a-2],u[a])([o[a-2],o[a]]);break;case 165:this.$=i.addLocationDataFn(u[a-1],u[a])({source:o[a]});break;case 166:this.$=i.addLocationDataFn(u[a-1],u[a])({source:o[a],object:!0});break;case 167:this.$=i.addLocationDataFn(u[a-3],u[a])({source:o[a-2],guard:o[a]});break;case 168:this.$=i.addLocationDataFn(u[a-3],u[a])({source:o[a-2],guard:o[a],object:!0});break;case 169:this.$=i.addLocationDataFn(u[a-3],u[a])({source:o[a-2],step:o[a]});break;case 170:this.$=i.addLocationDataFn(u[a-5],u[a])({source:o[a-4],guard:o[a-2],step:o[a]});break;case 171:this.$=i.addLocationDataFn(u[a-5],u[a])({source:o[a-4],step:o[a-2],guard:o[a]});break;case 172:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Switch(o[a-3],o[a-1]));break;case 173:this.$=i.addLocationDataFn(u[a-6],u[a])(new i.Switch(o[a-5],o[a-3],o[a-1]));break;case 174:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Switch(null,o[a-1]));break;case 175:this.$=i.addLocationDataFn(u[a-5],u[a])(new i.Switch(null,o[a-3],o[a-1]));break;case 176:this.$=o[a];break;case 177:this.$=i.addLocationDataFn(u[a-1],u[a])(o[a-1].concat(o[a]));break;case 178:this.$=i.addLocationDataFn(u[a-2],u[a])([[o[a-1],o[a]]]);break;case 179:this.$=i.addLocationDataFn(u[a-3],u[a])([[o[a-2],o[a-1]]]);break;case 180:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 181:this.$=i.addLocationDataFn(u[a-4],u[a])(o[a-4].addElse(i.addLocationDataFn(u[a-2],u[a])(new i.If(o[a-1],o[a],{type:o[a-2]}))));break;case 182:this.$=o[a];break;case 183:this.$=i.addLocationDataFn(u[a-2],u[a])(o[a-2].addElse(o[a]));break;case 184:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.If(o[a],i.addLocationDataFn(u[a-2])(i.Block.wrap([o[a-2]])),{type:o[a-1],statement:!0}));break;case 185:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.If(o[a],i.addLocationDataFn(u[a-2])(i.Block.wrap([o[a-2]])),{type:o[a-1],statement:!0}));break;case 186:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op(o[a-1],o[a]));break;case 187:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("-",o[a]));break;case 188:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("+",o[a]));break;case 189:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("--",o[a]));break;case 190:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("++",o[a]));break;case 191:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("--",o[a-1],null,!0));break;case 192:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Op("++",o[a-1],null,!0));break;case 193:this.$=i.addLocationDataFn(u[a-1],u[a])(new i.Existence(o[a-1]));break;case 194:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op("+",o[a-2],o[a]));break;case 195:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op("-",o[a-2],o[a]));break;case 196:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 197:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 198:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 199:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 200:this.$=i.addLocationDataFn(u[a-2],u[a])(function(){return o[a-1].charAt(0)==="!"?(new i.Op(o[a-1].slice(1),o[a-2],o[a])).invert():new i.Op(o[a-1],o[a-2],o[a])}());break;case 201:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Assign(o[a-2],o[a],o[a-1]));break;case 202:this.$=i.addLocationDataFn(u[a-4],u[a])(new i.Assign(o[a-4],o[a-1],o[a-3]));break;case 203:this.$=i.addLocationDataFn(u[a-3],u[a])(new i.Assign(o[a-3],o[a],o[a-2]));break;case 204:this.$=i.addLocationDataFn(u[a-2],u[a])(new i.Extends(o[a-2],o[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[3]},{1:[2,2],6:[1,72]},{1:[2,3],6:[2,3],26:[2,3],102:[2,3]},{1:[2,6],6:[2,6],26:[2,6],102:[2,6],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:85,104:[1,63],106:[1,64],109:86,110:[1,66],111:67,126:[1,84]},{1:[2,11],6:[2,11],25:[2,11],26:[2,11],49:[2,11],54:[2,11],57:[2,11],62:88,66:[1,90],67:[1,91],68:[1,92],69:[1,93],70:94,71:[1,95],73:[2,11],74:[1,96],78:[2,11],81:87,84:[1,89],85:[2,107],86:[2,11],91:[2,11],93:[2,11],102:[2,11],104:[2,11],105:[2,11],106:[2,11],110:[2,11],118:[2,11],126:[2,11],128:[2,11],129:[2,11],132:[2,11],133:[2,11],134:[2,11],135:[2,11],136:[2,11],137:[2,11]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:98,66:[1,90],67:[1,91],68:[1,92],69:[1,93],70:94,71:[1,95],73:[2,12],74:[1,96],78:[2,12],81:97,84:[1,89],85:[2,107],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],128:[2,12],129:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12],137:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],73:[2,13],78:[2,13],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],128:[2,13],129:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13],137:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],128:[2,14],129:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14],137:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],128:[2,15],129:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15],137:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],128:[2,16],129:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16],137:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],128:[2,17],129:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17],137:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],128:[2,18],129:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18],137:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],128:[2,19],129:[2,19],132:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19],137:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],128:[2,20],129:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20],137:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],128:[2,21],129:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21],137:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],128:[2,22],129:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22],137:[2,22]},{1:[2,8],6:[2,8],26:[2,8],102:[2,8],104:[2,8],106:[2,8],110:[2,8],126:[2,8]},{1:[2,9],6:[2,9],26:[2,9],102:[2,9],104:[2,9],106:[2,9],110:[2,9],126:[2,9]},{1:[2,10],6:[2,10],26:[2,10],102:[2,10],104:[2,10],106:[2,10],110:[2,10],126:[2,10]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[1,99],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],128:[2,74],129:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74],137:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],128:[2,75],129:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75],137:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],128:[2,76],129:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76],137:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],128:[2,77],129:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77],137:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],128:[2,78],129:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78],137:[2,78]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],82:100,84:[2,105],85:[1,101],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],128:[2,105],129:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105],137:[2,105]},{6:[2,54],25:[2,54],27:105,28:[1,71],44:106,48:102,49:[2,54],54:[2,54],55:103,56:104,58:107,59:108,76:[1,68],89:[1,109],90:[1,110]},{24:111,25:[1,112]},{7:113,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:115,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:116,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{12:118,13:119,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:120,44:61,58:45,59:46,61:117,63:23,64:24,65:25,76:[1,68],83:[1,26],88:[1,56],89:[1,57],90:[1,55],101:[1,54]},{12:118,13:119,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:120,44:61,58:45,59:46,61:121,63:23,64:24,65:25,76:[1,68],83:[1,26],88:[1,56],89:[1,57],90:[1,55],101:[1,54]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[1,125],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],128:[2,71],129:[2,71],130:[1,122],131:[1,123],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[1,124]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[1,126],126:[2,182],128:[2,182],129:[2,182],132:[2,182],133:[2,182],134:[2,182],135:[2,182],136:[2,182],137:[2,182]},{24:127,25:[1,112]},{24:128,25:[1,112]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],128:[2,149],129:[2,149],132:[2,149],133:[2,149],134:[2,149],135:[2,149],136:[2,149],137:[2,149]},{24:129,25:[1,112]},{7:130,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,131],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,95],6:[2,95],12:118,13:119,24:132,25:[1,112],26:[2,95],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:120,44:61,49:[2,95],54:[2,95],57:[2,95],58:45,59:46,61:134,63:23,64:24,65:25,73:[2,95],76:[1,68],78:[2,95],80:[1,133],83:[1,26],86:[2,95],88:[1,56],89:[1,57],90:[1,55],91:[2,95],93:[2,95],101:[1,54],102:[2,95],104:[2,95],105:[2,95],106:[2,95],110:[2,95],118:[2,95],126:[2,95],128:[2,95],129:[2,95],132:[2,95],133:[2,95],134:[2,95],135:[2,95],136:[2,95],137:[2,95]},{7:135,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,46],6:[2,46],7:136,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,46],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],102:[2,46],103:37,104:[2,46],106:[2,46],107:38,108:[1,65],109:39,110:[2,46],111:67,119:[1,40],124:35,125:[1,62],126:[2,46],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],54:[2,47],78:[2,47],102:[2,47],104:[2,47],106:[2,47],110:[2,47],126:[2,47]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],128:[2,72],129:[2,72],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],128:[2,73],129:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73],137:[2,73]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],128:[2,28],129:[2,28],132:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28],137:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],128:[2,29],129:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29],137:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],128:[2,30],129:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30],137:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],128:[2,31],129:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31],137:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],128:[2,32],129:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32],137:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],128:[2,33],129:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33],137:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],128:[2,34],129:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34],137:[2,34]},{4:137,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,138],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:139,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],87:141,88:[1,56],89:[1,57],90:[1,55],91:[1,140],94:142,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],128:[2,111],129:[2,111],132:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111],137:[2,111]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],27:145,28:[1,71],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],128:[2,112],129:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112],137:[2,112]},{25:[2,50]},{25:[2,51]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],40:[2,67],49:[2,67],54:[2,67],57:[2,67],66:[2,67],67:[2,67],68:[2,67],69:[2,67],71:[2,67],73:[2,67],74:[2,67],78:[2,67],80:[2,67],84:[2,67],85:[2,67],86:[2,67],91:[2,67],93:[2,67],102:[2,67],104:[2,67],105:[2,67],106:[2,67],110:[2,67],118:[2,67],126:[2,67],128:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67],135:[2,67],136:[2,67],137:[2,67],138:[2,67]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70]},{7:146,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:147,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:148,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:150,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:149,25:[1,112],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{27:155,28:[1,71],44:156,58:157,59:158,64:151,76:[1,68],89:[1,109],90:[1,55],113:152,114:[1,153],115:154},{112:159,116:[1,160],117:[1,161]},{6:[2,90],10:165,25:[2,90],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],41:163,42:164,44:168,46:[1,44],54:[2,90],77:162,78:[2,90],89:[1,109]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],118:[2,26],126:[2,26],128:[2,26],129:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],128:[2,27],129:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27],137:[2,27]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],40:[2,25],43:[2,25],49:[2,25],54:[2,25],57:[2,25],66:[2,25],67:[2,25],68:[2,25],69:[2,25],71:[2,25],73:[2,25],74:[2,25],78:[2,25],80:[2,25],84:[2,25],85:[2,25],86:[2,25],91:[2,25],93:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],116:[2,25],117:[2,25],118:[2,25],126:[2,25],128:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25],138:[2,25]},{1:[2,5],5:169,6:[2,5],7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,5],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],102:[2,5],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],104:[2,193],105:[2,193],106:[2,193],110:[2,193],118:[2,193],126:[2,193],128:[2,193],129:[2,193],132:[2,193],133:[2,193],134:[2,193],135:[2,193],136:[2,193],137:[2,193]},{7:170,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:171,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:172,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:173,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:174,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:175,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:176,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:177,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],128:[2,148],129:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148],137:[2,148]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],104:[2,153],105:[2,153],106:[2,153],110:[2,153],118:[2,153],126:[2,153],128:[2,153],129:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153],137:[2,153]},{7:178,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],104:[2,147],105:[2,147],106:[2,147],110:[2,147],118:[2,147],126:[2,147],128:[2,147],129:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147],137:[2,147]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],104:[2,152],105:[2,152],106:[2,152],110:[2,152],118:[2,152],126:[2,152],128:[2,152],129:[2,152],132:[2,152],133:[2,152],134:[2,152],135:[2,152],136:[2,152],137:[2,152]},{82:179,85:[1,101]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68]},{85:[2,108]},{27:180,28:[1,71]},{27:181,28:[1,71]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],27:182,28:[1,71],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83]},{27:183,28:[1,71]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84]},{7:185,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],57:[1,189],58:45,59:46,61:34,63:23,64:24,65:25,72:184,75:186,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],92:187,93:[1,188],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{70:190,71:[1,95],74:[1,96]},{82:191,85:[1,101]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69]},{6:[1,193],7:192,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,194],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],84:[2,106],85:[2,106],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],128:[2,106],129:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106],137:[2,106]},{7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],86:[1,195],87:196,88:[1,56],89:[1,57],90:[1,55],94:142,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,52],25:[2,52],49:[1,198],53:200,54:[1,199]},{6:[2,55],25:[2,55],26:[2,55],49:[2,55],54:[2,55]},{6:[2,59],25:[2,59],26:[2,59],40:[1,202],49:[2,59],54:[2,59],57:[1,201]},{6:[2,62],25:[2,62],26:[2,62],40:[2,62],49:[2,62],54:[2,62],57:[2,62]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{27:145,28:[1,71]},{7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],87:141,88:[1,56],89:[1,57],90:[1,55],91:[1,140],94:142,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],128:[2,49],129:[2,49],132:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49],137:[2,49]},{4:204,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,203],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:82,104:[2,186],105:[2,186],106:[2,186],109:83,110:[2,186],111:67,118:[2,186],126:[2,186],128:[2,186],129:[2,186],132:[1,73],133:[2,186],134:[2,186],135:[2,186],136:[2,186],137:[2,186]},{103:85,104:[1,63],106:[1,64],109:86,110:[1,66],111:67,126:[1,84]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:82,104:[2,187],105:[2,187],106:[2,187],109:83,110:[2,187],111:67,118:[2,187],126:[2,187],128:[2,187],129:[2,187],132:[1,73],133:[2,187],134:[2,187],135:[2,187],136:[2,187],137:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:82,104:[2,188],105:[2,188],106:[2,188],109:83,110:[2,188],111:67,118:[2,188],126:[2,188],128:[2,188],129:[2,188],132:[1,73],133:[2,188],134:[2,188],135:[2,188],136:[2,188],137:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,189],74:[2,71],78:[2,189],84:[2,71],85:[2,71],86:[2,189],91:[2,189],93:[2,189],102:[2,189],104:[2,189],105:[2,189],106:[2,189],110:[2,189],118:[2,189],126:[2,189],128:[2,189],129:[2,189],132:[2,189],133:[2,189],134:[2,189],135:[2,189],136:[2,189],137:[2,189]},{62:88,66:[1,90],67:[1,91],68:[1,92],69:[1,93],70:94,71:[1,95],74:[1,96],81:87,84:[1,89],85:[2,107]},{62:98,66:[1,90],67:[1,91],68:[1,92],69:[1,93],70:94,71:[1,95],74:[1,96],81:97,84:[1,89],85:[2,107]},{66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],74:[2,74],84:[2,74],85:[2,74]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,190],74:[2,71],78:[2,190],84:[2,71],85:[2,71],86:[2,190],91:[2,190],93:[2,190],102:[2,190],104:[2,190],105:[2,190],106:[2,190],110:[2,190],118:[2,190],126:[2,190],128:[2,190],129:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],136:[2,190],137:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],73:[2,191],78:[2,191],86:[2,191],91:[2,191],93:[2,191],102:[2,191],104:[2,191],105:[2,191],106:[2,191],110:[2,191],118:[2,191],126:[2,191],128:[2,191],129:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191],137:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],104:[2,192],105:[2,192],106:[2,192],110:[2,192],118:[2,192],126:[2,192],128:[2,192],129:[2,192],132:[2,192],133:[2,192],134:[2,192],135:[2,192],136:[2,192],137:[2,192]},{6:[1,207],7:205,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,206],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:208,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{24:209,25:[1,112],125:[1,210]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],49:[2,132],54:[2,132],57:[2,132],73:[2,132],78:[2,132],86:[2,132],91:[2,132],93:[2,132],97:211,98:[1,212],99:[1,213],102:[2,132],104:[2,132],105:[2,132],106:[2,132],110:[2,132],118:[2,132],126:[2,132],128:[2,132],129:[2,132],132:[2,132],133:[2,132],134:[2,132],135:[2,132],136:[2,132],137:[2,132]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],104:[2,146],105:[2,146],106:[2,146],110:[2,146],118:[2,146],126:[2,146],128:[2,146],129:[2,146],132:[2,146],133:[2,146],134:[2,146],135:[2,146],136:[2,146],137:[2,146]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],128:[2,154],129:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154],137:[2,154]},{25:[1,214],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{120:215,122:216,123:[1,217]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],49:[2,96],54:[2,96],57:[2,96],73:[2,96],78:[2,96],86:[2,96],91:[2,96],93:[2,96],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],128:[2,96],129:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96],137:[2,96]},{7:218,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,99],6:[2,99],24:219,25:[1,112],26:[2,99],49:[2,99],54:[2,99],57:[2,99],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,99],74:[2,71],78:[2,99],80:[1,220],84:[2,71],85:[2,71],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],128:[2,99],129:[2,99],132:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99],137:[2,99]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],102:[2,139],103:82,104:[2,139],105:[2,139],106:[2,139],109:83,110:[2,139],111:67,118:[2,139],126:[2,139],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,45],6:[2,45],26:[2,45],102:[2,45],103:82,104:[2,45],106:[2,45],109:83,110:[2,45],111:67,126:[2,45],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[1,72],102:[1,221]},{4:222,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,128],25:[2,128],54:[2,128],57:[1,224],91:[2,128],92:223,93:[1,188],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],128:[2,114],129:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114]},{6:[2,52],25:[2,52],53:225,54:[1,226],91:[2,52]},{6:[2,123],25:[2,123],26:[2,123],54:[2,123],86:[2,123],91:[2,123]},{7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],87:227,88:[1,56],89:[1,57],90:[1,55],94:142,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],86:[2,129],91:[2,129]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],40:[2,113],43:[2,113],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],80:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],116:[2,113],117:[2,113],118:[2,113],126:[2,113],128:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113],138:[2,113]},{24:228,25:[1,112],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],73:[2,142],78:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],103:82,104:[1,63],105:[1,229],106:[1,64],109:83,110:[1,66],111:67,118:[2,142],126:[2,142],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:82,104:[1,63],105:[1,230],106:[1,64],109:83,110:[1,66],111:67,118:[2,144],126:[2,144],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],128:[2,150],129:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150],137:[2,150]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],103:82,104:[1,63],105:[2,151],106:[1,64],109:83,110:[1,66],111:67,118:[2,151],126:[2,151],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],128:[2,155],129:[2,155],132:[2,155],133:[2,155],134:[2,155],135:[2,155],136:[2,155],137:[2,155]},{116:[2,157],117:[2,157]},{27:155,28:[1,71],44:156,58:157,59:158,76:[1,68],89:[1,109],90:[1,110],113:231,115:154},{54:[1,232],116:[2,163],117:[2,163]},{54:[2,159],116:[2,159],117:[2,159]},{54:[2,160],116:[2,160],117:[2,160]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],128:[2,156],129:[2,156],132:[2,156],133:[2,156],134:[2,156],135:[2,156],136:[2,156],137:[2,156]},{7:233,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:234,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,52],25:[2,52],53:235,54:[1,236],78:[2,52]},{6:[2,91],25:[2,91],26:[2,91],54:[2,91],78:[2,91]},{6:[2,38],25:[2,38],26:[2,38],43:[1,237],54:[2,38],78:[2,38]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,42],25:[2,42],26:[2,42],43:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],103:82,104:[2,194],105:[2,194],106:[2,194],109:83,110:[2,194],111:67,118:[2,194],126:[2,194],128:[2,194],129:[2,194],132:[1,73],133:[1,76],134:[2,194],135:[2,194],136:[2,194],137:[2,194]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],103:82,104:[2,195],105:[2,195],106:[2,195],109:83,110:[2,195],111:67,118:[2,195],126:[2,195],128:[2,195],129:[2,195],132:[1,73],133:[1,76],134:[2,195],135:[2,195],136:[2,195],137:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],103:82,104:[2,196],105:[2,196],106:[2,196],109:83,110:[2,196],111:67,118:[2,196],126:[2,196],128:[2,196],129:[2,196],132:[1,73],133:[2,196],134:[2,196],135:[2,196],136:[2,196],137:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],103:82,104:[2,197],105:[2,197],106:[2,197],109:83,110:[2,197],111:67,118:[2,197],126:[2,197],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[2,197],135:[2,197],136:[2,197],137:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],103:82,104:[2,198],105:[2,198],106:[2,198],109:83,110:[2,198],111:67,118:[2,198],126:[2,198],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[2,198],136:[2,198],137:[1,80]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],103:82,104:[2,199],105:[2,199],106:[2,199],109:83,110:[2,199],111:67,118:[2,199],126:[2,199],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[2,199],137:[1,80]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:82,104:[2,200],105:[2,200],106:[2,200],109:83,110:[2,200],111:67,118:[2,200],126:[2,200],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[2,200],136:[2,200],137:[2,200]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],103:82,104:[1,63],105:[2,185],106:[1,64],109:83,110:[1,66],111:67,118:[2,185],126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],103:82,104:[1,63],105:[2,184],106:[1,64],109:83,110:[1,66],111:67,118:[2,184],126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],66:[2,103],67:[2,103],68:[2,103],69:[2,103],71:[2,103],73:[2,103],74:[2,103],78:[2,103],84:[2,103],85:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],128:[2,103],129:[2,103],132:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103],137:[2,103]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],40:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],80:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79],137:[2,79],138:[2,79]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82]},{73:[1,238]},{57:[1,189],73:[2,87],92:239,93:[1,188],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{73:[2,88]},{7:240,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,73:[2,122],76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{11:[2,116],28:[2,116],30:[2,116],31:[2,116],33:[2,116],34:[2,116],35:[2,116],36:[2,116],37:[2,116],38:[2,116],45:[2,116],46:[2,116],47:[2,116],51:[2,116],52:[2,116],73:[2,116],76:[2,116],79:[2,116],83:[2,116],88:[2,116],89:[2,116],90:[2,116],96:[2,116],100:[2,116],101:[2,116],104:[2,116],106:[2,116],108:[2,116],110:[2,116],119:[2,116],125:[2,116],127:[2,116],128:[2,116],129:[2,116],130:[2,116],131:[2,116]},{11:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],128:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],128:[2,104],129:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104],137:[2,104]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],73:[2,35],78:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],103:82,104:[2,35],105:[2,35],106:[2,35],109:83,110:[2,35],111:67,118:[2,35],126:[2,35],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{7:241,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:242,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],49:[2,109],54:[2,109],57:[2,109],66:[2,109],67:[2,109],68:[2,109],69:[2,109],71:[2,109],73:[2,109],74:[2,109],78:[2,109],84:[2,109],85:[2,109],86:[2,109],91:[2,109],93:[2,109],102:[2,109],104:[2,109],105:[2,109],106:[2,109],110:[2,109],118:[2,109],126:[2,109],128:[2,109],129:[2,109],132:[2,109],133:[2,109],134:[2,109],135:[2,109],136:[2,109],137:[2,109]},{6:[2,52],25:[2,52],53:243,54:[1,226],86:[2,52]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],57:[1,244],86:[2,128],91:[2,128],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{50:245,51:[1,58],52:[1,59]},{6:[2,53],25:[2,53],26:[2,53],27:105,28:[1,71],44:106,55:246,56:104,58:107,59:108,76:[1,68],89:[1,109],90:[1,110]},{6:[1,247],25:[1,248]},{6:[2,60],25:[2,60],26:[2,60],49:[2,60],54:[2,60]},{7:249,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],98:[2,23],99:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],121:[2,23],123:[2,23],126:[2,23],128:[2,23],129:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23],137:[2,23]},{6:[1,72],26:[1,250]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:82,104:[2,201],105:[2,201],106:[2,201],109:83,110:[2,201],111:67,118:[2,201],126:[2,201],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{7:251,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:252,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:82,104:[2,204],105:[2,204],106:[2,204],109:83,110:[2,204],111:67,118:[2,204],126:[2,204],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],126:[2,183],128:[2,183],129:[2,183],132:[2,183],133:[2,183],134:[2,183],135:[2,183],136:[2,183],137:[2,183]},{7:253,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],73:[2,133],78:[2,133],86:[2,133],91:[2,133],93:[2,133],98:[1,254],102:[2,133],104:[2,133],105:[2,133],106:[2,133],110:[2,133],118:[2,133],126:[2,133],128:[2,133],129:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133],137:[2,133]},{24:255,25:[1,112]},{24:258,25:[1,112],27:256,28:[1,71],59:257,76:[1,68]},{120:259,122:216,123:[1,217]},{26:[1,260],121:[1,261],122:262,123:[1,217]},{26:[2,176],121:[2,176],123:[2,176]},{7:264,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],95:263,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,97],6:[2,97],24:265,25:[1,112],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],103:82,104:[1,63],105:[2,97],106:[1,64],109:83,110:[1,66],111:67,118:[2,97],126:[2,97],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],49:[2,100],54:[2,100],57:[2,100],73:[2,100],78:[2,100],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],128:[2,100],129:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100],137:[2,100]},{7:266,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],66:[2,140],67:[2,140],68:[2,140],69:[2,140],71:[2,140],73:[2,140],74:[2,140],78:[2,140],84:[2,140],85:[2,140],86:[2,140],91:[2,140],93:[2,140],102:[2,140],104:[2,140],105:[2,140],106:[2,140],110:[2,140],118:[2,140],126:[2,140],128:[2,140],129:[2,140],132:[2,140],133:[2,140],134:[2,140],135:[2,140],136:[2,140],137:[2,140]},{6:[1,72],26:[1,267]},{7:268,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,66],11:[2,117],25:[2,66],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],54:[2,66],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],91:[2,66],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117]},{6:[1,270],25:[1,271],91:[1,269]},{6:[2,53],7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,53],26:[2,53],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],86:[2,53],88:[1,56],89:[1,57],90:[1,55],91:[2,53],94:272,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,52],25:[2,52],26:[2,52],53:273,54:[1,226]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],49:[2,180],54:[2,180],57:[2,180],73:[2,180],78:[2,180],86:[2,180],91:[2,180],93:[2,180],102:[2,180],104:[2,180],105:[2,180],106:[2,180],110:[2,180],118:[2,180],121:[2,180],126:[2,180],128:[2,180],129:[2,180],132:[2,180],133:[2,180],134:[2,180],135:[2,180],136:[2,180],137:[2,180]},{7:274,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:275,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{116:[2,158],117:[2,158]},{27:155,28:[1,71],44:156,58:157,59:158,76:[1,68],89:[1,109],90:[1,110],115:276},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],49:[2,165],54:[2,165],57:[2,165],73:[2,165],78:[2,165],86:[2,165],91:[2,165],93:[2,165],102:[2,165],103:82,104:[2,165],105:[1,277],106:[2,165],109:83,110:[2,165],111:67,118:[1,278],126:[2,165],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],49:[2,166],54:[2,166],57:[2,166],73:[2,166],78:[2,166],86:[2,166],91:[2,166],93:[2,166],102:[2,166],103:82,104:[2,166],105:[1,279],106:[2,166],109:83,110:[2,166],111:67,118:[2,166],126:[2,166],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[1,281],25:[1,282],78:[1,280]},{6:[2,53],10:165,25:[2,53],26:[2,53],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],41:283,42:164,44:168,46:[1,44],78:[2,53],89:[1,109]},{7:284,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,285],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85]},{7:286,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,73:[2,120],76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{73:[2,121],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:82,104:[2,36],105:[2,36],106:[2,36],109:83,110:[2,36],111:67,118:[2,36],126:[2,36],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{26:[1,287],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[1,270],25:[1,271],86:[1,288]},{6:[2,66],25:[2,66],26:[2,66],54:[2,66],86:[2,66],91:[2,66]},{24:289,25:[1,112]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{27:105,28:[1,71],44:106,55:290,56:104,58:107,59:108,76:[1,68],89:[1,109],90:[1,110]},{6:[2,54],25:[2,54],26:[2,54],27:105,28:[1,71],44:106,48:291,54:[2,54],55:103,56:104,58:107,59:108,76:[1,68],89:[1,109],90:[1,110]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],128:[2,24],129:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24],137:[2,24]},{26:[1,292],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],103:82,104:[2,203],105:[2,203],106:[2,203],109:83,110:[2,203],111:67,118:[2,203],126:[2,203],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{24:293,25:[1,112],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{24:294,25:[1,112]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],128:[2,134],129:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134],137:[2,134]},{24:295,25:[1,112]},{24:296,25:[1,112]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],128:[2,138],129:[2,138],132:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138],137:[2,138]},{26:[1,297],121:[1,298],122:262,123:[1,217]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],128:[2,174],129:[2,174],132:[2,174],133:[2,174],134:[2,174],135:[2,174],136:[2,174],137:[2,174]},{24:299,25:[1,112]},{26:[2,177],121:[2,177],123:[2,177]},{24:300,25:[1,112],54:[1,301]},{25:[2,130],54:[2,130],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],104:[2,98],105:[2,98],106:[2,98],110:[2,98],118:[2,98],126:[2,98],128:[2,98],129:[2,98],132:[2,98],133:[2,98],134:[2,98],135:[2,98],136:[2,98],137:[2,98]},{1:[2,101],6:[2,101],24:302,25:[1,112],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],103:82,104:[1,63],105:[2,101],106:[1,64],109:83,110:[1,66],111:67,118:[2,101],126:[2,101],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{102:[1,303]},{91:[1,304],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],128:[2,115],129:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115],137:[2,115]},{7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],94:305,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:197,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,60:144,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],87:306,88:[1,56],89:[1,57],90:[1,55],94:142,96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{6:[1,270],25:[1,271],26:[1,307]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],73:[2,143],78:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],103:82,104:[1,63],105:[2,143],106:[1,64],109:83,110:[1,66],111:67,118:[2,143],126:[2,143],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:82,104:[1,63],105:[2,145],106:[1,64],109:83,110:[1,66],111:67,118:[2,145],126:[2,145],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{116:[2,164],117:[2,164]},{7:308,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:309,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:310,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,89],6:[2,89],25:[2,89],26:[2,89],40:[2,89],49:[2,89],54:[2,89],57:[2,89],66:[2,89],67:[2,89],68:[2,89],69:[2,89],71:[2,89],73:[2,89],74:[2,89],78:[2,89],84:[2,89],85:[2,89],86:[2,89],91:[2,89],93:[2,89],102:[2,89],104:[2,89],105:[2,89],106:[2,89],110:[2,89],116:[2,89],117:[2,89],118:[2,89],126:[2,89],128:[2,89],129:[2,89],132:[2,89],133:[2,89],134:[2,89],135:[2,89],136:[2,89],137:[2,89]},{10:165,27:166,28:[1,71],29:167,30:[1,69],31:[1,70],41:311,42:164,44:168,46:[1,44],89:[1,109]},{6:[2,90],10:165,25:[2,90],26:[2,90],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],41:163,42:164,44:168,46:[1,44],54:[2,90],77:312,89:[1,109]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,39],25:[2,39],26:[2,39],54:[2,39],78:[2,39],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{7:313,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{73:[2,119],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],104:[2,37],105:[2,37],106:[2,37],110:[2,37],118:[2,37],126:[2,37],128:[2,37],129:[2,37],132:[2,37],133:[2,37],134:[2,37],135:[2,37],136:[2,37],137:[2,37]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],128:[2,110],129:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110],137:[2,110]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],49:[2,48],54:[2,48],57:[2,48],73:[2,48],78:[2,48],86:[2,48],91:[2,48],93:[2,48],102:[2,48],104:[2,48],105:[2,48],106:[2,48],110:[2,48],118:[2,48],126:[2,48],128:[2,48],129:[2,48],132:[2,48],133:[2,48],134:[2,48],135:[2,48],136:[2,48],137:[2,48]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{6:[2,52],25:[2,52],26:[2,52],53:314,54:[1,199]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],104:[2,202],105:[2,202],106:[2,202],110:[2,202],118:[2,202],126:[2,202],128:[2,202],129:[2,202],132:[2,202],133:[2,202],134:[2,202],135:[2,202],136:[2,202],137:[2,202]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],49:[2,181],54:[2,181],57:[2,181],73:[2,181],78:[2,181],86:[2,181],91:[2,181],93:[2,181],102:[2,181],104:[2,181],105:[2,181],106:[2,181],110:[2,181],118:[2,181],121:[2,181],126:[2,181],128:[2,181],129:[2,181],132:[2,181],133:[2,181],134:[2,181],135:[2,181],136:[2,181],137:[2,181]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],128:[2,135],129:[2,135],132:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135],137:[2,135]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],98:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],128:[2,136],129:[2,136],132:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136],137:[2,136]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],98:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],128:[2,137],129:[2,137],132:[2,137],133:[2,137],134:[2,137],135:[2,137],136:[2,137],137:[2,137]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],104:[2,172],105:[2,172],106:[2,172],110:[2,172],118:[2,172],126:[2,172],128:[2,172],129:[2,172],132:[2,172],133:[2,172],134:[2,172],135:[2,172],136:[2,172],137:[2,172]},{24:315,25:[1,112]},{26:[1,316]},{6:[1,317],26:[2,178],121:[2,178],123:[2,178]},{7:318,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{1:[2,102],6:[2,102],25:[2,102],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],104:[2,102],105:[2,102],106:[2,102],110:[2,102],118:[2,102],126:[2,102],128:[2,102],129:[2,102],132:[2,102],133:[2,102],134:[2,102],135:[2,102],136:[2,102],137:[2,102]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],66:[2,141],67:[2,141],68:[2,141],69:[2,141],71:[2,141],73:[2,141],74:[2,141],78:[2,141],84:[2,141],85:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],104:[2,141],105:[2,141],106:[2,141],110:[2,141],118:[2,141],126:[2,141],128:[2,141],129:[2,141],132:[2,141],133:[2,141],134:[2,141],135:[2,141],136:[2,141],137:[2,141]},{1:[2,118],6:[2,118],25:[2,118],26:[2,118],49:[2,118],54:[2,118],57:[2,118],66:[2,118],67:[2,118],68:[2,118],69:[2,118],71:[2,118],73:[2,118],74:[2,118],78:[2,118],84:[2,118],85:[2,118],86:[2,118],91:[2,118],93:[2,118],102:[2,118],104:[2,118],105:[2,118],106:[2,118],110:[2,118],118:[2,118],126:[2,118],128:[2,118],129:[2,118],132:[2,118],133:[2,118],134:[2,118],135:[2,118],136:[2,118],137:[2,118]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[2,52],25:[2,52],26:[2,52],53:319,54:[1,226]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:82,104:[2,167],105:[2,167],106:[2,167],109:83,110:[2,167],111:67,118:[1,320],126:[2,167],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:82,104:[2,169],105:[1,321],106:[2,169],109:83,110:[2,169],111:67,118:[2,169],126:[2,169],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:82,104:[2,168],105:[2,168],106:[2,168],109:83,110:[2,168],111:67,118:[2,168],126:[2,168],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,52],25:[2,52],26:[2,52],53:322,54:[1,236]},{26:[1,323],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[1,247],25:[1,248],26:[1,324]},{26:[1,325]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],128:[2,175],129:[2,175],132:[2,175],133:[2,175],134:[2,175],135:[2,175],136:[2,175],137:[2,175]},{26:[2,179],121:[2,179],123:[2,179]},{25:[2,131],54:[2,131],103:82,104:[1,63],106:[1,64],109:83,110:[1,66],111:67,126:[1,81],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[1,270],25:[1,271],26:[1,326]},{7:327,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{7:328,8:114,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:60,28:[1,71],29:47,30:[1,69],31:[1,70],32:22,33:[1,48],34:[1,49],35:[1,50],36:[1,51],37:[1,52],38:[1,53],39:21,44:61,45:[1,43],46:[1,44],47:[1,27],50:28,51:[1,58],52:[1,59],58:45,59:46,61:34,63:23,64:24,65:25,76:[1,68],79:[1,41],83:[1,26],88:[1,56],89:[1,57],90:[1,55],96:[1,36],100:[1,42],101:[1,54],103:37,104:[1,63],106:[1,64],107:38,108:[1,65],109:39,110:[1,66],111:67,119:[1,40],124:35,125:[1,62],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33]},{6:[1,281],25:[1,282],26:[1,329]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],104:[2,173],105:[2,173],106:[2,173],110:[2,173],118:[2,173],126:[2,173],128:[2,173],129:[2,173],132:[2,173],133:[2,173],134:[2,173],135:[2,173],136:[2,173],137:[2,173]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:82,104:[2,170],105:[2,170],106:[2,170],109:83,110:[2,170],111:67,118:[2,170],126:[2,170],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:82,104:[2,171],105:[2,171],106:[2,171],109:83,110:[2,171],111:67,118:[2,171],126:[2,171],128:[1,75],129:[1,74],132:[1,73],133:[1,76],134:[1,77],135:[1,78],136:[1,79],137:[1,80]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]}],defaultActions:{58:[2,50],59:[2,51],89:[2,108],186:[2,88]},parseError:function(t,n){if(!n.recoverable){var r=new Error(t);throw r.location=n.loc,r}this.trace(t)},parse:function(t){function v(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function m(){var e;return e=n.lexer.lex()||h,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p);var d=this.lexer.options&&this.lexer.options.ranges;typeof this.yy.parseError=="function"?this.parseError=this.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;var g,y,b,w,E,S,x={},T,N,C,k;for(;;){b=r[r.length-1];if(this.defaultActions[b])w=this.defaultActions[b];else{if(g===null||typeof g=="undefined")g=m();w=o[b]&&o[b][g]}if(typeof w=="undefined"||!w.length||!w[0]){var L="";k=[];for(T in o[b])this.terminals_[T]&&T>c&&k.push("'"+this.terminals_[T]+"'");this.lexer.showPosition?L="Expecting "+k.join(", ")+", got '"+(this.terminals_[g]||g)+"'":L="Unexpected "+(g==h?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.lexer.yylloc.first_line!==p.first_line&&(p=this.lexer.yylloc),this.parseError(L,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:p,expected:k})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(w[0]){case 1:r.push(g),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(w[1]),g=null,y?(g=y,y=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:N=this.productions_[w[1]][1],x.$=i[i.length-N],x._$={first_line:s[s.length-(N||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(N||1)].first_column,last_column:s[s.length-1].last_column},d&&(x._$.range=[s[s.length-(N||1)].range[0],s[s.length-1].range[1]]),S=this.performAction.call(x,u,f,a,this.yy,w[1],i,s);if(typeof S!="undefined")return S;N&&(r=r.slice(0,-1*N*2),i=i.slice(0,-1*N),s=s.slice(0,-1*N)),r.push(this.productions_[w[1]][0]),i.push(x.$),s.push(x._$),C=o[r[r.length-2]][r[r.length-1]],r.push(C);break;case 3:return!0}}return!0}};undefined,i.prototype=r,r.Parser=i,n.exports=new i}),ace.define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(e,t,n){var r,i,s,o;o=e("./helpers"),i=o.extend,s=o.last,t.Scope=r=function(){function e(t,n,r){this.parent=t,this.expressions=n,this.method=r,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(e.root=this)}return e.root=null,e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return((e=this.method)!=null?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){if(this.shared&&this.parent.check(e,!0))return;return this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||((t=this.parent)!=null?t.check(e):void 0))},e.prototype.temporary=function(e,t){return e.length>1?"_"+e+(t>1?t-1:""):"_"+(t+parseInt(e,36)).toString(36).replace(/\d/g,"a")},e.prototype.type=function(e){var t,n,r,i;i=this.variables;for(n=0,r=i.length;n<r;n++){t=i[n];if(t.name===e)return t.type}return null},e.prototype.freeVariable=function(e,t){var n,r;t==null&&(t=!0),n=0;while(this.check(r=this.temporary(e,n)))n++;return t&&this.add(r,"var",!0),r},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e,t,n,r,i,s;e=[],t=[],s=this.variables;for(r=0,i=s.length;r<i;r++)n=s[r],n.type==="var"&&(n.name.charAt(0)==="_"?t:e).push(n.name);return e.sort().concat(t.sort())},e.prototype.assignedVariables=function(){var e,t,n,r,i;r=this.variables,i=[];for(t=0,n=r.length;t<n;t++)e=r[t],e.type.assigned&&i.push(""+e.name+" = "+e.type.value);return i},e}()}),ace.define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/lexer","ace/mode/coffee/helpers"],function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct,ht,pt,dt,vt,mt,gt,yt,bt,wt,Et,St,xt={}.hasOwnProperty,Tt=function(e,t){function r(){this.constructor=e}for(var n in t)xt.call(t,n)&&(e[n]=t[n]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},Nt=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=Infinity,W=e("./scope").Scope,Et=e("./lexer"),I=Et.RESERVED,z=Et.STRICT_PROSCRIBED,St=e("./helpers"),rt=St.compact,ut=St.flatten,ot=St.extend,pt=St.merge,it=St.del,gt=St.starts,st=St.ends,ct=St.last,mt=St.some,nt=St.addLocationDataFn,ht=St.locationDataToString,yt=St.throwSyntaxError,t.extend=ot,t.addLocationDataFn=nt,tt=function(){return!0},D=function(){return!1},K=function(){return this},_=function(){return this.negated=!this.negated,this},t.CodeFragment=c=function(){function e(e,t){var n;this.code=""+t,this.locationData=e!=null?e.locationData:void 0,this.type=(e!=null?(n=e.constructor)!=null?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+ht(this.locationData):"")},e}(),at=function(e){var t;return function(){var n,r,i;i=[];for(n=0,r=e.length;n<r;n++)t=e[n],i.push(t.code);return i}().join("")},t.Base=o=function(){function e(){}return e.prototype.compile=function(e,t){return at(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=ot({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level===A||!n.isStatement(e)?n.compileNode(e):n.compileClosure(e)},e.prototype.compileClosure=function(e){var t,n,i,s,o;(s=this.jumps())&&s.error("cannot use a pure statement in an expression"),e.sharedScope=!0,i=new l([],u.wrap([this])),t=[];if((n=this.contains(ft))||this.contains(lt))t=[new O("this")],n?(o="apply",t.push(new O("arguments"))):o="call",i=new Z(i,[new r(new O(o))]);return(new a(i,t)).compileNode(e)},e.prototype.cache=function(e,t,n){var r,i;return this.isComplex()?(r=new O(n||e.scope.freeVariable("ref")),i=new s(r,this),t?[i.compileToFragments(e,t),[this.makeCode(r.value)]]:[i,r]):(r=t?this.compileToFragments(e,t):this,[r,r])},e.prototype.cacheToCodeFragments=function(e){return[at(e[0]),at(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new a(new O(""+e+".push"),[t]):new R(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){if(e(n))return t=n,!1}),t},e.prototype.lastNonComment=function(e){var t;t=e.length;while(t--)if(!(e[t]instanceof h))return e[t];return null},e.prototype.toString=function(e,t){var n;return e==null&&(e=""),t==null&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+J)}),n},e.prototype.eachChild=function(e){var t,n,r,i,s,o,u,a;if(!this.children)return this;u=this.children;for(r=0,s=u.length;r<s;r++){t=u[r];if(this[t]){a=ut([this[t]]);for(i=0,o=a.length;i<o;i++){n=a[i];if(e(n)===!1)return this}}}return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var r;r=t(n);if(r!==!1)return n.traverseChildren(e,t)})},e.prototype.invert=function(){return new B("!",this)},e.prototype.unwrapAll=function(){var e;e=this;while(e!==(e=e.unwrap()))continue;return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=tt,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=K,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return yt(e,this.locationData)},e.prototype.makeCode=function(e){return new c(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,r,i,s,o;n=[];for(i=s=0,o=e.length;s<o;i=++s)r=e[i],i&&n.push(this.makeCode(t)),n=n.concat(r);return n},e}(),t.Block=u=function(e){function t(e){this.expressions=rt(ut(e||[]))}return Tt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return this.expressions.length===1?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,r,i;i=this.expressions;for(n=0,r=i.length;n<r;n++){t=i[n];if(t.isStatement(e))return!0}return!1},t.prototype.jumps=function(e){var t,n,r,i,s;s=this.expressions;for(r=0,i=s.length;r<i;r++){t=s[r];if(n=t.jumps(e))return n}},t.prototype.makeReturn=function(e){var t,n;n=this.expressions.length;while(n--){t=this.expressions[n];if(!(t instanceof h)){this.expressions[n]=t.makeReturn(e),t instanceof R&&!t.expression&&this.expressions.splice(n,1);break}}return this},t.prototype.compileToFragments=function(e,n){return e==null&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,r,i,s,o,u,a,f,l;this.tab=e.indent,u=e.level===A,r=[],l=this.expressions;for(s=a=0,f=l.length;a<f;s=++a)o=l[s],o=o.unwrapAll(),o=o.unfoldSoak(e)||o,o instanceof t?r.push(o.compileNode(e)):u?(o.front=!0,i=o.compileToFragments(e),o.isStatement(e)||(i.unshift(this.makeCode(""+this.tab)),i.push(this.makeCode(";"))),r.push(i)):r.push(o.compileToFragments(e,C));return u?this.spaced?[].concat(this.joinFragmentArrays(r,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(r,"\n"):(r.length?n=this.joinFragmentArrays(r,", "):n=[this.makeCode("void 0")],r.length>1&&e.level>=C?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,r,i,s,o,u,a,f,l;e.indent=e.bare?"":J,e.level=A,this.spaced=!0,e.scope=new W(null,this,null),l=e.locals||[];for(a=0,f=l.length;a<f;a++)i=l[a],e.scope.parameter(i);return s=[],e.bare||(o=function(){var e,n,i,s;i=this.expressions,s=[];for(r=e=0,n=i.length;e<n;r=++e){t=i[r];if(!(t.unwrap()instanceof h))break;s.push(t)}return s}.call(this),u=this.expressions.slice(o.length),this.expressions=o,o.length&&(s=this.compileNode(pt(e,{indent:""})),s.push(this.makeCode("\n"))),this.expressions=u),n=this.compileWithDeclarations(e),e.bare?n:[].concat(s,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,r,i,s,o,u,a,f,l,c,p,d,v;i=[],o=[],p=this.expressions;for(s=l=0,c=p.length;l<c;s=++l){r=p[s],r=r.unwrap();if(!(r instanceof h||r instanceof O))break}return e=pt(e,{level:A}),s&&(u=this.expressions.splice(s,9e9),d=[this.spaced,!1],f=d[0],this.spaced=d[1],v=[this.compileNode(e),f],i=v[0],this.spaced=v[1],this.expressions=u),o=this.compileNode(e),a=e.scope,a.expressions===this&&(n=e.scope.hasDeclarations(),t=a.hasAssignments,n||t?(s&&i.push(this.makeCode("\n")),i.push(this.makeCode(""+this.tab+"var ")),n&&i.push(this.makeCode(a.declaredVariables().join(", "))),t&&(n&&i.push(this.makeCode(",\n"+(this.tab+J))),i.push(this.makeCode(a.assignedVariables().join(",\n"+(this.tab+J))))),i.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):i.length&&o.length&&i.push(this.makeCode("\n"))),i.concat(o)},t.wrap=function(e){return e.length===1&&e[0]instanceof t?e[0]:new t(e)},t}(o),t.Literal=O=function(e){function t(e){this.value=e}return Tt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return(e=this.value)==="break"||e==="continue"||e==="debugger"},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){if(this.value==="break"&&!((e!=null?e.loop:void 0)||(e!=null?e.block:void 0)))return this;if(this.value==="continue"&&(e!=null?!e.loop:!void 0))return this},t.prototype.compileNode=function(e){var t,n,r;return n=this.value==="this"?((r=e.scope.method)!=null?r.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)]},t.prototype.toString=function(){return' "'+this.value+'"'},t}(o),t.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Tt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?"(void 0)":"void 0")]},t}(o),t.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Tt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(o),t.Bool=function(e){function t(e){this.val=e}return Tt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(o),t.Return=R=function(e){function t(e){e&&!e.unwrap().isUndefined&&(this.expression=e)}return Tt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=tt,t.prototype.makeReturn=K,t.prototype.jumps=K,t.prototype.compileToFragments=function(e,n){var r,i;return r=(i=this.expression)!=null?i.makeReturn():void 0,!r||r instanceof t?t.__super__.compileToFragments.call(this,e,n):r.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t;return t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,L))),t.push(this.makeCode(";")),t},t}(o),t.Value=Z=function(e){function t(e,n,r){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],r&&(this[r]=!0),this)}return Tt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(i)},t.prototype.isRange=function(){return this.bareLiteral(q)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(O)&&U.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(O)&&w.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(O)&&b.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,r;r=this.properties.concat(this.base);for(t=0,n=r.length;t<n;t++){e=r[t];if(e.soak||e instanceof a)return!1}return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof H&&(!e||this.base.generated)},t.prototype.isSplice=function(){return ct(this.properties)instanceof X},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&this.properties.length&&((t=this.properties[0].name)!=null?t.value:void 0)!=="prototype"},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,i,o;return i=ct(this.properties),this.properties.length<2&&!this.base.isComplex()&&(i!=null?!i.isComplex():!void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new O(e.scope.freeVariable("base")),n=new t(new F(new s(r,n)))),i?(i.isComplex()&&(o=new O(e.scope.freeVariable("name")),i=new x(new s(o,i.index)),o=new x(o)),[n.add(i),new t(r||n.base,[o||i])]):[n,r])},t.prototype.compileNode=function(e){var t,n,r,i,s;this.base.front=this.front,r=this.properties,t=this.base.compileToFragments(e,r.length?T:null),(this.base instanceof F||r.length)&&U.test(at(t))&&t.push(this.makeCode("."));for(i=0,s=r.length;i<s;i++)n=r[i],t.push.apply(t,n.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return this.unfoldedSoak!=null?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,i,o,u,a,f,l,c,h,d;if(o=n.base.unfoldSoak(e))return(h=o.body.properties).push.apply(h,n.properties),o;d=n.properties;for(i=l=0,c=d.length;l<c;i=++l){u=d[i];if(!u.soak)continue;return u.soak=!1,r=new t(n.base,n.properties.slice(0,i)),f=new t(n.base,n.properties.slice(i)),r.isComplex()&&(a=new O(e.scope.freeVariable("ref")),r=new F(new s(a,r)),f.base=a),new E(new p(r),f,{soak:!0})}return!1}}(this)()},t}(o),t.Comment=h=function(e){function t(e){this.comment=e}return Tt(t,e),t.prototype.isStatement=tt,t.prototype.makeReturn=K,t.prototype.compileNode=function(e,t){var n,r;return r=this.comment.replace(/^(\s*)#/gm,"$1 *"),n="/*"+dt(r,this.tab)+(Nt.call(r,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===A&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(o),t.Call=a=function(e){function t(e,t,n){this.args=t!=null?t:[],this.soak=n,this.isNew=!1,this.isSuper=e==="super",this.variable=this.isSuper?null:e,e instanceof Z&&e.isNotCallable()&&e.error("literal is not a function")}return Tt(t,e),t.prototype.children=["variable","args"],t.prototype.newInstance=function(){var e,n;return e=((n=this.variable)!=null?n.base:void 0)||this.variable,e instanceof t&&!e.isNew?e.newInstance():this.isNew=!0,this},t.prototype.superReference=function(e){var t,n;return n=e.scope.namedMethod(),(n!=null?n.klass:void 0)?(t=[new r(new O("__super__"))],n["static"]&&t.push(new r(new O("constructor"))),t.push(new r(new O(n.name))),(new Z(new O(n.klass),t)).compile(e)):(n!=null?n.ctor:void 0)?""+n.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},t.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},t.prototype.unfoldSoak=function(e){var n,r,i,s,o,u,a,f,l;if(this.soak){if(this.variable){if(r=bt(e,this,"variable"))return r;f=(new Z(this.variable)).cacheReference(e),i=f[0],o=f[1]}else i=new O(this.superReference(e)),o=new Z(i);return o=new t(o,this.args),o.isNew=this.isNew,i=new O("typeof "+i.compile(e)+' === "function"'),new E(i,new Z(o),{soak:!0})}n=this,s=[];for(;;){if(n.variable instanceof t){s.push(n),n=n.variable;continue}if(!(n.variable instanceof Z))break;s.push(n);if(!((n=n.variable.base)instanceof t))break}l=s.reverse();for(u=0,a=l.length;u<a;u++)n=l[u],r&&(n.variable instanceof t?n.variable=r:n.variable.base=r),r=bt(e,n,"variable");return r},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l;(f=this.variable)!=null&&(f.front=this.front),i=V.compileSplattedArray(e,this.args,!0);if(i.length)return this.compileSplat(e,i);r=[],l=this.args;for(n=u=0,a=l.length;u<a;n=++u)t=l[n],n&&r.push(this.makeCode(", ")),r.push.apply(r,t.compileToFragments(e,C));return s=[],this.isSuper?(o=this.superReference(e)+(".call("+this.superThis(e)),r.length&&(o+=", "),s.push(this.makeCode(o))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode("("))),s.push.apply(s,r),s.push(this.makeCode(")")),s},t.prototype.compileSplat=function(e,t){var n,r,i,s,o,u;return this.isSuper?[].concat(this.makeCode(""+this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+J,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,C),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],r=new Z(this.variable),(o=r.properties.pop())&&r.isComplex()?(u=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+u+" = "),r.compileToFragments(e,C),this.makeCode(")"),o.compileToFragments(e))):(i=r.compileToFragments(e,T),U.test(at(i))&&(i=this.wrapInBraces(i)),o?(u=at(i),i.push.apply(i,o.compileToFragments(e))):u="null",n=n.concat(i)),n=n.concat(this.makeCode(".apply("+u+", "),t,this.makeCode(")")))},t}(o),t.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return Tt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return(new a(new Z(new O(wt("extends"))),[this.child,this.parent])).compileToFragments(e)},t}(o),t.Access=r=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak=t==="soak"}return Tt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(at(t))?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=D,t}(o),t.Index=x=function(e){function t(e){this.index=e}return Tt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,L),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(o),t.Range=q=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive=n==="exclusive",this.equals=this.exclusive?"":"="}return Tt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,r,i,s;e=pt(e,{top:!0}),n=this.cacheToCodeFragments(this.from.cache(e,C)),this.fromC=n[0],this.fromVar=n[1],r=this.cacheToCodeFragments(this.to.cache(e,C)),this.toC=r[0],this.toVar=r[1];if(t=it(e,"step"))i=this.cacheToCodeFragments(t.cache(e,C)),this.step=i[0],this.stepVar=i[1];s=[this.fromVar.match(P),this.toVar.match(P)],this.fromNum=s[0],this.toNum=s[1];if(this.stepVar)return this.stepNum=this.stepVar.match(P)},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return this.fromVar||this.compileVariables(e),e.index?(u=this.fromNum&&this.toNum,s=it(e,"index"),o=it(e,"name"),f=o&&o!==s,h=""+s+" = "+this.fromC,this.toC!==this.toVar&&(h+=", "+this.toC),this.step!==this.stepVar&&(h+=", "+this.step),p=[""+s+" <"+this.equals,""+s+" >"+this.equals],a=p[0],i=p[1],n=this.stepNum?vt(this.stepNum[0])>0?""+a+" "+this.toVar:""+i+" "+this.toVar:u?(d=[vt(this.fromNum[0]),vt(this.toNum[0])],r=d[0],c=d[1],d,r<=c?""+a+" "+c:""+i+" "+c):(t=this.stepVar?""+this.stepVar+" > 0":""+this.fromVar+" <= "+this.toVar,""+t+" ? "+a+" "+this.toVar+" : "+i+" "+this.toVar),l=this.stepVar?""+s+" += "+this.stepVar:u?f?r<=c?"++"+s:"--"+s:r<=c?""+s+"++":""+s+"--":f?""+t+" ? ++"+s+" : --"+s:""+t+" ? "+s+"++ : "+s+"--",f&&(h=""+o+" = "+h),f&&(l=""+o+" = "+l),[this.makeCode(""+h+"; "+n+"; "+l)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20)return f=function(){v=[];for(var e=p=+this.fromNum,t=+this.toNum;p<=t?e<=t:e>=t;p<=t?e++:e--)v.push(e);return v}.apply(this),this.exclusive&&f.pop(),[this.makeCode("["+f.join(", ")+"]")];o=this.tab+J,s=e.scope.freeVariable("i"),l=e.scope.freeVariable("results"),a="\n"+o+l+" = [];",this.fromNum&&this.toNum?(e.index=s,n=at(this.compileNode(e))):(c=""+s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),r=""+this.fromVar+" <= "+this.toVar,n="var "+c+"; "+r+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+r+" ? "+s+"++ : "+s+"--"),u="{ "+l+".push("+s+"); }\n"+o+"return "+l+";\n"+e.indent,i=function(e){return e!=null?e.contains(ft):void 0};if(i(this.from)||i(this.to))t=", arguments";return[this.makeCode("(function() {"+a+"\n"+o+"for ("+n+")"+u+"}).apply(this"+(t!=null?t:"")+")")]},t}(o),t.Slice=X=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Tt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;u=this.range,s=u.to,r=u.from,i=r&&r.compileToFragments(e,L)||[this.makeCode("0")];if(s){t=s.compileToFragments(e,L),n=at(t);if(!!this.range.exclusive||+n!==-1)o=", "+(this.range.exclusive?n:U.test(n)?""+(+n+1):(t=s.compileToFragments(e,T),"+"+at(t)+" + 1 || 9e9"))}return[this.makeCode(".slice("+at(i)+(o||"")+")")]},t}(o),t.Obj=H=function(e){function t(e,t){this.generated=t!=null?t:!1,this.objects=this.properties=e||[]}return Tt(t,e),t.prototype.children=["properties"],t.prototype.compileNode=function(e){var t,n,r,i,o,u,a,f,l,c,p,d,v;l=this.properties;if(!l.length)return[this.makeCode(this.front?"({})":"{}")];if(this.generated)for(c=0,d=l.length;c<d;c++)a=l[c],a instanceof Z&&a.error("cannot have an implicit value in an implicit object");r=e.indent+=J,u=this.lastNonComment(this.properties),t=[];for(n=p=0,v=l.length;p<v;n=++p)f=l[n],o=n===l.length-1?"":f===u||f instanceof h?"\n":",\n",i=f instanceof h?"":r,f instanceof s&&f.variable instanceof Z&&f.variable.hasProperties()&&f.variable.error("Invalid object key"),f instanceof Z&&f["this"]&&(f=new s(f.properties[0].name,f,"object")),f instanceof h||(f instanceof s||(f=new s(f,f,"object")),(f.variable.base||f.variable).asKey=!0),i&&t.push(this.makeCode(i)),t.push.apply(t,f.compileToFragments(e,A)),o&&t.push(this.makeCode(o));return t.unshift(this.makeCode("{"+(l.length&&"\n"))),t.push(this.makeCode(""+(l.length&&"\n"+this.tab)+"}")),this.front?this.wrapInBraces(t):t},t.prototype.assigns=function(e){var t,n,r,i;i=this.properties;for(n=0,r=i.length;n<r;n++){t=i[n];if(t.assigns(e))return!0}return!1},t}(o),t.Arr=i=function(e){function t(e){this.objects=e||[]}return Tt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;if(!this.objects.length)return[this.makeCode("[]")];e.indent+=J,t=V.compileSplattedArray(e,this.objects);if(t.length)return t;t=[],n=function(){var t,n,r,i;r=this.objects,i=[];for(t=0,n=r.length;t<n;t++)s=r[t],i.push(s.compileToFragments(e,C));return i}.call(this);for(i=o=0,u=n.length;o<u;i=++o)r=n[i],i&&t.push(this.makeCode(", ")),t.push.apply(t,r);return at(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,r,i;i=this.objects;for(n=0,r=i.length;n<r;n++){t=i[n];if(t.assigns(e))return!0}return!1},t}(o),t.Class=f=function(e){function t(e,t,n){this.variable=e,this.parent=t,this.body=n!=null?n:new u,this.boundFuncs=[],this.body.classBody=!0}return Tt(t,e),t.prototype.children=["variable","parent","body"],t.prototype.determineName=function(){var e,t;return this.variable?(e=(t=ct(this.variable.properties))?t instanceof r&&t.name.value:this.variable.base.value,Nt.call(z,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=g.test(e)&&e)):null},t.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){if(t.classBody)return!1;if(t instanceof O&&t.value==="this")return t.value=e;if(t instanceof l){t.klass=e;if(t.bound)return t.context=e}})},t.prototype.addBoundFunctions=function(e){var t,n,i,s,o;o=this.boundFuncs;for(i=0,s=o.length;i<s;i++)t=o[i],n=(new Z(new O("this"),[new r(t)])).compile(e),this.ctor.body.unshift(new O(""+n+" = "+wt("bind")+"("+n+", this)"))},t.prototype.addProperties=function(e,t,n){var i,o,u,a,f;return f=e.base.properties.slice(0),u=function(){var e;e=[];while(i=f.shift())i instanceof s&&(o=i.variable.base,delete i.context,a=i.value,o.value==="constructor"?(this.ctor&&i.error("cannot define more than one constructor in a class"),a.bound&&i.error("cannot define a constructor as a bound function"),a instanceof l?i=this.ctor=a:(this.externalCtor=n.classScope.freeVariable("class"),i=new s(new O(this.externalCtor),a))):i.variable["this"]?a["static"]=!0:(i.variable=new Z(new O(t),[new r(new O("prototype")),new r(o)]),a instanceof l&&a.bound&&(this.boundFuncs.push(o),a.bound=!1))),e.push(i);return e}.call(this),rt(u)},t.prototype.walkBody=function(e,n){return this.traverseChildren(!1,function(r){return function(i){var o,a,f,l,c,h,p;o=!0;if(i instanceof t)return!1;if(i instanceof u){p=a=i.expressions;for(f=c=0,h=p.length;c<h;f=++c)l=p[f],l instanceof s&&l.variable.looksStatic(e)?l.value["static"]=!0:l instanceof Z&&l.isObject(!0)&&(o=!1,a[f]=r.addProperties(l,e,n));i.expressions=a=ut(a)}return o&&!(i instanceof t)}}(this))},t.prototype.hoistDirectivePrologue=function(){var e,t,n;t=0,e=this.body.expressions;while((n=e[t])&&n instanceof h||n instanceof Z&&n.isString())++t;return this.directives=e.splice(0,t)},t.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new l,this.externalCtor?this.ctor.body.push(new O(""+this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new O(""+e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},t.prototype.compileNode=function(e){var t,n,r,i,o,f,c,h,p;return(i=this.body.jumps())&&i.error("Class bodies cannot contain pure statements"),(n=this.body.contains(ft))&&n.error("Class bodies shouldn't reference arguments"),c=this.determineName()||"_Class",c.reserved&&(c="_"+c),f=new O(c),r=new l([],u.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(c),this.walkBody(c,e),this.ensureConstructor(c),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(f),this.parent&&(h=new O(e.classScope.freeVariable("super",!1)),this.body.expressions.unshift(new d(f,h)),r.params.push(new j(h)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),o=new F(new a(r,t)),this.variable&&(o=new s(this.variable,o)),o.compileToFragments(e)},t}(o),t.Assign=s=function(e){function t(e,t,n,r){var i,s,o;this.variable=e,this.value=t,this.context=n,this.param=r&&r.param,this.subpattern=r&&r.subpattern,i=(o=s=this.variable.unwrapAll().value,Nt.call(z,o)>=0),i&&this.context!=="object"&&this.variable.error('variable name may not be "'+s+'"')}return Tt(t,e),t.prototype.children=["variable","value"],t.prototype.isStatement=function(e){return(e!=null?e.level:void 0)===A&&this.context!=null&&Nt.call(this.context,"?")>=0},t.prototype.assigns=function(e){return this[this.context==="object"?"value":"variable"].assigns(e)},t.prototype.unfoldSoak=function(e){return bt(e,this,"variable")},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,c;if(r=this.variable instanceof Z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if((a=this.context)==="||="||a==="&&="||a==="?=")return this.compileConditional(e)}n=this.variable.compileToFragments(e,C),s=at(n);if(!this.context){u=this.variable.unwrapAll(),u.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned');if(typeof u.hasProperties=="function"?!u.hasProperties():!void 0)this.param?e.scope.add(s,"var"):e.scope.find(s)}return this.value instanceof l&&(i=M.exec(s))&&(i[2]&&(this.value.klass=i[1]),this.value.name=(f=(c=i[3])!=null?c:i[4])!=null?f:i[5]),o=this.value.compileToFragments(e,C),this.context==="object"?n.concat(this.makeCode(": "),o):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),o),e.level<=C?t:this.wrapInBraces(t))},t.prototype.compilePatternMatch=function(e){var n,i,s,o,u,a,f,l,c,h,p,d,v,m,y,b,w,E,S,T,N,L,M,_,D,P,H,B;b=e.level===A,E=this.value,p=this.variable.base.objects;if(!(d=p.length))return s=E.compileToFragments(e),e.level>=k?this.wrapInBraces(s):s;f=this.variable.isObject();if(!b||d!==1||(h=p[0])instanceof V){S=E.compileToFragments(e,C),T=at(S),i=[],y=!1;if(!g.test(T)||this.variable.assigns(T))i.push([this.makeCode(""+(v=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(S))),S=[this.makeCode(v)],T=v;for(u=N=0,L=p.length;N<L;u=++N)h=p[u],a=u,f&&(h instanceof t?(P=h,H=P.variable,a=H.base,h=P.value):h.base instanceof F?(B=(new Z(h.unwrapAll())).cacheReference(e),h=B[0],a=B[1]):a=h["this"]?h.properties[0].name:h),!y&&h instanceof V?(c=h.name.unwrap().value,h=h.unwrap(),w=""+d+" <= "+T+".length ? "+wt("slice")+".call("+T+", "+u,(m=d-u-1)?(l=e.scope.freeVariable("i"),w+=", "+l+" = "+T+".length - "+m+") : ("+l+" = "+u+", [])"):w+=") : []",w=new O(w),y=""+l+"++"):(c=h.unwrap().value,h instanceof V&&h.error("multiple splats are disallowed in an assignment"),typeof a=="number"?(a=new O(y||a),n=!1):n=f&&g.test(a.unwrap().value||0),w=new Z(new O(T),[new(n?r:x)(a)])),c!=null&&Nt.call(I,c)>=0&&h.error("assignment to a reserved word: "+h.compile(e)),i.push((new t(h,w,null,{param:this.param,subpattern:!0})).compileToFragments(e,C));return!b&&!this.subpattern&&i.push(S),o=this.joinFragmentArrays(i,", "),e.level<C?o:this.wrapInBraces(o)}return h instanceof t?(M=h,_=M.variable,a=_.base,h=M.value):a=f?h["this"]?h.properties[0].name:h:new O(0),n=g.test(a.unwrap().value||0),E=new Z(E),E.properties.push(new(n?r:x)(a)),(D=h.unwrap().value,Nt.call(I,D)>=0)&&h.error("assignment to a reserved word: "+h.compile(e)),(new t(h,E,null,{param:this.param})).compileToFragments(e,A)},t.prototype.compileConditional=function(e){var n,r,i,s;return s=this.variable.cacheReference(e),r=s[0],i=s[1],!r.properties.length&&r.base instanceof O&&r.base.value!=="this"&&!e.scope.check(r.base.value)&&this.variable.error('the variable "'+r.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Nt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,(new E(new p(r),i,{type:"if"})).addElse(new t(i,this.value,"=")).compileToFragments(e)):(n=(new B(this.context.slice(0,-1),r,new t(i,this.value,"="))).compileToFragments(e),e.level<=C?n:this.wrapInBraces(n))},t.prototype.compileSplice=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;return l=this.variable.properties.pop().range,r=l.from,u=l.to,n=l.exclusive,o=this.variable.compile(e),r?(c=this.cacheToCodeFragments(r.cache(e,k)),i=c[0],s=c[1]):i=s="0",u?r instanceof Z&&r.isSimpleNumber()&&u instanceof Z&&u.isSimpleNumber()?(u=u.compile(e)-s,n||(u+=1)):(u=u.compile(e,T)+" - "+s,n||(u+=" + 1")):u="9e9",h=this.value.cache(e,C),a=h[0],f=h[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+i+", "+u+"].concat("),a,this.makeCode(")), "),f),e.level>A?this.wrapInBraces(t):t},t}(o),t.Code=l=function(e){function t(e,t,n){this.params=e||[],this.body=t||new u,this.bound=n==="boundfunc"}return Tt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new W(e,this.body,this)},t.prototype.compileNode=function(e){var n,r,o,f,l,c,h,p,d,v,m,g,y,b,w,S,x,N,C,k,L,A,M,_,D,P,H,F,I,q,R,U,z;this.bound&&((F=e.scope.method)!=null?F.bound:void 0)&&(this.context=e.scope.method.context);if(this.bound&&!this.context)return this.context="_this",w=new t([new j(new O(this.context))],new u([this])),r=new a(w,[new O("this")]),r.updateLocationDataIfMissing(this.locationData),r.compileNode(e);e.scope=it(e,"classScope")||this.makeScope(e.scope),e.scope.shared=it(e,"sharedScope"),e.indent+=J,delete e.bare,delete e.isExistentialEquals,d=[],f=[],I=this.params;for(S=0,k=I.length;S<k;S++)p=I[S],e.scope.parameter(p.asReference(e));q=this.params;for(x=0,L=q.length;x<L;x++){p=q[x];if(!p.splat)continue;R=this.params;for(N=0,A=R.length;N<A;N++)h=R[N].name,h["this"]&&(h=h.properties[0].name),h.value&&e.scope.add(h.value,"var",!0);m=new s(new Z(new i(function(){var t,n,r,i;r=this.params,i=[];for(t=0,n=r.length;t<n;t++)h=r[t],i.push(h.asReference(e));return i}.call(this))),new Z(new O("arguments")));break}U=this.params;for(C=0,M=U.length;C<M;C++)p=U[C],p.isComplex()?(y=v=p.asReference(e),p.value&&(y=new B("?",v,p.value)),f.push(new s(new Z(p.name),y,"=",{param:!0}))):(v=p,p.value&&(c=new O(v.name.value+" == null"),y=new s(new Z(p.name),p.value,"="),f.push(new E(c,y)))),m||d.push(v);b=this.body.isEmpty(),m&&f.unshift(m),f.length&&(z=this.body.expressions).unshift.apply(z,f);for(l=P=0,_=d.length;P<_;l=++P)h=d[l],d[l]=h.compileToFragments(e),e.scope.parameter(at(d[l]));g=[],this.eachParamName(function(e,t){return Nt.call(g,e)>=0&&t.error("multiple parameters named '"+e+"'"),g.push(e)}),!b&&!this.noReturn&&this.body.makeReturn(),o="function",this.ctor&&(o+=" "+this.name),o+="(",n=[this.makeCode(o)];for(l=H=0,D=d.length;H<D;l=++H)h=d[l],l&&n.push(this.makeCode(", ")),n.push.apply(n,h);return n.push(this.makeCode(") {")),this.body.isEmpty()||(n=n.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),n.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(n)):this.front||e.level>=T?this.wrapInBraces(n):n},t.prototype.eachParamName=function(e){var t,n,r,i,s;i=this.params,s=[];for(n=0,r=i.length;n<r;n++)t=i[n],s.push(t.eachName(e));return s},t.prototype.traverseChildren=function(e,n){if(e)return t.__super__.traverseChildren.call(this,e,n)},t}(o),t.Param=j=function(e){function t(e,t,n){var r;this.name=e,this.value=t,this.splat=n,(r=e=this.name.unwrapAll().value,Nt.call(z,r)>=0)&&this.name.error('parameter name "'+e+'" is not allowed')}return Tt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,C)},t.prototype.asReference=function(e){var t;return this.reference?this.reference:(t=this.name,t["this"]?(t=t.properties[0].name,t.value.reserved&&(t=new O(e.scope.freeVariable(t.value)))):t.isComplex()&&(t=new O(e.scope.freeVariable("arg"))),t=new Z(t),this.splat&&(t=new V(t)),t.updateLocationDataIfMissing(this.locationData),this.reference=t)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,i,o,u,a;t==null&&(t=this.name),n=function(t){var n;n=t.properties[0].name;if(!n.value.reserved)return e(n.value,n)};if(t instanceof O)return e(t.value,t);if(t instanceof Z)return n(t);a=t.objects;for(o=0,u=a.length;o<u;o++)i=a[o],i instanceof s?this.eachName(e,i.value.unwrap()):i instanceof V?(r=i.name.unwrap(),e(r.value,r)):i instanceof Z?i.isArray()||i.isObject()?this.eachName(e,i.base):i["this"]?n(i):e(i.base.value,i.base):i.error("illegal parameter "+i.compile())},t}(o),t.Splat=V=function(e){function t(e){this.name=e.compile?e:new O(e)}return Tt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=tt,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,r){var i,s,o,u,a,f,l,c,h,p;l=-1;while((c=n[++l])&&!(c instanceof t))continue;if(l>=n.length)return[];if(n.length===1)return c=n[0],a=c.compileToFragments(e,C),r?a:[].concat(c.makeCode(""+wt("slice")+".call("),a,c.makeCode(")"));i=n.slice(l);for(f=h=0,p=i.length;h<p;f=++h)c=i[f],o=c.compileToFragments(e,C),i[f]=c instanceof t?[].concat(c.makeCode(""+wt("slice")+".call("),o,c.makeCode(")")):[].concat(c.makeCode("["),o,c.makeCode("]"));return l===0?(c=n[0],u=c.joinFragmentArrays(i.slice(1),", "),i[0].concat(c.makeCode(".concat("),u,c.makeCode(")"))):(s=function(){var t,r,i,s;i=n.slice(0,l),s=[];for(t=0,r=i.length;t<r;t++)c=i[t],s.push(c.compileToFragments(e,C));return s}(),s=n[0].joinFragmentArrays(s,", "),u=n[l].joinFragmentArrays(i,", "),[].concat(n[0].makeCode("["),s,n[l].makeCode("].concat("),u,ct(n).makeCode(")")))},t}(o),t.While=et=function(e){function t(e,t){this.condition=(t!=null?t.invert:void 0)?e.invert():e,this.guard=t!=null?t.guard:void 0}return Tt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=tt,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,r,i;e=this.body.expressions;if(!e.length)return!1;for(r=0,i=e.length;r<i;r++){n=e[r];if(t=n.jumps({loop:!0}))return t}return!1},t.prototype.compileNode=function(e){var t,n,r,i;return e.indent+=J,i="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(r=e.scope.freeVariable("results")),i=""+this.tab+r+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new E((new F(this.guard)).invert(),new O("continue"))):this.guard&&(n=u.wrap([new E(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,A),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(i+this.tab+"while ("),this.condition.compileToFragments(e,L),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+r+";")),t},t}(o),t.Op=B=function(e){function r(e,n,r,i){if(e==="in")return new S(n,r);if(e==="do")return this.generateDo(n);if(e==="new"){if(n instanceof a&&!n["do"]&&!n.isNew)return n.newInstance();if(n instanceof l&&n.bound||n["do"])n=new F(n)}return this.operator=t[e]||e,this.first=n,this.second=r,this.flip=!!i,this}var t,n;return Tt(r,e),t={"==":"===","!=":"!==",of:"in"},n={"!==":"===","===":"!=="},r.prototype.children=["first","second"],r.prototype.isSimpleNumber=D,r.prototype.isUnary=function(){return!this.second},r.prototype.isComplex=function(){var e;return!this.isUnary()||(e=this.operator)!=="+"&&e!=="-"||this.first.isComplex()},r.prototype.isChainable=function(){var e;return(e=this.operator)==="<"||e===">"||e===">="||e==="<="||e==="==="||e==="!=="},r.prototype.invert=function(){var e,t,i,s,o;if(this.isChainable()&&this.first.isChainable()){e=!0,t=this;while(t&&t.operator)e&&(e=t.operator in n),t=t.first;if(!e)return(new F(this)).invert();t=this;while(t&&t.operator)t.invert=!t.invert,t.operator=n[t.operator],t=t.first;return this}return(s=n[this.operator])?(this.operator=s,this.first.unwrap()instanceof r&&this.first.invert(),this):this.second?(new F(this)).invert():this.operator==="!"&&(i=this.first.unwrap())instanceof r&&((o=i.operator)==="!"||o==="in"||o==="instanceof")?i:new r("!",this)},r.prototype.unfoldSoak=function(e){var t;return((t=this.operator)==="++"||t==="--"||t==="delete")&&bt(e,this,"first")},r.prototype.generateDo=function(e){var t,n,r,i,o,u,f,c;i=[],n=e instanceof s&&(o=e.value.unwrap())instanceof l?o:e,c=n.params||[];for(u=0,f=c.length;u<f;u++)r=c[u],r.value?(i.push(r.value),delete r.value):i.push(r);return t=new a(e,i),t["do"]=!0,t},r.prototype.compileNode=function(e){var t,n,r,i;return n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),this.operator==="delete"&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),((r=this.operator)==="--"||r==="++")&&(i=this.first.unwrapAll().value,Nt.call(z,i)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),this.isUnary()?this.compileUnary(e):n?this.compileChain(e):this.operator==="?"?this.compileExistence(e):(t=[].concat(this.first.compileToFragments(e,k),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,k)),e.level<=k?t:this.wrapInBraces(t))},r.prototype.compileChain=function(e){var t,n,r,i;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,k),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,k)),this.wrapInBraces(t)},r.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new O(e.scope.freeVariable("ref")),t=new F(new s(n,this.first))):(t=this.first,n=t),(new E(new p(t),n,{type:"if"})).addElse(this.second).compileToFragments(e)},r.prototype.compileUnary=function(e){var t,n,i;n=[],t=this.operator,n.push([this.makeCode(t)]);if(t==="!"&&this.first instanceof p)return this.first.negated=!this.first.negated,this.first.compileToFragments(e);if(e.level>=T)return(new F(this)).compileToFragments(e);i=t==="+"||t==="-",(t==="new"||t==="typeof"||t==="delete"||i&&this.first instanceof r&&this.first.operator===t)&&n.push([this.makeCode(" ")]);if(i&&this.first instanceof r||t==="new"&&this.first.isStatement(e))this.first=new F(this.first);return n.push(this.first.compileToFragments(e,k)),this.flip&&n.reverse(),this.joinFragmentArrays(n,"")},r.prototype.toString=function(e){return r.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},r}(o),t.In=S=function(e){function t(e,t){this.object=e,this.array=t}return Tt(t,e),t.prototype.children=["object","array"],t.prototype.invert=_,t.prototype.compileNode=function(e){var t,n,r,i,s;if(this.array instanceof Z&&this.array.isArray()){s=this.array.base.objects;for(r=0,i=s.length;r<i;r++){n=s[r];if(n instanceof V){t=!0;break}continue}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;if(this.array.base.objects.length===0)return[this.makeCode(""+!!this.negated)];l=this.object.cache(e,k),o=l[0],s=l[1],c=this.negated?[" !== "," && "]:[" === "," || "],t=c[0],n=c[1],u=[],h=this.array.base.objects;for(r=a=0,f=h.length;a<f;r=++a)i=h[r],r&&u.push(this.makeCode(n)),u=u.concat(r?s:o,this.makeCode(t),i.compileToFragments(e,T));return e.level<k?u:this.wrapInBraces(u)},t.prototype.compileLoopTest=function(e){var t,n,r,i;return i=this.object.cache(e,C),r=i[0],n=i[1],t=[].concat(this.makeCode(wt("indexOf")+".call("),this.array.compileToFragments(e,C),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),at(r)===at(n)?t:(t=r.concat(this.makeCode(", "),t),e.level<C?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(o),t.Try=G=function(e){function t(e,t,n,r){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=r}return Tt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=tt,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||((t=this.recovery)!=null?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,i;return e.indent+=J,i=this.attempt.compileToFragments(e,A),t=this.recovery?(r=new O("_error"),this.errorVariable?this.recovery.unshift(new s(this.errorVariable,r)):void 0,[].concat(this.makeCode(" catch ("),r.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,A),this.makeCode("\n"+this.tab+"}"))):!this.ensure&&!this.recovery?[this.makeCode(" catch (_error) {}")]:[],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,A),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(""+this.tab+"try {\n"),i,this.makeCode("\n"+this.tab+"}"),t,n)},t}(o),t.Throw=Q=function(e){function t(e){this.expression=e}return Tt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=tt,t.prototype.jumps=D,t.prototype.makeReturn=K,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(o),t.Existence=p=function(e){function t(e){this.expression=e}return Tt(t,e),t.prototype.children=["expression"],t.prototype.invert=_,t.prototype.compileNode=function(e){var t,n,r,i;return this.expression.front=this.front,r=this.expression.compile(e,k),g.test(r)&&!e.scope.check(r)?(i=this.negated?["===","||"]:["!==","&&"],t=i[0],n=i[1],r="typeof "+r+" "+t+' "undefined" '+n+" "+r+" "+t+" null"):r=""+r+" "+(this.negated?"==":"!=")+" null",[this.makeCode(e.level<=N?r:"("+r+")")]},t}(o),t.Parens=F=function(e){function t(e){this.body=e}return Tt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,r;return n=this.body.unwrap(),n instanceof Z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(r=n.compileToFragments(e,L),t=e.level<k&&(n instanceof B||n instanceof a||n instanceof v&&n.returns),t?r:this.wrapInBraces(r))},t}(o),t.For=v=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=u.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof Z&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof Z&&this.source.base instanceof q&&!this.source.properties.length,this.pattern=this.name instanceof Z,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return Tt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,i,o,a,f,l,c,h,p,d,v,m,y,b,w,S,x,T,N,k,L,M,_,D,H,B,j,I,q,U,z,W;return t=u.wrap([this.body]),S=(z=ct(t.expressions))!=null?z.jumps():void 0,S&&S instanceof R&&(this.returns=!1),H=this.range?this.source.base:this.source,D=e.scope,T=this.name&&this.name.compile(e,C),m=this.index&&this.index.compile(e,C),T&&!this.pattern&&D.find(T),m&&D.find(m),this.returns&&(_=D.freeVariable("results")),y=this.object&&m||D.freeVariable("i"),b=this.range&&T||m||y,w=b!==y?""+b+" = ":"",this.step&&!this.range&&(W=this.cacheToCodeFragments(this.step.cache(e,C)),B=W[0],I=W[1],j=I.match(P)),this.pattern&&(T=y),U="",p="",f="",d=this.tab+J,this.range?h=H.compileToFragments(pt(e,{index:y,name:T,step:this.step})):(q=this.source.compile(e,C),(T||this.own)&&!g.test(q)&&(f+=""+this.tab+(k=D.freeVariable("ref"))+" = "+q+";\n",q=k),T&&!this.pattern&&(N=""+T+" = "+q+"["+b+"]"),this.object||(B!==I&&(f+=""+this.tab+B+";\n"),this.step&&j&&(c=vt(j[0])<0)||(x=D.freeVariable("len")),o=""+w+y+" = 0, "+x+" = "+q+".length",a=""+w+y+" = "+q+".length - 1",r=""+y+" < "+x,i=""+y+" >= 0",this.step?(j?c&&(r=i,o=a):(r=""+I+" > 0 ? "+r+" : "+i,o="("+I+" > 0 ? ("+o+") : "+a+")"),v=""+y+" += "+I):v=""+(b!==y?"++"+y:""+y+"++"),h=[this.makeCode(""+o+"; "+r+"; "+w+v)])),this.returns&&(L=""+this.tab+_+" = [];\n",M="\n"+this.tab+"return "+_+";",t.makeReturn(_)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new E((new F(this.guard)).invert(),new O("continue"))):this.guard&&(t=u.wrap([new E(this.guard,t)]))),this.pattern&&t.expressions.unshift(new s(this.name,new O(""+q+"["+b+"]"))),l=[].concat(this.makeCode(f),this.pluckDirectCall(e,t)),N&&(U="\n"+d+N+";"),this.object&&(h=[this.makeCode(""+b+" in "+q)],this.own&&(p="\n"+d+"if (!"+wt("hasProp")+".call("+q+", "+b+")) continue;")),n=t.compileToFragments(pt(e,{indent:d}),A),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(L||"")+this.tab+"for ("),h,this.makeCode(") {"+p+U),n,this.makeCode(""+this.tab+"}"+(M||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,i,o,u,f,c,h,p,d,v,m,g,y,b,w;r=[],d=t.expressions;for(u=h=0,p=d.length;h<p;u=++h){i=d[u],i=i.unwrapAll();if(!(i instanceof a))continue;c=(v=i.variable)!=null?v.unwrapAll():void 0;if(!(c instanceof l||c instanceof Z&&((m=c.base)!=null?m.unwrapAll():void 0)instanceof l&&c.properties.length===1&&((g=(y=c.properties[0].name)!=null?y.value:void 0)==="call"||g==="apply")))continue;o=((b=c.base)!=null?b.unwrapAll():void 0)||c,f=new O(e.scope.freeVariable("fn")),n=new Z(f),c.base&&(w=[n,c],c.base=w[0],n=w[1]),t.expressions[u]=new a(n,i.args),r=r.concat(this.makeCode(this.tab),(new s(f,o)).compileToFragments(e,A),this.makeCode(";\n"))}return r},t}(et),t.Switch=$=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return Tt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=tt,t.prototype.jumps=function(e){var t,n,r,i,s,o,u,a;e==null&&(e={block:!0}),o=this.cases;for(i=0,s=o.length;i<s;i++){u=o[i],n=u[0],t=u[1];if(r=t.jumps(e))return r}return(a=this.otherwise)!=null?a.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,r,i,s;i=this.cases;for(n=0,r=i.length;n<r;n++)t=i[n],t[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new u([new O("void 0")]))),(s=this.otherwise)!=null&&s.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m;a=e.indent+J,f=e.indent=a+J,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,L):this.makeCode("false"),this.makeCode(") {\n")),d=this.cases;for(u=l=0,h=d.length;l<h;u=++l){v=d[u],i=v[0],t=v[1],m=ut([i]);for(c=0,p=m.length;c<p;c++)r=m[c],this.subject||(r=r.invert()),o=o.concat(this.makeCode(a+"case "),r.compileToFragments(e,L),this.makeCode(":\n"));(n=t.compileToFragments(e,A)).length>0&&(o=o.concat(n,this.makeCode("\n")));if(u===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions);if(s instanceof R||s instanceof O&&s.jumps()&&s.value!=="debugger")continue;o.push(r.makeCode(f+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(a+"default:\n")].concat(Ct.call(this.otherwise.compileToFragments(e,A)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(o),t.If=E=function(e){function t(e,t,n){this.body=t,n==null&&(n={}),this.condition=n.type==="unless"?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return Tt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return(e=this.body)!=null?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return(e=this.elseBody)!=null?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(e!=null?e.level:void 0)===A||this.bodyNode().isStatement(e)||((t=this.elseBodyNode())!=null?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||((t=this.elseBody)!=null?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new u([new O("void 0")]))),this.body&&(this.body=new u([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new u([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof u?e:new u([e])},t.prototype.compileStatement=function(e){var n,r,i,s,o,u,a;return i=it(e,"chainChild"),o=it(e,"isExistentialEquals"),o?(new t(this.condition.invert(),this.elseBodyNode(),{type:"if"})).compileToFragments(e):(a=e.indent+J,s=this.condition.compileToFragments(e,L),r=this.ensureBlock(this.body).compileToFragments(pt(e,{indent:a})),u=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),r,this.makeCode("\n"+this.tab+"}")),i||u.unshift(this.makeCode(this.tab)),this.elseBody?(n=u.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,A))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(pt(e,{indent:a}),A),this.makeCode("\n"+this.tab+"}")),n):u)},t.prototype.compileExpression=function(e){var t,n,r,i;return r=this.condition.compileToFragments(e,N),n=this.bodyNode().compileToFragments(e,C),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,C):[this.makeCode("void 0")],i=r.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=N?this.wrapInBraces(i):i},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(o),Y={"extends":function(){return"function(child, parent) { for (var key in parent) { if ("+wt("hasProp")+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},A=1,L=2,C=3,N=4,k=5,T=6,J="  ",y="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",g=RegExp("^"+y+"$"),U=/^[+-]?\d+$/,m=/^[+-]?0x[\da-f]+/i,P=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,M=RegExp("^("+y+")(\\.prototype)?(?:\\.("+y+")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$"),w=/^['"]/,b=/^\//,wt=function(e){var t;return t="__"+e,W.root.assign(t,Y[e]()),t},dt=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},vt=function(e){return e==null?0:e.match(m)?parseInt(e,16):parseFloat(e)},ft=function(e){return e instanceof O&&e.value==="arguments"&&!e.asKey},lt=function(e){return e instanceof O&&e.value==="this"&&!e.asKey||e instanceof l&&e.bound||e instanceof a&&e.isSuper},bt=function(e,t,n){var r;if(!(r=t[n].unfoldSoak(e)))return;return t[n]=r.body,r.body=new Z(t),r}}),ace.define("ace/mode/coffee/coffee-script",["require","exports","module","ace/mode/coffee/lexer","ace/mode/coffee/parser","ace/mode/coffee/nodes"],function(e,t,n){var r=e("./lexer").Lexer,i=e("./parser"),s=new r;i.lexer={lex:function(){var e,t;return t=this.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return this.tokens=e,this.pos=0},upcomingInput:function(){return""}},i.yy=e("./nodes"),t.parse=function(e){return i.parse(s.tokenize(e))}}),ace.define("ace/mode/coffee_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/coffee/coffee-script"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("../mode/coffee/coffee-script");window.addEventListener=function(){};var o=t.Worker=function(e){i.call(this,e),this.setTimeout(250)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.parse(e).compile()}catch(n){var r=n.location;r&&t.push({row:r.first_line,column:r.first_column,endRow:r.last_line,endColumn:r.last_column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-css.js b/js/ace/worker-css.js
new file mode 100644
index 0000000..87516a1
--- /dev/null
+++ b/js/ace/worker-css.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/css/csslint",["require","exports","module"],function(require,exports,module){function objectToString(e){return Object.prototype.toString.call(e)}function clone(e,t,n,r){function u(e,n){if(e===null)return null;if(n==0)return e;var a;if(typeof e!="object")return e;if(util.isArray(e))a=[];else if(util.isRegExp(e))a=new RegExp(e.source,util.getRegExpFlags(e)),e.lastIndex&&(a.lastIndex=e.lastIndex);else if(util.isDate(e))a=new Date(e.getTime());else{if(o&&Buffer.isBuffer(e))return a=new Buffer(e.length),e.copy(a),a;typeof r=="undefined"?a=Object.create(Object.getPrototypeOf(e)):a=Object.create(r)}if(t){var f=i.indexOf(e);if(f!=-1)return s[f];i.push(e),s.push(a)}for(var l in e)a[l]=u(e[l],n-1);return a}var i=[],s=[],o=typeof Buffer!="undefined";return typeof t=="undefined"&&(t=!0),typeof n=="undefined"&&(n=Infinity),u(e,n)}function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\n\r?/g,"\n"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e=="string"&&(e={type:e}),typeof e.target!="undefined"&&(e.target=this);if(typeof e.type=="undefined")throw new Error("Event object missing 'type' property.");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n<r;n++)t[n].call(this,e)}},removeListener:function(e,t){if(this._listeners[e]){var n=this._listeners[e];for(var r=0,i=n.length;r<i;r++)if(n[r]===t){n.splice(r,1);break}}}},t.prototype={constructor:t,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(e){var t=null;return e=typeof e=="undefined"?1:e,this._cursor<this._input.length&&(t=this._input.charAt(this._cursor+e-1)),t},read:function(){var e=null;return this._cursor<this._input.length&&(this._input.charAt(this._cursor)=="\n"?(this._line++,this._col=1):this._col++,e=this._input.charAt(this._cursor++)),e},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(e){var t="",n;while(t.length<e.length||t.lastIndexOf(e)!=t.length-e.length){n=this.read();if(!n)throw new Error('Expected "'+e+'" at line '+this._line+", col "+this._col+".");t+=n}return t},readWhile:function(e){var t="",n=this.read();while(n!==null&&e(n))t+=n,n=this.read();return t},readMatch:function(e){var t=this._input.substring(this._cursor),n=null;return typeof e=="string"?t.indexOf(e)===0&&(n=this.readCount(e.length)):e instanceof RegExp&&e.test(t)&&(n=this.readCount(RegExp.lastMatch.length)),n},readCount:function(e){var t="";while(e--)t+=this.read();return t}},n.prototype=new Error,r.fromToken=function(e){return new r(e.value,e.startLine,e.startCol)},r.prototype={constructor:r,valueOf:function(){return this.text},toString:function(){return this.text}},i.createTokenData=function(e){var t=[],n={},r=e.concat([]),i=0,s=r.length+1;r.UNKNOWN=-1,r.unshift({name:"EOF"});for(;i<s;i++)t.push(r[i].name),r[r[i].name]=i,r[i].text&&(n[r[i].text]=i);return r.name=function(e){return t[e]},r.type=function(e){return n[e]},r},i.prototype={constructor:i,match:function(e,t){e instanceof Array||(e=[e]);var n=this.get(t),r=0,i=e.length;while(r<i)if(n==e[r++])return!0;return this.unget(),!1},mustMatch:function(e,t){var r;e instanceof Array||(e=[e]);if(!this.match.apply(this,arguments))throw r=this.LT(1),new n("Expected "+this._tokenData[e[0]].name+" at line "+r.startLine+", col "+r.startCol+".",r.startLine,r.startCol)},advance:function(e,t){while(this.LA(0)!==0&&!this.match(e,t))this.get();return this.LA(0)},get:function(e){var t=this._tokenData,n=this._reader,r,i=0,s=t.length,o=!1,u,a;if(this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){i++,this._token=this._lt[this._ltIndex++],a=t[this._token.type];while(a.channel!==undefined&&e!==a.channel&&this._ltIndex<this._lt.length)this._token=this._lt[this._ltIndex++],a=t[this._token.type],i++;if((a.channel===undefined||e===a.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return u=this._getToken(),u.type>-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error("Too much lookahead.");while(t)n=this.get(),t--;while(t<e)this.unget(),t++}else if(e<0){if(!this._lt[this._ltIndex+e])throw new Error("Too much lookbehind.");n=this._lt[this._ltIndex+e].type}else n=this._token.type;return n},LT:function(e){return this.LA(e),this._lt[this._ltIndex+e-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(e){return e<0||e>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type="unknown",/^\s+$/.test(e)?this.type="descendant":e==">"?this.type="child":e=="+"?this.type="adjacent-sibling":e=="~"&&(this.type="sibling")}function MediaFeature(e,t){SyntaxUnit.call(this,"("+e+(t!==null?":"+t:"")+")",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+" ":"")+(t?t:"")+(t&&n.length>0?" and ":"")+n.join(" and "),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":case"vh":case"vw":case"vmax":case"vmin":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-_\u0080-\uFFFF][a-z0-9\-_\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\d/.test(e)}function isWhitespace(e){return e!==null&&/\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\u0080-\uFFFF\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\-\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\-\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",greytext:"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Background color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError("Unknown @ rule.",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:"error",error:null,message:"Unknown @ rule: "+e.LT(0).value+".",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:"error",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire("endstylesheet")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:"charset",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/,"$1"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"import",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"namespace",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(e.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(e.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!="only"&&n!="not"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!="and"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()==="auto"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:"startpagemargin",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endfontface",line:t,col:n})},_viewport:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.VIEWPORT_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endviewport",line:t,col:n})},_operator:function(e){var t=this._tokenStream,n=null;if(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))n=t.token(),this._readWhitespace();return n?PropertyValuePart.fromToken(n):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)=="_"&&this.options.underscoreHack&&(n="_",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:"startrule",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r="",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s<o&&u===null)u=i[s++].call(this);if(u===null){if(r==="")return null;break}s=0,n.push(u),r+=u.toString(),u=null}return r!==""?new SelectorPart(t,n,r,f,l):null},_type_selector:function(){var e=this._tokenStream,t=this._namespace_prefix(),n=this._element_name();return n?(t&&(n.text=t+n.text,n.col-=t.length),n):(t&&(e.unget(),t.length>1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart("."+t.value,"class",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,"elementName",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t="";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+="|";return t.length?t:null},_universal:function(){var e=this._tokenStream,t="",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+="*"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+"]","attribute",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=":",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=":"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,"pseudo",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=")"),t},_expression:function(){var e=this._tokenStream,t="";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r="",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,"not",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r<i&&n===null)n=t[r].call(this),r++;return n===null&&this._unexpectedToken(e.LT(1)),n.type=="elementName"?a=new SelectorPart(n,[],n.toString(),o,u):a=new SelectorPart(null,[n],n.toString(),o,u),a},_declaration:function(){var e=this._tokenStream,t=null,n=null,r=null,i=null,s=null,o="";t=this._property();if(t!==null){e.mustMatch(Tokens.COLON),this._readWhitespace(),n=this._expr(),(!n||n.length===0)&&this._unexpectedToken(e.LT(1)),r=this._prio(),o=t.toString();if(this.options.starHack&&t.hack=="*"||this.options.underscoreHack&&t.hack=="_")o=t.text;try{this._validateProperty(o,n)}catch(u){s=u}return this.fire({type:"property",property:t,value:n,important:r,line:t.line,col:t.col,invalid:s}),!0}return!1},_prio:function(){var e=this._tokenStream,t=e.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),t},_expr:function(e){var t=this._tokenStream,n=[],r=null,i=null;r=this._term(e);if(r!==null){n.push(r);do{i=this._operator(e),i&&n.push(i),r=this._term(e);if(r===null)break;n.push(r)}while(!0)}return n.length>0?new PropertyValue(n,n[0].line,n[0].col):null},_term:function(e){var t=this._tokenStream,n=null,r=null,i=null,s,o,u;return n=this._unary_operator(),n!==null&&(o=t.token().startLine,u=t.token().startCol),t.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(r=this._ie_function(),n===null&&(o=t.token().startLine,u=t.token().startCol)):e&&t.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(s=t.token(),i=s.endChar,r=s.value+this._expr(e).text,n===null&&(o=t.token().startLine,u=t.token().startCol),t.mustMatch(Tokens.type(i)),r+=i,this._readWhitespace()):t.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(r=t.token().value,n===null&&(o=t.token().startLine,u=t.token().startCol),this._readWhitespace()):(s=this._hexcolor(),s===null?(n===null&&(o=t.LT(1).startLine,u=t.LT(1).startCol),r===null&&(t.LA(3)==Tokens.EQUALS&&this.options.ieFilters?r=this._ie_function():r=this._function())):(r=s.value,n===null&&(o=s.startLine,u=s.startCol))),r!==null?new PropertyValuePart(n!==null?n+r:r,o,u):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(!0),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError("Expected a hex color but found '"+n+"' at line "+t.startLine+", col "+t.startCol+".",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i="";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\-([^\-]+)\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:"endkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:"startkeyframerule",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:"error",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t="";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError("Unexpected token '"+e.value+"' at line "+e.startLine+", col "+e.startCol+".",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+="}",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={"align-items":"flex-start | flex-end | center | baseline | stretch","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","-webkit-align-items":"flex-start | flex-end | center | baseline | stretch","-webkit-align-content":"flex-start | flex-end | center | space-between | space-around | stretch","-webkit-align-self":"auto | flex-start | flex-end | center | baseline | stretch","alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"<time>",comma:!0},"animation-direction":{multi:"normal | alternate",comma:!0},"animation-duration":{multi:"<time>",comma:!0},"animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"animation-iteration-count":{multi:"<number> | infinite",comma:!0},"animation-name":{multi:"none | <ident>",comma:!0},"animation-play-state":{multi:"running | paused",comma:!0},"animation-timing-function":1,"-moz-animation-delay":{multi:"<time>",comma:!0},"-moz-animation-direction":{multi:"normal | alternate",comma:!0},"-moz-animation-duration":{multi:"<time>",comma:!0},"-moz-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-moz-animation-name":{multi:"none | <ident>",comma:!0},"-moz-animation-play-state":{multi:"running | paused",comma:!0},"-ms-animation-delay":{multi:"<time>",comma:!0},"-ms-animation-direction":{multi:"normal | alternate",comma:!0},"-ms-animation-duration":{multi:"<time>",comma:!0},"-ms-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-ms-animation-name":{multi:"none | <ident>",comma:!0},"-ms-animation-play-state":{multi:"running | paused",comma:!0},"-webkit-animation-delay":{multi:"<time>",comma:!0},"-webkit-animation-direction":{multi:"normal | alternate",comma:!0},"-webkit-animation-duration":{multi:"<time>",comma:!0},"-webkit-animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"-webkit-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-webkit-animation-name":{multi:"none | <ident>",comma:!0},"-webkit-animation-play-state":{multi:"running | paused",comma:!0},"-o-animation-delay":{multi:"<time>",comma:!0},"-o-animation-direction":{multi:"normal | alternate",comma:!0},"-o-animation-duration":{multi:"<time>",comma:!0},"-o-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-o-animation-name":{multi:"none | <ident>",comma:!0},"-o-animation-play-state":{multi:"running | paused",comma:!0},appearance:"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit",azimuth:function(e){var t="<angle> | leftwards | rightwards | inherit",n="left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",r=!1,i=!1,s;ValidationTypes.isAny(e,t)||(ValidationTypes.isAny(e,"behind")&&(r=!0,i=!0),ValidationTypes.isAny(e,n)&&(i=!0,r||ValidationTypes.isAny(e,"behind")));if(e.hasNext())throw s=e.next(),i?new ValidationError("Expected end of value but found '"+s+"'.",s.line,s.col):new ValidationError("Expected (<'azimuth'>) but found '"+s+"'.",s.line,s.col)},"backface-visibility":"visible | hidden",background:1,"background-attachment":{multi:"<attachment>",comma:!0},"background-clip":{multi:"<box>",comma:!0},"background-color":"<color> | inherit","background-image":{multi:"<bg-image>",comma:!0},"background-origin":{multi:"<box>",comma:!0},"background-position":{multi:"<bg-position>",comma:!0},"background-repeat":{multi:"<repeat-style>"},"background-size":{multi:"<bg-size>",comma:!0},"baseline-shift":"baseline | sub | super | <percentage> | <length>",behavior:1,binding:1,bleed:"<length>","bookmark-label":"<content> | <attr> | <string>","bookmark-level":"none | <integer>","bookmark-state":"open | closed","bookmark-target":"none | <uri> | <attr>",border:"<border-width> || <border-style> || <color>","border-bottom":"<border-width> || <border-style> || <color>","border-bottom-color":"<color> | inherit","border-bottom-left-radius":"<x-one-radius>","border-bottom-right-radius":"<x-one-radius>","border-bottom-style":"<border-style>","border-bottom-width":"<border-width>","border-collapse":"collapse | separate | inherit","border-color":{multi:"<color> | inherit",max:4},"border-image":1,"border-image-outset":{multi:"<length> | <number>",max:4},"border-image-repeat":{multi:"stretch | repeat | round",max:2},"border-image-slice":function(e){var t=!1,n="<number> | <percentage>",r=!1,i=0,s=4,o;ValidationTypes.isAny(e,"fill")&&(r=!0,t=!0);while(e.hasNext()&&i<s){t=ValidationTypes.isAny(e,n);if(!t)break;i++}r?t=!0:ValidationTypes.isAny(e,"fill");if(e.hasNext())throw o=e.next(),t?new ValidationError("Expected end of value but found '"+o+"'.",o.line,o.col):new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '"+o+"'.",o.line,o.col)},"border-image-source":"<image> | none","border-image-width":{multi:"<length> | <percentage> | <number> | auto",max:4},"border-left":"<border-width> || <border-style> || <color>","border-left-color":"<color> | inherit","border-left-style":"<border-style>","border-left-width":"<border-width>","border-radius":function(e){var t=!1,n="<length> | <percentage> | inherit",r=!1,i=!1,s=0,o=8,u;while(e.hasNext()&&s<o){t=ValidationTypes.isAny(e,n);if(!t){if(!(e.peek()=="/"&&s>0&&!r))break;r=!0,o=s+5,e.next()}s++}if(e.hasNext())throw u=e.next(),t?new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col):new ValidationError("Expected (<'border-radius'>) but found '"+u+"'.",u.line,u.col)},"border-right":"<border-width> || <border-style> || <color>","border-right-color":"<color> | inherit","border-right-style":"<border-style>","border-right-width":"<border-width>","border-spacing":{multi:"<length> | inherit",max:2},"border-style":{multi:"<border-style>",max:4},"border-top":"<border-width> || <border-style> || <color>","border-top-color":"<color> | inherit","border-top-left-radius":"<x-one-radius>","border-top-right-radius":"<x-one-radius>","border-top-style":"<border-style>","border-top-width":"<border-width>","border-width":{multi:"<border-width>",max:4},bottom:"<margin-width> | inherit","-moz-box-align":"start | end | center | baseline | stretch","-moz-box-decoration-break":"slice |clone","-moz-box-direction":"normal | reverse | inherit","-moz-box-flex":"<number>","-moz-box-flex-group":"<integer>","-moz-box-lines":"single | multiple","-moz-box-ordinal-group":"<integer>","-moz-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-moz-box-pack":"start | end | center | justify","-webkit-box-align":"start | end | center | baseline | stretch","-webkit-box-decoration-break":"slice |clone","-webkit-box-direction":"normal | reverse | inherit","-webkit-box-flex":"<number>","-webkit-box-flex-group":"<integer>","-webkit-box-lines":"single | multiple","-webkit-box-ordinal-group":"<integer>","-webkit-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-webkit-box-pack":"start | end | center | justify","box-shadow":function(e){var t=!1,n;if(!ValidationTypes.isAny(e,"none"))Validation.multiProperty("<shadow>",e,!0,Infinity);else if(e.hasNext())throw n=e.next(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)},"box-sizing":"content-box | border-box | inherit","break-after":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-before":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-inside":"auto | avoid | avoid-page | avoid-column","caption-side":"top | bottom | inherit",clear:"none | right | left | both | inherit",clip:1,color:"<color> | inherit","color-profile":1,"column-count":"<integer> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<border-width> || <border-style> || <color>","column-rule-color":"<color>","column-rule-style":"<border-style>","column-rule-width":"<border-width>","column-span":"none | all","column-width":"<length> | auto",columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:"<shape> | auto",cue:"cue-after | cue-before | inherit","cue-after":1,"cue-before":1,cursor:1,direction:"ltr | rtl | inherit",display:"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex","dominant-baseline":1,"drop-initial-after-adjust":"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>","drop-initial-after-align":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-before-adjust":"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>","drop-initial-before-align":"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-size":"auto | line | <length> | <percentage>","drop-initial-value":"initial | <integer>",elevation:"<angle> | below | level | above | higher | lower | inherit","empty-cells":"show | hide | inherit",filter:1,fit:"fill | hidden | meet | slice","fit-position":1,flex:"<flex>","flex-basis":"<width>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<flex-direction> || <flex-wrap>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","-webkit-flex":"<flex>","-webkit-flex-basis":"<width>","-webkit-flex-direction":"row | row-reverse | column | column-reverse","-webkit-flex-flow":"<flex-direction> || <flex-wrap>","-webkit-flex-grow":"<number>","-webkit-flex-shrink":"<number>","-webkit-flex-wrap":"nowrap | wrap | wrap-reverse","-ms-flex":"<flex>","-ms-flex-align":"start | end | center | stretch | baseline","-ms-flex-direction":"row | row-reverse | column | column-reverse | inherit","-ms-flex-order":"<number>","-ms-flex-pack":"start | end | center | justify","-ms-flex-wrap":"nowrap | wrap | wrap-reverse","float":"left | right | none | inherit","float-offset":1,font:1,"font-family":1,"font-size":"<absolute-size> | <relative-size> | <length> | <percentage> | inherit","font-size-adjust":"<number> | none | inherit","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit","font-style":"normal | italic | oblique | inherit","font-variant":"normal | small-caps | inherit","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit","grid-cell-stacking":"columns | rows | layer","grid-column":1,"grid-columns":1,"grid-column-align":"start | end | center | stretch","grid-column-sizing":1,"grid-column-span":"<integer>","grid-flow":"none | rows | columns","grid-layer":"<integer>","grid-row":1,"grid-rows":1,"grid-row-align":"start | end | center | stretch","grid-row-span":"<integer>","grid-row-sizing":1,"hanging-punctuation":1,height:"<margin-width> | <content-sizing> | inherit","hyphenate-after":"<integer> | auto","hyphenate-before":"<integer> | auto","hyphenate-character":"<string> | auto","hyphenate-lines":"no-limit | <integer>","hyphenate-resource":1,hyphens:"none | manual | auto",icon:1,"image-orientation":"angle | auto","image-rendering":1,"image-resolution":1,"inline-box-align":"initial | last | <integer>","justify-content":"flex-start | flex-end | center | space-between | space-around","-webkit-justify-content":"flex-start | flex-end | center | space-between | space-around",left:"<margin-width> | inherit","letter-spacing":"<length> | normal | inherit","line-height":"<number> | <length> | <percentage> | normal | inherit","line-break":"auto | loose | normal | strict","line-stacking":1,"line-stacking-ruby":"exclude-ruby | include-ruby","line-stacking-shift":"consider-shifts | disregard-shifts","line-stacking-strategy":"inline-line-height | block-line-height | max-height | grid-height","list-style":1,"list-style-image":"<uri> | none | inherit","list-style-position":"inside | outside | inherit","list-style-type":"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",margin:{multi:"<margin-width> | inherit",max:4},"margin-bottom":"<margin-width> | inherit","margin-left":"<margin-width> | inherit","margin-right":"<margin-width> | inherit","margin-top":"<margin-width> | inherit",mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":"<length> | <percentage> | <content-sizing> | none | inherit","max-width":"<length> | <percentage> | <content-sizing> | none | inherit","min-height":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","min-width":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:"<number> | inherit",order:"<integer>","-webkit-order":"<integer>",orphans:"<integer> | inherit",outline:1,"outline-color":"<color> | invert | inherit","outline-offset":1,"outline-style":"<border-style> | inherit","outline-width":"<border-width> | inherit",overflow:"visible | hidden | scroll | auto | inherit","overflow-style":1,"overflow-wrap":"normal | break-word","overflow-x":1,"overflow-y":1,padding:{multi:"<padding-width> | inherit",max:4},"padding-bottom":"<padding-width> | inherit","padding-left":"<padding-width> | inherit","padding-right":"<padding-width> | inherit","padding-top":"<padding-width> | inherit",page:1,"page-break-after":"auto | always | avoid | left | right | inherit","page-break-before":"auto | always | avoid | left | right | inherit","page-break-inside":"auto | avoid | inherit","page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,"pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",position:"static | relative | absolute | fixed | inherit","presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:"<margin-width> | inherit",rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:"normal | none | spell-out | inherit","speak-header":"once | always | inherit","speak-numeral":"digits | continuous | inherit","speak-punctuation":"code | none | inherit","speech-rate":1,src:1,stress:1,"string-set":1,"table-layout":"auto | fixed | inherit","tab-size":"<integer> | <length>",target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":"left | right | center | justify | inherit","text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":"<length> | <percentage> | inherit","text-justify":"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida","text-outline":1,"text-overflow":1,"text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit","text-shadow":1,"text-transform":"capitalize | uppercase | lowercase | none | inherit","text-wrap":"normal | none | avoid",top:"<margin-width> | inherit","-ms-touch-action":"auto | none | pan-x | pan-y","touch-action":"auto | none | pan-x | pan-y",transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit","user-modify":"read-only | read-write | write-only | inherit","user-select":"none | text | toggle | element | elements | all | inherit","vertical-align":"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",visibility:"visible | hidden | collapse | inherit","voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap","white-space-collapse":1,widows:"<integer> | inherit",width:"<length> | <percentage> | <content-sizing> | auto | inherit","word-break":"normal | keep-all | break-all","word-spacing":"<length> | normal | inherit","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit","z-index":"<integer> | auto | inherit",zoom:"<number> | <percentage> | normal"};PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:"")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return this._i===0},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(e){return this.hasNext()?this._parts[this._i+(e||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(e){return new PropertyValuePart(e.value,e.startLine,e.startCol)};var Pseudos={":first-letter":1,":first-line":1,":before":1,":after":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(e){return e.indexOf("::")===0||Pseudos[e.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(e){var t=["a","b","c","d"],n,r;for(n=0,r=t.length;n<r;n++){if(this[t[n]]<e[t[n]])return-1;if(this[t[n]]>e[t[n]])return 1}return 0},valueOf:function(){return this.a*1e3+this.b*100+this.c*10+this.d},toString:function(){return this.a+","+this.b+","+this.c+","+this.d}},Specificity.calculate=function(e){function u(e){var t,n,r,a,f=e.elementName?e.elementName.text:"",l;f&&f.charAt(f.length-1)!="*"&&o++;for(t=0,r=e.modifiers.length;t<r;t++){l=e.modifiers[t];switch(l.type){case"class":case"attribute":s++;break;case"id":i++;break;case"pseudo":Pseudos.isElement(l.text)?o++:s++;break;case"not":for(n=0,a=l.args.length;n<a;n++)u(l.args[n])}}}var t,n,r,i=0,s=0,o=0;for(t=0,n=e.parts.length;t<n;t++)r=e.parts[t],r instanceof SelectorPart&&u(r);return new Specificity(0,i,s,o)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(e){var t,n=this._reader,r=null,i=n.getLine(),s=n.getCol();t=n.read();while(t){switch(t){case"/":n.peek()=="*"?r=this.commentToken(t,i,s):r=this.charToken(t,i,s);break;case"|":case"~":case"^":case"$":case"*":n.peek()=="="?r=this.comparisonToken(t,i,s):r=this.charToken(t,i,s);break;case'"':case"'":r=this.stringToken(t,i,s);break;case"#":isNameChar(n.peek())?r=this.hashToken(t,i,s):r=this.charToken(t,i,s);break;case".":isDigit(n.peek())?r=this.numberToken(t,i,s):r=this.charToken(t,i,s);break;case"-":n.peek()=="-"?r=this.htmlCommentEndToken(t,i,s):isNameStart(n.peek())?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s);break;case"!":r=this.importantToken(t,i,s);break;case"@":r=this.atRuleToken(t,i,s);break;case":":r=this.notToken(t,i,s);break;case"<":r=this.htmlCommentStartToken(t,i,s);break;case"U":case"u":if(n.peek()=="+"){r=this.unicodeRangeToken(t,i,s);break};default:isDigit(t)?r=this.numberToken(t,i,s):isWhitespace(t)?r=this.whitespaceToken(t,i,s):isIdentStart(t)?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s)}break}return!r&&t===null&&(r=this.createToken(Tokens.EOF,null,i,s)),r},createToken:function(e,t,n,r,i){var s=this._reader;return i=i||{},{value:t,type:e,channel:i.channel,endChar:i.endChar,hide:i.hide||!1,startLine:n,startCol:r,endLine:s.getLine(),endCol:s.getCol()}},atRuleToken:function(e,t,n){var r=e,i=this._reader,s=Tokens.CHAR,o=!1,u,a;i.mark(),u=this.readName(),r=e+u,s=Tokens.type(r.toLowerCase());if(s==Tokens.CHAR||s==Tokens.UNKNOWN)r.length>1?s=Tokens.UNKNOWN_SYM:(s=Tokens.CHAR,r=e,i.reset());return this.createToken(s,r,t,n)},charToken:function(e,t,n){var r=Tokens.type(e),i={};return r==-1?r=Tokens.CHAR:i.endChar=Tokens[r].endChar,this.createToken(r,e,t,n,i)},commentToken:function(e,t,n){var r=this._reader,i=this.readComment(e);return this.createToken(Tokens.COMMENT,i,t,n)},comparisonToken:function(e,t,n){var r=this._reader,i=e+r.read(),s=Tokens.type(i)||Tokens.CHAR;return this.createToken(s,i,t,n)},hashToken:function(e,t,n){var r=this._reader,i=this.readName(e);return this.createToken(Tokens.HASH,i,t,n)},htmlCommentStartToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(3),i=="<!--"?this.createToken(Tokens.CDO,i,t,n):(r.reset(),this.charToken(e,t,n))},htmlCommentEndToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(2),i=="-->"?this.createToken(Tokens.CDC,i,t,n):(r.reset(),this.charToken(e,t,n))},identOrFunctionToken:function(e,t,n){var r=this._reader,i=this.readName(e),s=Tokens.IDENT;return r.peek()=="("?(i+=r.read(),i.toLowerCase()=="url("?(s=Tokens.URI,i=this.readURI(i),i.toLowerCase()=="url("&&(s=Tokens.FUNCTION)):s=Tokens.FUNCTION):r.peek()==":"&&i.toLowerCase()=="progid"&&(i+=r.readTo("("),s=Tokens.IE_FUNCTION),this.createToken(s,i,t,n)},importantToken:function(e,t,n){var r=this._reader,i=e,s=Tokens.CHAR,o,u;r.mark(),u=r.read();while(u){if(u=="/"){if(r.peek()!="*")break;o=this.readComment(u);if(o==="")break}else{if(!isWhitespace(u)){if(/i/i.test(u)){o=r.readCount(8),/mportant/i.test(o)&&(i+=u+o,s=Tokens.IMPORTANT_SYM);break}break}i+=u+this.readWhitespace()}u=r.read()}return s==Tokens.CHAR?(r.reset(),this.charToken(e,t,n)):this.createToken(s,i,t,n)},notToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(4),i.toLowerCase()==":not("?this.createToken(Tokens.NOT,i,t,n):(r.reset(),this.charToken(e,t,n))},numberToken:function(e,t,n){var r=this._reader,i=this.readNumber(e),s,o=Tokens.NUMBER,u=r.peek();return isIdentStart(u)?(s=this.readName(r.read()),i+=s,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(s)?o=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(s)?o=Tokens.ANGLE:/^ms$|^s$/i.test(s)?o=Tokens.TIME:/^hz$|^khz$/i.test(s)?o=Tokens.FREQ:/^dpi$|^dpcm$/i.test(s)?o=Tokens.RESOLUTION:o=Tokens.DIMENSION):u=="%"&&(i+=r.read(),o=Tokens.PERCENTAGE),this.createToken(o,i,t,n)},stringToken:function(e,t,n){var r=e,i=e,s=this._reader,o=e,u=Tokens.STRING,a=s.read();while(a){i+=a;if(a==r&&o!="\\")break;if(isNewLine(s.peek())&&a!="\\"){u=Tokens.INVALID;break}o=a,a=s.read()}return a===null&&(u=Tokens.INVALID),this.createToken(u,i,t,n)},unicodeRangeToken:function(e,t,n){var r=this._reader,i=e,s,o=Tokens.CHAR;return r.peek()=="+"&&(r.mark(),i+=r.read(),i+=this.readUnicodeRangePart(!0),i.length==2?r.reset():(o=Tokens.UNICODE_RANGE,i.indexOf("?")==-1&&r.peek()=="-"&&(r.mark(),s=r.read(),s+=this.readUnicodeRangePart(!1),s.length==1?r.reset():i+=s))),this.createToken(o,i,t,n)},whitespaceToken:function(e,t,n){var r=this._reader,i=e+this.readWhitespace();return this.createToken(Tokens.S,i,t,n)},readUnicodeRangePart:function(e){var t=this._reader,n="",r=t.peek();while(isHexDigit(r)&&n.length<6)t.read(),n+=r,r=t.peek();if(e)while(r=="?"&&n.length<6)t.read(),n+=r,r=t.peek();return n},readWhitespace:function(){var e=this._reader,t="",n=e.peek();while(isWhitespace(n))e.read(),t+=n,n=e.peek();return t},readNumber:function(e){var t=this._reader,n=e,r=e==".",i=t.peek();while(i){if(isDigit(i))n+=t.read();else{if(i!=".")break;if(r)break;r=!0,n+=t.read()}i=t.peek()}return n},readString:function(){var e=this._reader,t=e.read(),n=t,r=t,i=e.peek();while(i){i=e.read(),n+=i;if(i==t&&r!="\\")break;if(isNewLine(e.peek())&&i!="\\"){n="";break}r=i,i=e.peek()}return i===null&&(n=""),n},readURI:function(e){var t=this._reader,n=e,r="",i=t.peek();t.mark();while(i&&isWhitespace(i))t.read(),i=t.peek();i=="'"||i=='"'?r=this.readString():r=this.readURL(),i=t.peek();while(i&&isWhitespace(i))t.read(),i=t.peek();return r===""||i!=")"?(n=e,t.reset()):n+=r+t.read(),n},readURL:function(){var e=this._reader,t="",n=e.peek();while(/^[!#$%&\\*-~]$/.test(n))t+=e.read(),n=e.peek();return t},readName:function(e){var t=this._reader,n=e||"",r=t.peek();for(;;)if(r=="\\")n+=this.readEscape(t.read()),r=t.peek();else{if(!r||!isNameChar(r))break;n+=t.read(),r=t.peek()}return n},readEscape:function(e){var t=this._reader,n=e||"",r=0,i=t.peek();if(isHexDigit(i))do n+=t.read(),i=t.peek();while(i&&isHexDigit(i)&&++r<6);return n.length==3&&/\s/.test(i)||n.length==7||n.length==1?t.read():i="",n+i},readComment:function(e){var t=this._reader,n=e||"",r=t.read();if(r=="*"){while(r){n+=r;if(n.length>2&&r=="*"&&t.peek()=="/"){n+=t.read();break}r=t.read()}return n}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"VIEWPORT_SYM",text:["@viewport","@-ms-viewport"]},{name:"UNKNOWN_SYM"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes","@-o-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",endChar:"}",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",endChar:"]",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",endChar:")",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var e=[],t={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var n=0,r=Tokens.length;n<r;n++){e.push(Tokens[n].name),Tokens[Tokens[n].name]=n;if(Tokens[n].text)if(Tokens[n].text instanceof Array)for(var i=0;i<Tokens[n].text.length;i++)t[Tokens[n].text[i]]=n;else t[Tokens[n].text]=n}Tokens.name=function(t){return e[t]},Tokens.type=function(e){return t[e]||-1}})();var Validation={validate:function(e,t){var n=e.toString().toLowerCase(),r=t.parts,i=new PropertyValueIterator(t),s=Properties[n],o,u,a,f,l,c,h,p,d,v,m;if(!s){if(n.indexOf("-")!==0)throw new ValidationError("Unknown property '"+e+"'.",e.line,e.col)}else typeof s!="number"&&(typeof s=="string"?s.indexOf("||")>-1?this.groupProperty(s,i):this.singleProperty(s,i,1):s.multi?this.multiProperty(s.multi,i,s.comma,s.max||Infinity):typeof s=="function"&&s(i))},singleProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u;while(t.hasNext()&&o<n){i=ValidationTypes.isAny(t,e);if(!i)break;o++}if(!i)throw t.hasNext()&&!t.isFirst()?(u=t.peek(),new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col)):new ValidationError("Expected ("+e+") but found '"+s+"'.",s.line,s.col);if(t.hasNext())throw u=t.next(),new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col)},multiProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u=!1,a;while(t.hasNext()&&!i&&o<r){if(!ValidationTypes.isAny(t,e))break;o++;if(!t.hasNext())i=!0;else if(n){if(t.peek()!=",")break;a=t.next()}}if(!i)throw t.hasNext()&&!t.isFirst()?(a=t.peek(),new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col)):(a=t.previous(),n&&a==","?new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col):new ValidationError("Expected ("+e+") but found '"+s+"'.",s.line,s.col));if(t.hasNext())throw a=t.next(),new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col)},groupProperty:function(e,t,n){var r=!1,i=t.value,s=e.split("||").length,o={count:0},u=!1,a,f;while(t.hasNext()&&!r){a=ValidationTypes.isAnyOfGroup(t,e);if(!a)break;if(o[a])break;o[a]=1,o.count++,u=!0;if(o.count==s||!t.hasNext())r=!0}if(!r)throw u&&t.hasNext()?(f=t.peek(),new ValidationError("Expected end of value but found '"+f+"'.",f.line,f.col)):new ValidationError("Expected ("+e+") but found '"+i+"'.",i.line,i.col);if(t.hasNext())throw f=t.next(),new ValidationError("Expected end of value but found '"+f+"'.",f.line,f.col)}};ValidationError.prototype=new Error;var ValidationTypes={isLiteral:function(e,t){var n=e.text.toString().toLowerCase(),r=t.split(" | "),i,s,o=!1;for(i=0,s=r.length;i<s&&!o;i++)n==r[i].toLowerCase()&&(o=!0);return o},isSimple:function(e){return!!this.simple[e]},isComplex:function(e){return!!this.complex[e]},isAny:function(e,t){var n=t.split(" | "),r,i,s=!1;for(r=0,i=n.length;r<i&&!s&&e.hasNext();r++)s=this.isType(e,n[r]);return s},isAnyOfGroup:function(e,t){var n=t.split(" || "),r,i,s=!1;for(r=0,i=n.length;r<i&&!s;r++)s=this.isType(e,n[r]);return s?n[r-1]:!1},isType:function(e,t){var n=e.peek(),r=!1;return t.charAt(0)!="<"?(r=this.isLiteral(n,t),r&&e.next()):this.simple[t]?(r=this.simple[t](n),r&&e.next()):r=this.complex[t](e),r},simple:{"<absolute-size>":function(e){return ValidationTypes.isLiteral(e,"xx-small | x-small | small | medium | large | x-large | xx-large")},"<attachment>":function(e){return ValidationTypes.isLiteral(e,"scroll | fixed | local")},"<attr>":function(e){return e.type=="function"&&e.name=="attr"},"<bg-image>":function(e){return this["<image>"](e)||this["<gradient>"](e)||e=="none"},"<gradient>":function(e){return e.type=="function"&&/^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(e)},"<box>":function(e){return ValidationTypes.isLiteral(e,"padding-box | border-box | content-box")},"<content>":function(e){return e.type=="function"&&e.name=="content"},"<relative-size>":function(e){return ValidationTypes.isLiteral(e,"smaller | larger")},"<ident>":function(e){return e.type=="identifier"},"<length>":function(e){return e.type=="function"&&/^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(e)?!0:e.type=="length"||e.type=="number"||e.type=="integer"||e=="0"},"<color>":function(e){return e.type=="color"||e=="transparent"},"<number>":function(e){return e.type=="number"||this["<integer>"](e)},"<integer>":function(e){return e.type=="integer"},"<line>":function(e){return e.type=="integer"},"<angle>":function(e){return e.type=="angle"},"<uri>":function(e){return e.type=="uri"},"<image>":function(e){return this["<uri>"](e)},"<percentage>":function(e){return e.type=="percentage"||e=="0"},"<border-width>":function(e){return this["<length>"](e)||ValidationTypes.isLiteral(e,"thin | medium | thick")},"<border-style>":function(e){return ValidationTypes.isLiteral(e,"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")},"<content-sizing>":function(e){return ValidationTypes.isLiteral(e,"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content")},"<margin-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)||ValidationTypes.isLiteral(e,"auto")},"<padding-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)},"<shape>":function(e){return e.type=="function"&&(e.name=="rect"||e.name=="inset-rect")},"<time>":function(e){return e.type=="time"},"<flex-grow>":function(e){return this["<number>"](e)},"<flex-shrink>":function(e){return this["<number>"](e)},"<width>":function(e){return this["<margin-width>"](e)},"<flex-basis>":function(e){return this["<width>"](e)},"<flex-direction>":function(e){return ValidationTypes.isLiteral(e,"row | row-reverse | column | column-reverse")},"<flex-wrap>":function(e){return ValidationTypes.isLiteral(e,"nowrap | wrap | wrap-reverse")}},complex:{"<bg-position>":function(e){var t=this,n=!1,r="<percentage> | <length>",i="left | right",s="top | bottom",o=0,u=function(){return e.hasNext()&&e.peek()!=","};while(e.peek(o)&&e.peek(o)!=",")o++;return o<3?ValidationTypes.isAny(e,i+" | center | "+r)?(n=!0,ValidationTypes.isAny(e,s+" | center | "+r)):ValidationTypes.isAny(e,s)&&(n=!0,ValidationTypes.isAny(e,i+" | center")):ValidationTypes.isAny(e,i)?ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,"center")&&(n=!0)):ValidationTypes.isAny(e,s)?ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,"center")&&(n=!0)):ValidationTypes.isAny(e,"center")&&ValidationTypes.isAny(e,i+" | "+s)&&(n=!0,ValidationTypes.isAny(e,r)),n},"<bg-size>":function(e){var t=this,n=!1,r="<percentage> | <length> | auto",i,s,o;return ValidationTypes.isAny(e,"cover | contain")?n=!0:ValidationTypes.isAny(e,r)&&(n=!0,ValidationTypes.isAny(e,r)),n},"<repeat-style>":function(e){var t=!1,n="repeat | space | round | no-repeat",r;return e.hasNext()&&(r=e.next(),ValidationTypes.isLiteral(r,"repeat-x | repeat-y")?t=!0:ValidationTypes.isLiteral(r,n)&&(t=!0,e.hasNext()&&ValidationTypes.isLiteral(e.peek(),n)&&e.next())),t},"<shadow>":function(e){var t=!1,n=0,r=!1,i=!1,s;if(e.hasNext()){ValidationTypes.isAny(e,"inset")&&(r=!0),ValidationTypes.isAny(e,"<color>")&&(i=!0);while(ValidationTypes.isAny(e,"<length>")&&n<4)n++;e.hasNext()&&(i||ValidationTypes.isAny(e,"<color>"),r||ValidationTypes.isAny(e,"inset")),t=n>=2&&n<=4}return t},"<x-one-radius>":function(e){var t=!1,n="<length> | <percentage> | inherit";return ValidationTypes.isAny(e,n)&&(t=!0,ValidationTypes.isAny(e,n)),t},"<flex>":function(e){var t,n=!1;ValidationTypes.isAny(e,"none | inherit")?n=!0:ValidationTypes.isType(e,"<flex-grow>")?e.peek()?ValidationTypes.isType(e,"<flex-shrink>")?e.peek()?n=ValidationTypes.isType(e,"<flex-basis>"):n=!0:ValidationTypes.isType(e,"<flex-basis>")&&(n=e.peek()===null):n=!0:ValidationTypes.isType(e,"<flex-basis>")&&(n=!0);if(!n)throw t=e.peek(),new ValidationError("Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '"+e.value.text+"'.",t.line,t.col);return n}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var e in parserlib)exports[e]=parserlib[e]}();var util={isArray:function(e){return Array.isArray(e)||typeof e=="object"&&objectToString(e)==="[object Array]"},isDate:function(e){return typeof e=="object"&&objectToString(e)==="[object Date]"},isRegExp:function(e){return typeof e=="object"&&objectToString(e)==="[object RegExp]"},getRegExpFlags:function(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}};typeof module=="object"&&(module.exports=clone),clone.clonePrototype=function(e){if(e===null)return null;var t=function(){};return t.prototype=e,new t};var CSSLint=function(){function i(e,t){var r,i=e&&e.match(n),s=i&&i[1];return s&&(r={"true":2,"":1,"false":0,2:2,1:1,0:0},s.toLowerCase().split(",").forEach(function(e){var n=e.split(":"),i=n[0]||"",s=n[1]||"";t[i.trim()]=r[s.trim()]})),t}var e=[],t=[],n=/\/\*csslint([^\*]*)\*\//,r=new parserlib.util.EventTarget;return r.version="@VERSION@",r.addRule=function(t){e.push(t),e[t.id]=t},r.clearRules=function(){e=[]},r.getRules=function(){return[].concat(e).sort(function(e,t){return e.id>t.id?1:0})},r.getRuleset=function(){var t={},n=0,r=e.length;while(n<r)t[e[n++].id]=1;return t},r.addFormatter=function(e){t[e.id]=e},r.getFormatter=function(e){return t[e]},r.format=function(e,t,n,r){var i=this.getFormatter(n),s=null;return i&&(s=i.startFormat(),s+=i.formatResults(e,t,r||{}),s+=i.endFormat()),s},r.hasFormat=function(e){return t.hasOwnProperty(e)},r.verify=function(t,r){var s=0,o,u,a,f=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});u=t.replace(/\n\r?/g,"$split$").split("$split$"),r||(r=this.getRuleset()),n.test(t)&&(r=clone(r),r=i(t,r)),o=new Reporter(u,r),r.errors=2;for(s in r)r.hasOwnProperty(s)&&r[s]&&e[s]&&e[s].init(f,o);try{f.parse(t)}catch(l){o.error("Fatal error, cannot continue: "+l.message,l.line,l.col,{})}return a={messages:o.messages,stats:o.stats,ruleset:o.ruleset},a.messages.sort(function(e,t){return e.rollup&&!t.rollup?1:!e.rollup&&t.rollup?-1:e.line-t.line}),a},r}();Reporter.prototype={constructor:Reporter,error:function(e,t,n,r){this.messages.push({type:"error",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r||{}})},warn:function(e,t,n,r){this.report(e,t,n,r)},report:function(e,t,n,r){this.messages.push({type:this.ruleset[r.id]===2?"error":"warning",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},info:function(e,t,n,r){this.messages.push({type:"info",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},rollupError:function(e,t){this.messages.push({type:"error",rollup:!0,message:e,rule:t})},rollupWarn:function(e,t){this.messages.push({type:"warning",rollup:!0,message:e,rule:t})},stat:function(e,t){this.stats[e]=t}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return n},indexOf:function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t){if(e.forEach)return e.forEach(t);for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)}},CSSLint.addRule({id:"adjoining-classes",name:"Disallow adjoining classes",desc:"Don't use adjoining classes.",browsers:"IE6",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f];for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE){a=0;for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type==="class"&&a++,a>1&&t.report("Don't use adjoining classes.",o.line,o.col,n)}}}})}}),CSSLint.addRule({id:"box-model",name:"Beware of broken box size",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(e,t){function u(){s={},o=!1}function a(){var e,u;if(!o){if(s.height)for(e in i)i.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!=="padding"||u.parts.length!==2||u.parts[0].value!==0)&&t.report("Using height with "+e+" can sometimes make elements larger than you expect.",s[e].line,s[e].col,n));if(s.width)for(e in r)r.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!=="padding"||u.parts.length!==2||u.parts[1].value!==0)&&t.report("Using width with "+e+" can sometimes make elements larger than you expect.",s[e].line,s[e].col,n))}}var n=this,r={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},i={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},s,o=!1;e.addListener("startrule",u),e.addListener("startfontface",u),e.addListener("startpage",u),e.addListener("startpagemargin",u),e.addListener("startkeyframerule",u),e.addListener("property",function(e){var t=e.property.text.toLowerCase();i[t]||r[t]?!/^0\S*$/.test(e.value)&&(t!=="border"||e.value.toString()!=="none")&&(s[t]={line:e.property.line,col:e.property.col,value:e.value}):/^(width|height)/i.test(t)&&/^(length|percentage)/.test(e.value.parts[0].type)?s[t]=1:t==="box-sizing"&&(o=!0)}),e.addListener("endrule",a),e.addListener("endfontface",a),e.addListener("endpage",a),e.addListener("endpagemargin",a),e.addListener("endkeyframerule",a)}}),CSSLint.addRule({id:"box-sizing",name:"Disallow use of box-sizing",desc:"The box-sizing properties isn't supported in IE6 and IE7.",browsers:"IE6, IE7",tags:["Compatibility"],init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property.text.toLowerCase();r==="box-sizing"&&t.report("The box-sizing property isn't supported in IE6 and IE7.",e.line,e.col,n)})}}),CSSLint.addRule({id:"bulletproof-font-face",name:"Use the bulletproof @font-face syntax",desc:"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",browsers:"All",init:function(e,t){var n=this,r=!1,i=!0,s=!1,o,u;e.addListener("startfontface",function(){r=!0}),e.addListener("property",function(e){if(!r)return;var t=e.property.toString().toLowerCase(),n=e.value.toString();o=e.line,u=e.col;if(t==="src"){var a=/^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;!n.match(a)&&i?(s=!0,i=!1):n.match(a)&&!i&&(s=!1)}}),e.addListener("endfontface",function(){r=!1,s&&t.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.",o,u,n)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Require compatible vendor prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(e,t){var n=this,r,i,s,o,u,a,f,l=!1,c=Array.prototype.push,h=[];r={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz ms","column-gap":"webkit moz ms","column-rule":"webkit moz ms","column-rule-color":"webkit moz ms","column-rule-style":"webkit moz ms","column-rule-width":"webkit moz ms","column-width":"webkit moz ms",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz ms","word-break":"epub ms","writing-mode":"epub ms"};for(s in r)if(r.hasOwnProperty(s)){o=[],u=r[s].split(" ");for(a=0,f=u.length;a<f;a++)o.push("-"+u[a]+"-"+s);r[s]=o,c.apply(h,o)}e.addListener("startrule",function(){i=[]}),e.addListener("startkeyframes",function(e){l=e.prefix||!0}),e.addListener("endkeyframes",function(){l=!1}),e.addListener("property",function(e){var t=e.property;CSSLint.Util.indexOf(h,t.text)>-1&&(!l||typeof l!="string"||t.text.indexOf("-"+l+"-")!==0)&&i.push(t)}),e.addListener("endrule",function(){if(!i.length)return;var e={},s,o,u,a,f,l,c,h,p,d;for(s=0,o=i.length;s<o;s++){u=i[s];for(a in r)r.hasOwnProperty(a)&&(f=r[a],CSSLint.Util.indexOf(f,u.text)>-1&&(e[a]||(e[a]={full:f.slice(0),actual:[],actualNodes:[]}),CSSLint.Util.indexOf(e[a].actual,u.text)===-1&&(e[a].actual.push(u.text),e[a].actualNodes.push(u))))}for(a in e)if(e.hasOwnProperty(a)){l=e[a],c=l.full,h=l.actual;if(c.length>h.length)for(s=0,o=c.length;s<o;s++)p=c[s],CSSLint.Util.indexOf(h,p)===-1&&(d=h.length===1?h[0]:h.length===2?h.join(" and "):h.join(", "),t.report("The property "+p+" is compatible with "+d+" and should be included as well.",l.actualNodes[0].line,l.actualNodes[0].col,n))}})}}),CSSLint.addRule({id:"display-property-grouping",name:"Require properties appropriate for display",desc:"Certain properties shouldn't be used with certain display property values.",browsers:"All",init:function(e,t){function s(e,s,o){i[e]&&(typeof r[e]!="string"||i[e].value.toLowerCase()!==r[e])&&t.report(o||e+" can't be used with display: "+s+".",i[e].line,i[e].col,n)}function o(){i={}}function u(){var e=i.display?i.display.value:null;if(e)switch(e){case"inline":s("height",e),s("width",e),s("margin",e),s("margin-top",e),s("margin-bottom",e),s("float",e,"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");break;case"block":s("vertical-align",e);break;case"inline-block":s("float",e);break;default:e.indexOf("table-")===0&&(s("margin",e),s("margin-left",e),s("margin-right",e),s("margin-top",e),s("margin-bottom",e),s("float",e))}}var n=this,r={display:1,"float":"none",height:1,width:1,margin:1,"margin-left":1,"margin-right":1,"margin-bottom":1,"margin-top":1,padding:1,"padding-left":1,"padding-right":1,"padding-bottom":1,"padding-top":1,"vertical-align":1},i;e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startkeyframerule",o),e.addListener("startpagemargin",o),e.addListener("startpage",o),e.addListener("property",function(e){var t=e.property.text.toLowerCase();r[t]&&(i[t]={value:e.value.text,line:e.property.line,col:e.property.col})}),e.addListener("endrule",u),e.addListener("endfontface",u),e.addListener("endkeyframerule",u),e.addListener("endpagemargin",u),e.addListener("endpage",u)}}),CSSLint.addRule({id:"duplicate-background-images",name:"Disallow duplicate background images",desc:"Every background-image should be unique. Use a common class for e.g. sprites.",browsers:"All",init:function(e,t){var n=this,r={};e.addListener("property",function(e){var i=e.property.text,s=e.value,o,u;if(i.match(/background/i))for(o=0,u=s.parts.length;o<u;o++)s.parts[o].type==="uri"&&(typeof r[s.parts[o].uri]=="undefined"?r[s.parts[o].uri]=e:t.report("Background image '"+s.parts[o].uri+"' was used multiple times, first declared at line "+r[s.parts[o].uri].line+", col "+r[s.parts[o].uri].col+".",e.line,e.col,n))})}}),CSSLint.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",browsers:"All",init:function(e,t){function s(){r={}}var n=this,r,i;e.addListener("startrule",s),e.addListener("startfontface",s),e.addListener("startpage",s),e.addListener("startpagemargin",s),e.addListener("startkeyframerule",s),e.addListener("property",function(e){var s=e.property,o=s.text.toLowerCase();r[o]&&(i!==o||r[o]===e.value.text)&&t.report("Duplicate property '"+e.property+"' found.",e.line,e.col,n),r[o]=e.value.text,i=o})}}),CSSLint.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(){r=0}),e.addListener("property",function(){r++}),e.addListener("endrule",function(e){var i=e.selectors;r===0&&t.report("Rule is empty.",i[0].line,i[0].col,n)})}}),CSSLint.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(e,t){var n=this;e.addListener("error",function(e){t.error(e.message,e.line,e.col,n)})}}),CSSLint.addRule({id:"fallback-colors",name:"Require fallback colors",desc:"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",browsers:"IE6,IE7,IE8",init:function(e,t){function o(){s={},r=null}var n=this,r,i={color:1,background:1,"border-color":1,"border-top-color":1,"border-right-color":1,"border-bottom-color":1,"border-left-color":1,border:1,"border-top":1,"border-right":1,"border-bottom":1,"border-left":1,"background-color":1},s;e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startpage",o),e.addListener("startpagemargin",o),e.addListener("startkeyframerule",o),e.addListener("property",function(e){var s=e.property,o=s.text.toLowerCase(),u=e.value.parts,a=0,f="",l=u.length;if(i[o])while(a<l)u[a].type==="color"&&("alpha"in u[a]||"hue"in u[a]?(/([^\)]+)\(/.test(u[a])&&(f=RegExp.$1.toUpperCase()),(!r||r.property.text.toLowerCase()!==o||r.colorType!=="compat")&&t.report("Fallback "+o+" (hex or RGB) should precede "+f+" "+o+".",e.line,e.col,n)):e.colorType="compat"),a++;r=e})}}),CSSLint.addRule({id:"floats",name:"Disallow too many floats",desc:"This rule tests if the float property is used too many times",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.property.text.toLowerCase()==="float"&&e.value.text.toLowerCase()!=="none"&&r++}),e.addListener("endstylesheet",function(){t.stat("floats",r),r>=10&&t.rollupWarn("Too many floats ("+r+"), you're probably using them for layout. Consider using a grid system instead.",n)})}}),CSSLint.addRule({id:"font-faces",name:"Don't use too many web fonts",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("startfontface",function(){r++}),e.addListener("endstylesheet",function(){r>5&&t.rollupWarn("Too many @font-face declarations ("+r+").",n)})}}),CSSLint.addRule({id:"font-sizes",name:"Disallow too many font sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.property.toString()==="font-size"&&r++}),e.addListener("endstylesheet",function(){t.stat("font-sizes",r),r>=10&&t.rollupWarn("Too many font-size declarations ("+r+"), abstraction needed.",n)})}}),CSSLint.addRule({id:"gradients",name:"Require all gradient definitions",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(e,t){var n=this,r;e.addListener("startrule",function(){r={moz:0,webkit:0,oldWebkit:0,o:0}}),e.addListener("property",function(e){/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(e.value)?r[RegExp.$1]=1:/\-webkit\-gradient/i.test(e.value)&&(r.oldWebkit=1)}),e.addListener("endrule",function(e){var i=[];r.moz||i.push("Firefox 3.6+"),r.webkit||i.push("Webkit (Safari 5+, Chrome)"),r.oldWebkit||i.push("Old Webkit (Safari 4+, Chrome)"),r.o||i.push("Opera 11.1+"),i.length&&i.length<4&&t.report("Missing vendor-prefixed CSS gradients for "+i.join(", ")+".",e.selectors[0].line,e.selectors[0].col,n)})}}),CSSLint.addRule({id:"ids",name:"Disallow IDs in selectors",desc:"Selectors should not contain IDs.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f],a=0;for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE)for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type==="id"&&a++}a===1?t.report("Don't use IDs in selectors.",s.line,s.col,n):a>1&&t.report(a+" IDs in the selector, really?",s.line,s.col,n)}})}}),CSSLint.addRule({id:"import",name:"Disallow @import",desc:"Don't use @import, use <link> instead.",browsers:"All",init:function(e,t){var n=this;e.addListener("import",function(e){t.report("@import prevents parallel downloads, use <link> instead.",e.line,e.col,n)})}}),CSSLint.addRule({id:"important",name:"Disallow !important",desc:"Be careful when using !important declaration",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.important===!0&&(r++,t.report("Use of !important",e.line,e.col,n))}),e.addListener("endstylesheet",function(){t.stat("important",r),r>=10&&t.rollupWarn("Too many !important declarations ("+r+"), try to use less than 10 to avoid specificity issues.",n)})}}),CSSLint.addRule({id:"known-properties",name:"Require use of known properties",desc:"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){e.invalid&&t.report(e.invalid.message,e.line,e.col,n)})}}),CSSLint.addRule({id:"order-alphabetical",name:"Alphabetical order",desc:"Assure properties are in alphabetical order",browsers:"All",init:function(e,t){var n=this,r,i=function(){r=[]};e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text,n=t.toLowerCase().replace(/^-.*?-/,"");r.push(n)}),e.addListener("endrule",function(e){var i=r.join(","),s=r.sort().join(",");i!==s&&t.report("Rule doesn't have all its properties in alphabetical ordered.",e.line,e.col,n)})}}),CSSLint.addRule({id:"outline-none",name:"Disallow outline: none",desc:"Use of outline: none or outline: 0 should be limited to :focus rules.",browsers:"All",tags:["Accessibility"],init:function(e,t){function i(e){e.selectors?r={line:e.line,col:e.col,selectors:e.selectors,propCount:0,outline:!1}:r=null}function s(){r&&r.outline&&(r.selectors.toString().toLowerCase().indexOf(":focus")===-1?t.report("Outlines should only be modified using :focus.",r.line,r.col,n):r.propCount===1&&t.report("Outlines shouldn't be hidden unless other visual changes are made.",r.line,r.col,n))}var n=this,r;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text.toLowerCase(),n=e.value;r&&(r.propCount++,t==="outline"&&(n.toString()==="none"||n.toString()==="0")&&(r.outline=!0))}),e.addListener("endrule",s),e.addListener("endfontface",s),e.addListener("endpage",s),e.addListener("endpagemargin",s),e.addListener("endkeyframerule",s)}}),CSSLint.addRule({id:"overqualified-elements",name:"Disallow overqualified elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(e,t){var n=this,r={};e.addListener("startrule",function(i){var s=i.selectors,o,u,a,f,l,c;for(f=0;f<s.length;f++){o=s[f];for(l=0;l<o.parts.length;l++){u=o.parts[l];if(u.type===e.SELECTOR_PART_TYPE)for(c=0;c<u.modifiers.length;c++)a=u.modifiers[c],u.elementName&&a.type==="id"?t.report("Element ("+u+") is overqualified, just use "+a+" without element name.",u.line,u.col,n):a.type==="class"&&(r[a]||(r[a]=[]),r[a].push({modifier:a,part:u}))}}}),e.addListener("endstylesheet",function(){var e;for(e in r)r.hasOwnProperty(e)&&r[e].length===1&&r[e][0].part.elementName&&t.report("Element ("+r[e][0].part+") is overqualified, just use "+r[e][0].modifier+" without element name.",r[e][0].part.line,r[e][0].part.col,n)})}}),CSSLint.addRule({id:"qualified-headings",name:"Disallow qualified headings",desc:"Headings should not be qualified (namespaced).",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a;for(u=0;u<i.length;u++){s=i[u];for(a=0;a<s.parts.length;a++)o=s.parts[a],o.type===e.SELECTOR_PART_TYPE&&o.elementName&&/h[1-6]/.test(o.elementName.toString())&&a>0&&t.report("Heading ("+o.elementName+") should not be qualified.",o.line,o.col,n)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Disallow selectors that look like regexs",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l;for(a=0;a<i.length;a++){s=i[a];for(f=0;f<s.parts.length;f++){o=s.parts[f];if(o.type===e.SELECTOR_PART_TYPE)for(l=0;l<o.modifiers.length;l++)u=o.modifiers[l],u.type==="attribute"&&/([\~\|\^\$\*]=)/.test(u)&&t.report("Attribute selectors with "+RegExp.$1+" are slow!",u.line,u.col,n)}}})}}),CSSLint.addRule({id:"rules-count",name:"Rules Count",desc:"Track how many rules there are.",browsers:"All",init:function(e,t){var n=0;e.addListener("startrule",function(){n++}),e.addListener("endstylesheet",function(){t.stat("rule-count",n)})}}),CSSLint.addRule({id:"selector-max-approaching",name:"Warn when approaching the 4095 selector limit for IE",desc:"Will warn when selector count is >= 3800 selectors.",browsers:"IE",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(e){r+=e.selectors.length}),e.addListener("endstylesheet",function(){r>=3800&&t.report("You have "+r+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,n)})}}),CSSLint.addRule({id:"selector-max",name:"Error when past the 4095 selector limit for IE",desc:"Will error when selector count is > 4095.",browsers:"IE",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(e){r+=e.selectors.length}),e.addListener("endstylesheet",function(){r>4095&&t.report("You have "+r+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,n)})}}),CSSLint.addRule({id:"selector-newline",name:"Disallow new-line characters in selectors",desc:"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",browsers:"All",init:function(e,t){function r(e){var r,i,s,o,u,a,f,l,c,h,p,d=e.selectors;for(r=0,i=d.length;r<i;r++){s=d[r];for(o=0,a=s.parts.length;o<a;o++)for(u=o+1;u<a;u++)f=s.parts[o],l=s.parts[u],c=f.type,h=f.line,p=l.line,c==="descendant"&&p>h&&t.report("newline character found in selector (forgot a comma?)",h,d[r].parts[0].col,n)}}var n=this;e.addListener("startrule",r)}}),CSSLint.addRule({id:"shorthand",name:"Require shorthand properties",desc:"Use shorthand properties where possible.",browsers:"All",init:function(e,t){function f(){u={}}function l(e){var r,i,s,o;for(r in a)if(a.hasOwnProperty(r)){o=0;for(i=0,s=a[r].length;i<s;i++)o+=u[a[r][i]]?1:0;o===a[r].length&&t.report("The properties "+a[r].join(", ")+" can be replaced by "+r+".",e.line,e.col,n)}}var n=this,r,i,s,o={},u,a={margin:["margin-top","margin-bottom","margin-left","margin-right"],padding:["padding-top","padding-bottom","padding-left","padding-right"]};for(r in a)if(a.hasOwnProperty(r))for(i=0,s=a[r].length;i<s;i++)o[a[r][i]]=r;e.addListener("startrule",f),e.addListener("startfontface",f),e.addListener("property",function(e){var t=e.property.toString().toLowerCase();o[t]&&(u[t]=1)}),e.addListener("endrule",l),e.addListener("endfontface",l)}}),CSSLint.addRule({id:"star-property-hack",name:"Disallow properties with a star prefix",desc:"Checks for the star property hack (targets IE6/7)",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property;r.hack==="*"&&t.report("Property with star prefix found.",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:"text-indent",name:"Disallow negative text-indent",desc:"Checks for text indent less than -99px",browsers:"All",init:function(e,t){function s(){r=!1,i="inherit"}function o(){r&&i!=="ltr"&&t.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.",r.line,r.col,n)}var n=this,r,i;e.addListener("startrule",s),e.addListener("startfontface",s),e.addListener("property",function(e){var t=e.property.toString().toLowerCase(),n=e.value;t==="text-indent"&&n.parts[0].value<-99?r=e.property:t==="direction"&&n.toString()==="ltr"&&(i="ltr")}),e.addListener("endrule",o),e.addListener("endfontface",o)}}),CSSLint.addRule({id:"underscore-property-hack",name:"Disallow properties with an underscore prefix",desc:"Checks for the underscore property hack (targets IE6)",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property;r.hack==="_"&&t.report("Property with underscore prefix found.",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:"unique-headings",name:"Headings should only be defined once",desc:"Headings should be defined only once.",browsers:"All",init:function(e,t){var n=this,r={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};e.addListener("startrule",function(e){var i=e.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.elementName&&/(h[1-6])/i.test(o.elementName.toString())){for(f=0;f<o.modifiers.length;f++)if(o.modifiers[f].type==="pseudo"){u=!0;break}u||(r[RegExp.$1]++,r[RegExp.$1]>1&&t.report("Heading ("+o.elementName+") has already been defined.",o.line,o.col,n))}}}),e.addListener("endstylesheet",function(){var e,i=[];for(e in r)r.hasOwnProperty(e)&&r[e]>1&&i.push(r[e]+" "+e+"s");i.length&&t.rollupWarn("You have "+i.join(", ")+" defined in this stylesheet.",n)})}}),CSSLint.addRule({id:"universal-selector",name:"Disallow universal selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(e){var r=e.selectors,i,s,o;for(o=0;o<r.length;o++)i=r[o],s=i.parts[i.parts.length-1],s.elementName==="*"&&t.report(n.desc,s.line,s.col,n)})}}),CSSLint.addRule({id:"unqualified-attributes",name:"Disallow unqualified attribute selectors",desc:"Unqualified attribute selectors are known to be slow.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.type===e.SELECTOR_PART_TYPE)for(f=0;f<o.modifiers.length;f++)u=o.modifiers[f],u.type==="attribute"&&(!o.elementName||o.elementName==="*")&&t.report(n.desc,o.line,o.col,n)}})}}),CSSLint.addRule({id:"vendor-prefix",name:"Require standard property with vendor prefix",desc:"When using a vendor-prefixed property, make sure to include the standard one.",browsers:"All",init:function(e,t){function o(){r={},i=1}function u(){var e,i,o,u,a,f=[];for(e in r)s[e]&&f.push({actual:e,needed:s[e]});for(i=0,o=f.length;i<o;i++)u=f[i].needed,a=f[i].actual,r[u]?r[u][0].pos<r[a][0].pos&&t.report("Standard property '"+u+"' should come after vendor-prefixed property '"+a+"'.",r[a][0].name.line,r[a][0].name.col,n):t.report("Missing standard property '"+u+"' to go along with '"+a+"'.",r[a][0].name.line,r[a][0].name.col,n)}var n=this,r,i,s={"-webkit-border-radius":"border-radius","-webkit-border-top-left-radius":"border-top-left-radius","-webkit-border-top-right-radius":"border-top-right-radius","-webkit-border-bottom-left-radius":"border-bottom-left-radius","-webkit-border-bottom-right-radius":"border-bottom-right-radius","-o-border-radius":"border-radius","-o-border-top-left-radius":"border-top-left-radius","-o-border-top-right-radius":"border-top-right-radius","-o-border-bottom-left-radius":"border-bottom-left-radius","-o-border-bottom-right-radius":"border-bottom-right-radius","-moz-border-radius":"border-radius","-moz-border-radius-topleft":"border-top-left-radius","-moz-border-radius-topright":"border-top-right-radius","-moz-border-radius-bottomleft":"border-bottom-left-radius","-moz-border-radius-bottomright":"border-bottom-right-radius","-moz-column-count":"column-count","-webkit-column-count":"column-count","-moz-column-gap":"column-gap","-webkit-column-gap":"column-gap","-moz-column-rule":"column-rule","-webkit-column-rule":"column-rule","-moz-column-rule-style":"column-rule-style","-webkit-column-rule-style":"column-rule-style","-moz-column-rule-color":"column-rule-color","-webkit-column-rule-color":"column-rule-color","-moz-column-rule-width":"column-rule-width","-webkit-column-rule-width":"column-rule-width","-moz-column-width":"column-width","-webkit-column-width":"column-width","-webkit-column-span":"column-span","-webkit-columns":"columns","-moz-box-shadow":"box-shadow","-webkit-box-shadow":"box-shadow","-moz-transform":"transform","-webkit-transform":"transform","-o-transform":"transform","-ms-transform":"transform","-moz-transform-origin":"transform-origin","-webkit-transform-origin":"transform-origin","-o-transform-origin":"transform-origin","-ms-transform-origin":"transform-origin","-moz-box-sizing":"box-sizing","-webkit-box-sizing":"box-sizing"};e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startpage",o),e.addListener("startpagemargin",o),e.addListener("startkeyframerule",o),e.addListener("property",function(e){var t=e.property.text.toLowerCase();r[t]||(r[t]=[]),r[t].push({name:e.property,value:e.value,pos:i++})}),e.addListener("endrule",u),e.addListener("endfontface",u),e.addListener("endpage",u),e.addListener("endpagemargin",u),e.addListener("endkeyframerule",u)}}),CSSLint.addRule({id:"zero-units",name:"Disallow units for 0 values",desc:"You don't need to specify units when a value is 0.",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.value.parts,i=0,s=r.length;while(i<s)(r[i].units||r[i].type==="percentage")&&r[i].value===0&&r[i].type!=="time"&&t.report("Values of 0 shouldn't have units specified.",r[i].line,r[i].col,n),i++})}}),function(){var e=function(e){return!e||e.constructor!==String?"":e.replace(/[\"&><]/g,function(e){switch(e){case'"':return"&quot;";case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;"}})};CSSLint.addFormatter({id:"checkstyle-xml",name:"Checkstyle XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><checkstyle>'},endFormat:function(){return"</checkstyle>"},readError:function(t,n){return'<file name="'+e(t)+'"><error line="0" column="0" severty="error" message="'+e(n)+'"></error></file>'},formatResults:function(t,n){var r=t.messages,i=[],s=function(e){return!!e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""};return r.length>0&&(i.push('<file name="'+n+'">'),CSSLint.Util.forEach(r,function(t){t.rollup||i.push('<error line="'+t.line+'" column="'+t.col+'" severity="'+t.type+'"'+' message="'+e(t.message)+'" source="'+s(t.rule)+'"/>')}),i.push("</file>")),i.join("")}})}(),CSSLint.addFormatter({id:"compact",name:"Compact, 'porcelain' format",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,n){var r=e.messages,i="";n=n||{};var s=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return r.length===0?n.quiet?"":t+": Lint Free!":(CSSLint.Util.forEach(r,function(e){e.rollup?i+=t+": "+s(e.type)+" - "+e.message+"\n":i+=t+": "+"line "+e.line+", col "+e.col+", "+s(e.type)+" - "+e.message+" ("+e.rule.id+")\n"}),i)}}),CSSLint.addFormatter({id:"csslint-xml",name:"CSSLint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><csslint>'},endFormat:function(){return"</csslint>"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(r.push('<file name="'+t+'">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity="'+e.type+'" reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>'):r.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>')}),r.push("</file>")),r.join("")}}),CSSLint.addFormatter({id:"junit-xml",name:"JUNIT XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><testsuites>'},endFormat:function(){return"</testsuites>"},formatResults:function(e,t){var n=e.messages,r=[],i={error:0,failure:0},s=function(e){return!!e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""},o=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(n.forEach(function(e){var t=e.type==="warning"?"error":e.type;e.rollup||(r.push('<testcase time="0" name="'+s(e.rule)+'">'),r.push("<"+t+' message="'+o(e.message)+'"><![CDATA['+e.line+":"+e.col+":"+o(e.evidence)+"]]></"+t+">"),r.push("</testcase>"),i[t]+=1)}),r.unshift('<testsuite time="0" tests="'+n.length+'" skipped="0" errors="'+i.error+'" failures="'+i.failure+'" package="net.csslint" name="'+t+'">'),r.push("</testsuite>")),r.join("")}}),CSSLint.addFormatter({id:"lint-xml",name:"Lint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><lint>'},endFormat:function(){return"</lint>"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(r.push('<file name="'+t+'">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity="'+e.type+'" reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>'):r.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>')}),r.push("</file>")),r.join("")}}),CSSLint.addFormatter({id:"text",name:"Plain Text",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,n){var r=e.messages,i="";n=n||{};if(r.length===0)return n.quiet?"":"\n\ncsslint: No errors in "+t+".";i="\n\ncsslint: There ",r.length===1?i+="is 1 problem":i+="are "+r.length+" problems",i+=" in "+t+".";var s=t.lastIndexOf("/"),o=t;return s===-1&&(s=t.lastIndexOf("\\")),s>-1&&(o=t.substring(s+1)),CSSLint.Util.forEach(r,function(e,t){i=i+"\n\n"+o,e.rollup?(i+="\n"+(t+1)+": "+e.type,i+="\n"+e.message):(i+="\n"+(t+1)+": "+e.type+" at line "+e.line+", col "+e.col,i+="\n"+e.message,i+="\n"+e.evidence)}),i}}),module.exports.CSSLint=CSSLint}),ace.define("ace/mode/css_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/css/csslint"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./css/csslint").CSSLint,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.ruleset=null,this.setDisabledRules("ids|order-alphabetical"),this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix")};r.inherits(u,s),function(){this.setInfoRules=function(e){typeof e=="string"&&(e=e.split("|")),this.infoRules=i.arrayToMap(e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(e){if(!e)this.ruleset=null;else{typeof e=="string"&&(e=e.split("|"));var t={};o.getRules().forEach(function(e){t[e.id]=!0}),e.forEach(function(e){delete t[e]}),this.ruleset=t}this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return this.sender.emit("annotate",[]);var t=this.infoRules,n=o.verify(e,this.ruleset);this.sender.emit("annotate",n.messages.map(function(e){return{row:e.line-1,column:e.col-1,text:e.message,type:t[e.rule.id]?"info":e.type,rule:e.rule.name}}))}}.call(u.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-html.js b/js/ace/worker-html.js
new file mode 100644
index 0000000..403af17
--- /dev/null
+++ b/js/ace/worker-html.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/html/saxparser",["require","exports","module"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){function r(e){if(e.namespaceURI==="http://www.w3.org/1999/xhtml")return e.localName==="applet"||e.localName==="caption"||e.localName==="marquee"||e.localName==="object"||e.localName==="table"||e.localName==="td"||e.localName==="th";if(e.namespaceURI==="http://www.w3.org/1998/Math/MathML")return e.localName==="mi"||e.localName==="mo"||e.localName==="mn"||e.localName==="ms"||e.localName==="mtext"||e.localName==="annotation-xml";if(e.namespaceURI==="http://www.w3.org/2000/svg")return e.localName==="foreignObject"||e.localName==="desc"||e.localName==="title"}function i(e){return r(e)||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="ol"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="ul"}function s(e){return e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="table"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="html"}function o(e){return e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="tbody"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="tfoot"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="thead"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="html"}function u(e){return e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="tr"||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="html"}function a(e){return r(e)||e.namespaceURI==="http://www.w3.org/1999/xhtml"&&e.localName==="button"}function f(e){return(e.namespaceURI!=="http://www.w3.org/1999/xhtml"||e.localName!=="optgroup")&&(e.namespaceURI!=="http://www.w3.org/1999/xhtml"||e.localName!=="option")}function l(){this.elements=[],this.rootNode=null,this.headElement=null,this.bodyElement=null}l.prototype._inScope=function(e,t){for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.localName===e)return!0;if(t(r))return!1}},l.prototype.push=function(e){this.elements.push(e)},l.prototype.pushHtmlElement=function(e){this.rootNode=e.node,this.push(e)},l.prototype.pushHeadElement=function(e){this.headElement=e.node,this.push(e)},l.prototype.pushBodyElement=function(e){this.bodyElement=e.node,this.push(e)},l.prototype.pop=function(){return this.elements.pop()},l.prototype.remove=function(e){this.elements.splice(this.elements.indexOf(e),1)},l.prototype.popUntilPopped=function(e){var t;do t=this.pop();while(t.localName!=e)},l.prototype.popUntilTableScopeMarker=function(){while(!s(this.top))this.pop()},l.prototype.popUntilTableBodyScopeMarker=function(){while(!o(this.top))this.pop()},l.prototype.popUntilTableRowScopeMarker=function(){while(!u(this.top))this.pop()},l.prototype.item=function(e){return this.elements[e]},l.prototype.contains=function(e){return this.elements.indexOf(e)!==-1},l.prototype.inScope=function(e){return this._inScope(e,r)},l.prototype.inListItemScope=function(e){return this._inScope(e,i)},l.prototype.inTableScope=function(e){return this._inScope(e,s)},l.prototype.inButtonScope=function(e){return this._inScope(e,a)},l.prototype.inSelectScope=function(e){return this._inScope(e,f)},l.prototype.hasNumberedHeaderElementInScope=function(){for(var e=this.elements.length-1;e>=0;e--){var t=this.elements[e];if(t.isNumberedHeader())return!0;if(r(t))return!1}},l.prototype.furthestBlockForFormattingElement=function(e){var t=null;for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.node===e)break;r.isSpecial()&&(t=r)}return t},l.prototype.findIndex=function(e){for(var t=this.elements.length-1;t>=0;t--)if(this.elements[t].localName==e)return t;return-1},l.prototype.remove_openElements_until=function(e){var t=!1,n;while(!t)n=this.elements.pop(),t=e(n);return n},Object.defineProperty(l.prototype,"top",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(l.prototype,"length",{get:function(){return this.elements.length}}),n.ElementStack=l},{}],2:[function(e,t,n){function o(e){return e>="0"&&e<="9"||e>="a"&&e<="z"||e>="A"&&e<="Z"}function u(e){return e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F"}function a(e){return e>="0"&&e<="9"}var r=e("html5-entities"),i=e("./InputStream").InputStream,s={};Object.keys(r).forEach(function(e){for(var t=0;t<e.length;t++)s[e.substring(0,t+1)]=!0});var f={};f.consumeEntity=function(e,t,n){var f="",l="",c=e.char();if(c===i.EOF)return!1;l+=c;if(c=="	"||c=="\n"||c==""||c==" "||c=="<"||c=="&")return e.unget(l),!1;if(n===c)return e.unget(l),!1;if(c=="#"){c=e.shift(1);if(c===i.EOF)return t._parseError("expected-numeric-entity-but-got-eof"),e.unget(l),!1;l+=c;var h=10,p=a;if(c=="x"||c=="X"){h=16,p=u,c=e.shift(1);if(c===i.EOF)return t._parseError("expected-numeric-entity-but-got-eof"),e.unget(l),!1;l+=c}if(p(c)){var d="";while(c!==i.EOF&&p(c))d+=c,c=e.char();d=parseInt(d,h);var v=this.replaceEntityNumbers(d);v&&(t._parseError("invalid-numeric-entity-replaced"),d=v);if(d>65535&&d<=1114111){d-=65536;var m=((1047552&d)>>10)+55296,g=(1023&d)+56320;f=String.fromCharCode(m,g)}else f=String.fromCharCode(d);return c!==";"&&(t._parseError("numeric-entity-without-semicolon"),e.unget(c)),f}return e.unget(l),t._parseError("expected-numeric-entity"),!1}if(c>="a"&&c<="z"||c>="A"&&c<="Z"){var y="";while(s[l]){r[l]&&(y=l);if(c==";")break;c=e.char();if(c===i.EOF)break;l+=c}return y?(f=r[y],c===";"||!n||!o(c)&&c!=="="?(l.length>y.length&&e.unget(l.substring(y.length)),c!==";"&&t._parseError("named-entity-without-semicolon"),f):(e.unget(l),!1)):(t._parseError("expected-named-entity"),e.unget(l),!1)}},f.replaceEntityNumbers=function(e){switch(e){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(e>=55296&&e<=57343||e>1114111)return 65533;if(e>=1&&e<=8||e>=14&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||e==11||e==65534||e==131070||e==3145726||e==196607||e==262142||e==262143||e==327678||e==327679||e==393214||e==393215||e==458750||e==458751||e==524286||e==524287||e==589822||e==589823||e==655358||e==655359||e==720894||e==720895||e==786430||e==786431||e==851966||e==851967||e==917502||e==917503||e==983038||e==983039||e==1048574||e==1048575||e==1114110||e==1114111)return e}},n.EntityParser=f},{"./InputStream":3,"html5-entities":12}],3:[function(e,t,n){function r(){this.data="",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}r.EOF=-1,r.DRAIN=-2,r.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}return this.data.slice(this.start,this.data.length)},"char":function(){if(!this.eof&&this.start>=this.data.length-1)throw r.DRAIN;if(this.start>=this.data.length)return r.EOF;var e=this.data[this.start++];return e==="\r"&&(e="\n"),e},advance:function(e){this.start+=e;if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(e){if(this.eof&&this.start>=this.data.length)return"";var t=new RegExp("^"+e+"+"),n=t.exec(this.slice());if(n){if(!this.eof&&n[0].length==this.data.length-this.start)throw r.DRAIN;return this.advance(n[0].length),n[0]}return""},matchUntil:function(e){var t,n;n=this.slice();if(n===r.EOF)return"";if(t=(new RegExp(e+(this.eof?"|$":""))).exec(n)){var i=this.data.slice(this.start,this.start+t.index);return this.advance(t.index),i.replace(/\r/g,"\n").replace(/\n{2,}/g,"\n")}throw r.DRAIN},append:function(e){this.data+=e},shift:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;if(this.eof&&this.start>=this.data.length)return r.EOF;var t=this.data.slice(this.start,this.start+e).toString();return this.advance(Math.min(e,this.data.length-this.start)),t},peek:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;return this.eof&&this.start>=this.data.length?r.EOF:this.data.slice(this.start,Math.min(this.start+e,this.data.length)).toString()},length:function(){return this.data.length-this.start-1},unget:function(e){if(e===r.EOF)return;this.start-=e.length},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var e=this.lastLocation.line,t=this.lastLocation.column,n=this.data.slice(0,this.committed),r=n.match(/\n/g),i=r?e+r.length:e,s=r?n.length-n.lastIndexOf("\n")-1:t+n.length;return{line:i,column:s}}},n.InputStream=r},{}],4:[function(e,t,n){function i(e,t,n,r){this.localName=t,this.namespaceURI=e,this.attributes=n,this.node=r}function s(e,t){for(var n=0;n<e.attributes.length;n++)if(e.attributes[n].nodeName==t)return e.attributes[n].nodeValue;return null}var r={"http://www.w3.org/1999/xhtml":["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],"http://www.w3.org/1998/Math/MathML":["mi","mo","mn","ms","mtext","annotation-xml"],"http://www.w3.org/2000/svg":["foreignObject","desc","title"]};i.prototype.isSpecial=function(){return this.namespaceURI in r&&r[this.namespaceURI].indexOf(this.localName)>-1},i.prototype.isFosterParenting=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="table"||this.localName==="tbody"||this.localName==="tfoot"||this.localName==="thead"||this.localName==="tr":!1},i.prototype.isNumberedHeader=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="h1"||this.localName==="h2"||this.localName==="h3"||this.localName==="h4"||this.localName==="h5"||this.localName==="h6":!1},i.prototype.isForeign=function(){return this.namespaceURI!="http://www.w3.org/1999/xhtml"},i.prototype.isHtmlIntegrationPoint=function(){if(this.namespaceURI==="http://www.w3.org/1998/Math/MathML"){if(this.localName!=="annotation-xml")return!1;var e=s(this,"encoding");return e?(e=e.toLowerCase(),e==="text/html"||e==="application/xhtml+xml"):!1}return this.namespaceURI==="http://www.w3.org/2000/svg"?this.localName==="foreignObject"||this.localName==="desc"||this.localName==="title":!1},i.prototype.isMathMLTextIntegrationPoint=function(){return this.namespaceURI==="http://www.w3.org/1998/Math/MathML"?this.localName==="mi"||this.localName==="mo"||this.localName==="mn"||this.localName==="ms"||this.localName==="mtext":!1},n.StackItem=i},{}],5:[function(e,t,n){function s(e){return e===" "||e==="\n"||e==="	"||e==="\r"||e==="\f"}function o(e){return e>="A"&&e<="Z"||e>="a"&&e<="z"}function u(e){this._tokenHandler=e,this._state=u.DATA,this._inputStream=new r,this._currentToken=null,this._temporaryBuffer="",this._additionalAllowedCharacter=""}var r=e("./InputStream").InputStream,i=e("./EntityParser").EntityParser;u.prototype._parseError=function(e,t){this._tokenHandler.parseError(e,t)},u.prototype._emitToken=function(e){if(e.type==="StartTag")for(var t=1;t<e.data.length;t++)e.data[t].nodeName||e.data.splice(t--,1);else e.type==="EndTag"&&(e.selfClosing&&this._parseError("self-closing-flag-on-end-tag"),e.data.length!==0&&this._parseError("attributes-in-end-tag"));this._tokenHandler.processToken(e),e.type==="StartTag"&&e.selfClosing&&!this._tokenHandler.isSelfClosingFlagAcknowledged()&&this._parseError("non-void-element-with-trailing-solidus",{name:e.name})},u.prototype._emitCurrentToken=function(){this._state=u.DATA,this._emitToken(this._currentToken)},u.prototype._currentAttribute=function(){return this._currentToken.data[this._currentToken.data.length-1]},u.prototype.setState=function(e){this._state=e},u.prototype.tokenize=function(e){function n(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:"EOF",data:null}),!1;if(n==="&")t.setState(a);else if(n==="<")t.setState(j);else if(n==="\0")t._emitToken({type:"Characters",data:n}),e.commit();else{var i=e.matchUntil("&|<|\0");t._emitToken({type:"Characters",data:n+i}),e.commit()}return!0}function a(e){var r=i.consumeEntity(e,t);return t.setState(n),t._emitToken({type:"Characters",data:r||"&"}),!0}function f(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:"EOF",data:null}),!1;if(n==="&")t.setState(l);else if(n==="<")t.setState(d);else if(n==="\0")t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit();else{var i=e.matchUntil("&|<|\0");t._emitToken({type:"Characters",data:n+i}),e.commit()}return!0}function l(e){var n=i.consumeEntity(e,t);return t.setState(f),t._emitToken({type:"Characters",data:n||"&"}),!0}function c(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:"EOF",data:null}),!1;if(n==="<")t.setState(g);else if(n==="\0")t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit();else{var i=e.matchUntil("<|\0");t._emitToken({type:"Characters",data:n+i})}return!0}function h(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:"EOF",data:null}),!1;if(n==="\0")t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit();else{var i=e.matchUntil("\0");t._emitToken({type:"Characters",data:n+i})}return!0}function p(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:"EOF",data:null}),!1;if(n==="<")t.setState(w);else if(n==="\0")t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit();else{var i=e.matchUntil("<|\0");t._emitToken({type:"Characters",data:n+i})}return!0}function d(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(v)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(f)),!0}function v(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(m)):(t._emitToken({type:"Characters",data:"</"}),e.unget(n),t.setState(f)),!0}function m(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i==="/"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===">"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),e.unget(i),t.setState(f)),!0}function g(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(y)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(c)),!0}function y(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(b)):(t._emitToken({type:"Characters",data:"</"}),e.unget(n),t.setState(c)),!0}function b(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i==="/"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===">"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),e.unget(i),t.setState(c)),!0}function w(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(E)):n==="!"?(t._emitToken({type:"Characters",data:"<!"}),t.setState(x)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(p)),!0}function E(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(S)):(t._emitToken({type:"Characters",data:"</"}),e.unget(n),t.setState(p)),!0}function S(e){var n=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),r=e.char();return s(r)&&n?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(q)):r==="/"&&n?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(K)):r===">"&&n?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t._emitCurrentToken()):o(r)?(this._temporaryBuffer+=r,e.commit()):(t._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),e.unget(r),t.setState(p)),!0}function x(e){var n=e.char();return n==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(T)):(e.unget(n),t.setState(p)),!0}function T(e){var n=e.char();return n==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(k)):(e.unget(n),t.setState(p)),!0}function N(e){var i=e.char();if(i===r.EOF)e.unget(i),t.setState(n);else if(i==="-")t._emitToken({type:"Characters",data:"-"}),t.setState(C);else if(i==="<")t.setState(L);else if(i==="\0")t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit();else{var s=e.matchUntil("<|-|\0");t._emitToken({type:"Characters",data:i+s})}return!0}function C(e){var i=e.char();return i===r.EOF?(e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(k)):i==="<"?t.setState(L):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(N)):(t._emitToken({type:"Characters",data:i}),t.setState(N)),!0}function k(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="<"?t.setState(L):i===">"?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(N)):(t._emitToken({type:"Characters",data:i}),t.setState(N)),!0}function L(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(A)):o(n)?(t._emitToken({type:"Characters",data:"<"+n}),this._temporaryBuffer=n,t.setState(M)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(N)),!0}function A(e){var n=e.char();return o(n)?(this._temporaryBuffer=n,t.setState(O)):(t._emitToken({type:"Characters",data:"</"}),e.unget(n),t.setState(N)),!0}function O(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(q)):i==="/"&&r?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(K)):i===">"&&r?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(n),t._emitCurrentToken()):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),e.unget(i),t.setState(N)),!0}function M(e){var n=e.char();return s(n)||n==="/"||n===">"?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(_):t.setState(N)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(N)),!0}function _(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(D)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit()):(t._emitToken({type:"Characters",data:i}),e.commit()),!0}function D(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(P)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function P(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),e.commit()):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i===">"?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function H(e){var n=e.char();return n==="/"?(t._emitToken({type:"Characters",data:"/"}),this._temporaryBuffer="",t.setState(B)):(e.unget(n),t.setState(_)),!0}function B(e){var n=e.char();return s(n)||n==="/"||n===">"?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(N):t.setState(_)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(_)),!0}function j(e){var i=e.char();return i===r.EOF?(t._parseError("bare-less-than-sign-at-eof"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:"StartTag",name:i.toLowerCase(),data:[]},t.setState(I)):i==="!"?t.setState(G):i==="/"?t.setState(F):i===">"?(t._parseError("expected-tag-name-but-got-right-bracket"),t._emitToken({type:"Characters",data:"<>"}),t.setState(n)):i==="?"?(t._parseError("expected-tag-name-but-got-question-mark"),e.unget(i),t.setState(Q)):(t._parseError("expected-tag-name"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)),!0}function F(e){var i=e.char();return i===r.EOF?(t._parseError("expected-closing-tag-but-got-eof"),t._emitToken({type:"Characters",data:"</"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:"EndTag",name:i.toLowerCase(),data:[]},t.setState(I)):i===">"?(t._parseError("expected-closing-tag-but-got-right-bracket"),t.setState(n)):(t._parseError("expected-closing-tag-but-got-char",{data:i}),e.unget(i),t.setState(Q)),!0}function I(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-tag-name"),e.unget(i),t.setState(n)):s(i)?t.setState(q):o(i)?t._currentToken.name+=i.toLowerCase():i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.name+="\ufffd"):t._currentToken.name+=i,e.commit(),!0}function q(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-name-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;o(i)?(t._currentToken.data.push({nodeName:i.toLowerCase(),nodeValue:""}),t.setState(R)):i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="'"||i==='"'||i==="="||i==="<"?(t._parseError("invalid-character-in-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function R(e){var i=e.char(),u=!0,a=!1;i===r.EOF?(t._parseError("eof-in-attribute-name"),e.unget(i),t.setState(n),a=!0):i==="="?t.setState(z):o(i)?(t._currentAttribute().nodeName+=i.toLowerCase(),u=!1):i===">"?a=!0:s(i)?t.setState(U):i==="/"?t.setState(K):i==="'"||i==='"'?(t._parseError("invalid-character-in-attribute-name"),t._currentAttribute().nodeName+=i,u=!1):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeName+="\ufffd"):(t._currentAttribute().nodeName+=i,u=!1);if(u){var f=t._currentToken.data,l=f[f.length-1];for(var c=f.length-2;c>=0;c--)if(l.nodeName===f[c].nodeName){t._parseError("duplicate-attribute",{name:l.nodeName}),l.nodeName=null;break}a&&t._emitCurrentToken()}else e.commit();return!0}function U(e){var i=e.char();if(i===r.EOF)t._parseError("expected-end-of-tag-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==="="?t.setState(z):i===">"?t._emitCurrentToken():o(i)?(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="/"?t.setState(K):i==="'"||i==='"'||i==="<"?(t._parseError("invalid-character-after-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function z(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-value-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==='"'?t.setState(W):i==="&"?(t.setState(V),e.unget(i)):i==="'"?t.setState(X):i===">"?(t._parseError("expected-attribute-value-but-got-right-bracket"),t._emitCurrentToken()):i==="="||i==="<"||i==="`"?(t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,t.setState(V)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):(t._currentAttribute().nodeValue+=i,t.setState(V))}return!0}function W(e){var i=e.char();if(i===r.EOF)t._parseError("eof-in-attribute-value-double-quote"),e.unget(i),t.setState(n);else if(i==='"')t.setState(J);else if(i==="&")this._additionalAllowedCharacter='"',t.setState($);else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var s=e.matchUntil('[\0"&]');i+=s,t._currentAttribute().nodeValue+=i}return!0}function X(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-attribute-value-single-quote"),e.unget(i),t.setState(n)):i==="'"?t.setState(J):i==="&"?(this._additionalAllowedCharacter="'",t.setState($)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):t._currentAttribute().nodeValue+=i+e.matchUntil("\0|['&]"),!0}function V(e){var i=e.char();if(i===r.EOF)t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n);else if(s(i))t.setState(q);else if(i==="&")this._additionalAllowedCharacter=">",t.setState($);else if(i===">")t._emitCurrentToken();else if(i==='"'||i==="'"||i==="="||i==="`"||i==="<")t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,e.commit();else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var o=e.matchUntil("\0|[	\n\f \r&<>\"'=`]");o===r.EOF&&(t._parseError("eof-in-attribute-value-no-quotes"),t._emitCurrentToken()),e.commit(),t._currentAttribute().nodeValue+=i+o}return!0}function $(e){var n=i.consumeEntity(e,t,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=n||"&",this._additionalAllowedCharacter==='"'?t.setState(W):this._additionalAllowedCharacter==="'"?t.setState(X):this._additionalAllowedCharacter===">"&&t.setState(V),!0}function J(e){var i=e.char();return i===r.EOF?(t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n)):s(i)?t.setState(q):i===">"?(t.setState(n),t._emitCurrentToken()):i==="/"?t.setState(K):(t._parseError("unexpected-character-after-attribute-value"),e.unget(i),t.setState(q)),!0}function K(e){var i=e.char();return i===r.EOF?(t._parseError("unexpected-eof-after-solidus-in-tag"),e.unget(i),t.setState(n)):i===">"?(t._currentToken.selfClosing=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-character-after-solidus-in-tag"),e.unget(i),t.setState(q)),!0}function Q(e){var r=e.matchUntil(">");return r=r.replace(/\u0000/g,"\ufffd"),e.char(),t._emitToken({type:"Comment",data:r}),t.setState(n),!0}function G(e){var n=e.shift(2);if(n==="--")t._currentToken={type:"Comment",data:""},t.setState(Z);else{var i=e.shift(5);if(i===r.EOF||n===r.EOF)return t._parseError("expected-dashes-or-doctype"),t.setState(Q),e.unget(n),!0;n+=i,n.toUpperCase()==="DOCTYPE"?(t._currentToken={type:"Doctype",name:"",publicId:null,systemId:null,forceQuirks:!1},t.setState(st)):t._tokenHandler.isCdataSectionAllowed()&&n==="[CDATA["?t.setState(Y):(t._parseError("expected-dashes-or-doctype"),e.unget(n),t.setState(Q))}return!0}function Y(e){var r=e.matchUntil("]]>");return e.shift(3),r&&t._emitToken({type:"Characters",data:r}),t.setState(n),!0}function Z(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(et):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,t.setState(tt)),!0}function et(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+="-"+i,t.setState(tt)),!0}function tt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(nt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,e.commit()),!0}function nt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="-\ufffd",t.setState(tt)):(t._currentToken.data+="-"+i+e.matchUntil("\0|-"),e.char()),!0}function rt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-double-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="!"?(t._parseError("unexpected-bang-after-double-dash-in-comment"),t.setState(it)):i==="-"?(t._parseError("unexpected-dash-after-double-dash-in-comment"),t._currentToken.data+=i):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="--\ufffd",t.setState(tt)):(t._parseError("unexpected-char-in-comment"),t._currentToken.data+="--"+i,t.setState(tt)),!0}function it(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-bang-state"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="-"?(t._currentToken.data+="--!",t.setState(nt)):(t._currentToken.data+="--!"+i,t.setState(tt)),!0}function st(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(ot):(t._parseError("need-space-after-doctype"),e.unget(i),t.setState(ot)),!0}function ot(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i===">"?(t._parseError("expected-doctype-name-but-got-right-bracket"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name=i,t.setState(ut))),!0}function ut(e){var i=e.char();return i===r.EOF?(t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype-name"),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(at):i===">"?(t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name+=i,e.commit()),!0}function at(e){var i=e.char();if(i===r.EOF)t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype"),t.setState(n),t._emitCurrentToken();else if(!s(i))if(i===">")t.setState(n),t._emitCurrentToken();else{if(["p","P"].indexOf(i)>-1){var o=[["u","U"],["b","B"],["l","L"],["i","I"],["c","C"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(ft),!0}else if(["s","S"].indexOf(i)>-1){var o=[["y","Y"],["s","S"],["t","T"],["e","E"],["m","M"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(vt),!0}e.unget(i),t._currentToken.forceQuirks=!0,i===r.EOF?(t._parseError("eof-in-doctype"),e.unget(i),t.setState(n),t._emitCurrentToken()):(t._parseError("expected-space-or-right-bracket-in-doctype",{data:i}),t.setState(wt))}return!0}function ft(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(lt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(lt)):(e.unget(i),t.setState(lt)),!0}function lt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i==='"'?(t._currentToken.publicId="",t.setState(ct)):i==="'"?(t._currentToken.publicId="",t.setState(ht)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function ct(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==='"'?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function ht(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==="'"?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function pt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(dt):i===">"?(t.setState(n),t._emitCurrentToken()):i==='"'?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt)),!0}function dt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function vt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(mt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(mt)):(e.unget(i),t.setState(mt)),!0}function mt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function gt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==='"'?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function yt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==="'"?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function bt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t.setState(wt))),!0}function wt(e){var i=e.char();return i===r.EOF?(e.unget(i),t._emitCurrentToken(),t.setState(n)):i===">"&&(t._emitCurrentToken(),t.setState(n)),!0}u.DATA=n,u.RCDATA=f,u.RAWTEXT=c,u.SCRIPT_DATA=p,u.PLAINTEXT=h,this._state=u.DATA,this._inputStream.append(e),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;var t=this;while(this._state.call(this,this._inputStream));},Object.defineProperty(u.prototype,"lineNumber",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(u.prototype,"columnNumber",{get:function(){return this._inputStream.location().column}}),n.Tokenizer=u},{"./EntityParser":2,"./InputStream":3}],6:[function(e,t,n){function c(e){return e===" "||e==="\n"||e==="	"||e==="\r"||e==="\f"}function h(e){return c(e)||e==="\ufffd"}function p(e){for(var t=0;t<e.length;t++){var n=e[t];if(!c(n))return!1}return!0}function d(e){for(var t=0;t<e.length;t++){var n=e[t];if(!h(n))return!1}return!0}function v(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r}return null}function m(e){this.characters=e,this.current=0,this.end=this.characters.length}function g(){this.tokenizer=null,this.errorHandler=null,this.scriptingEnabled=!1,this.document=null,this.head=null,this.form=null,this.openElements=new a,this.activeFormattingElements=[],this.insertionMode=null,this.insertionModeName="",this.originalInsertionMode="",this.inQuirksMode=!1,this.compatMode="no quirks",this.framesetOk=!0,this.redirectAttachToFosterParent=!1,this.selfClosingFlagAcknowledged=!1,this.context="",this.pendingTableCharacters=[],this.shouldSkipLeadingNewline=!1;var e=this,t=this.insertionModes={};t.base={end_tag_handlers:{"-default":"endTagOther"},start_tag_handlers:{"-default":"startTagOther"},processEOF:function(){e.generateImpliedEndTags(),e.openElements.length>2?e.parseError("expected-closing-tag-but-got-eof"):e.openElements.length==2&&e.openElements.item(1).localName!="body"?e.parseError("expected-closing-tag-but-got-eof"):e.context&&e.openElements.length>1},processComment:function(t){e.insertComment(t,e.currentStackItem().node)},processDoctype:function(t,n,r,i){e.parseError("unexpected-doctype")},processStartTag:function(e,t,n){if(this[this.start_tag_handlers[e]])this[this.start_tag_handlers[e]](e,t,n);else{if(!this[this.start_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.start_tag_handlers["-default"]](e,t,n)}},processEndTag:function(e){if(this[this.end_tag_handlers[e]])this[this.end_tag_handlers[e]](e);else{if(!this[this.end_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.end_tag_handlers["-default"]](e)}},startTagHtml:function(e,n){t.inBody.startTagHtml(e,n)}},t.initial=Object.create(t.base),t.initial.processEOF=function(){e.parseError("expected-doctype-but-got-eof"),this.anythingElse(),e.insertionMode.processEOF()},t.initial.processComment=function(t){e.insertComment(t,e.document)},t.initial.processDoctype=function(t,n,r,i){function s(e){return n.toLowerCase().indexOf(e)===0}e.insertDoctype(t||"",n||"",r||""),i||t!="html"||n!=null&&(["+//silmaril//dtd html pro v0r11 19970101//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//as//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//ietf//dtd html//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//spyglass//dtd html 2.0 extended//","-//sq//dtd html 2.0 hotmetal + extensions//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//","html"].some(s)||["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"].indexOf(n.toLowerCase())>-1||r==null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].some(s))||r!=null&&r.toLowerCase()=="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"?(e.compatMode="quirks",e.parseError("quirky-doctype")):n!=null&&(["-//w3c//dtd xhtml 1.0 transitional//","-//w3c//dtd xhtml 1.0 frameset//"].some(s)||r!=null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].indexOf(n.toLowerCase())>-1)?(e.compatMode="limited quirks",e.parseError("almost-standards-doctype")):n=="-//W3C//DTD HTML 4.0//EN"&&(r==null||r=="http://www.w3.org/TR/REC-html40/strict.dtd")||n=="-//W3C//DTD HTML 4.01//EN"&&(r==null||r=="http://www.w3.org/TR/html4/strict.dtd")||n=="-//W3C//DTD XHTML 1.0 Strict//EN"&&r=="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"||n=="-//W3C//DTD XHTML 1.1//EN"&&r=="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"||(r!=null&&r!="about:legacy-compat"||n!=null)&&e.parseError("unknown-doctype"),e.setInsertionMode("beforeHTML")},t.initial.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;e.parseError("expected-doctype-but-got-chars"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.initial.processStartTag=function(t,n,r){e.parseError("expected-doctype-but-got-start-tag",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.initial.processEndTag=function(t){e.parseError("expected-doctype-but-got-end-tag",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t)},t.initial.anythingElse=function(){e.compatMode="quirks",e.setInsertionMode("beforeHTML")},t.beforeHTML=Object.create(t.base),t.beforeHTML.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.beforeHTML.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.beforeHTML.processComment=function(t){e.insertComment(t,e.document)},t.beforeHTML.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.beforeHTML.startTagHtml=function(t,n,r){e.insertHtmlElement(n),e.setInsertionMode("beforeHead")},t.beforeHTML.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.beforeHTML.processEndTag=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.beforeHTML.anythingElse=function(){e.insertHtmlElement(),e.setInsertionMode("beforeHead")},t.afterAfterBody=Object.create(t.base),t.afterAfterBody.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.afterAfterBody.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterBody.processDoctype=function(e){t.inBody.processDoctype(e)},t.afterAfterBody.startTagHtml=function(e,n){t.inBody.startTagHtml(e,n)},t.afterAfterBody.startTagOther=function(t,n,r){e.parseError("unexpected-start-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterAfterBody.endTagOther=function(t){e.parseError("unexpected-end-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterAfterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody=Object.create(t.base),t.afterBody.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterBody.processComment=function(t){e.insertComment(t,e.openElements.rootNode)},t.afterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody.processStartTag=function(t,n,r){e.parseError("unexpected-start-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterBody.endTagHtml=function(t){e.context?e.parseError("end-html-in-innerhtml"):e.setInsertionMode("afterAfterBody")},t.afterBody.endTagOther=function(t){e.parseError("unexpected-end-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterFrameset=Object.create(t.base),t.afterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoframes","-default":"startTagOther"},t.afterFrameset.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&e.insertText(r),r.length<n.length&&e.parseError("expected-eof-but-got-char")},t.afterFrameset.startTagNoframes=function(e,n){t.inHead.processStartTag(e,n)},t.afterFrameset.startTagOther=function(t,n){e.parseError("unexpected-start-tag-after-frameset",{name:t})},t.afterFrameset.endTagHtml=function(t){e.setInsertionMode("afterAfterFrameset")},t.afterFrameset.endTagOther=function(t){e.parseError("unexpected-end-tag-after-frameset",{name:t})},t.beforeHead=Object.create(t.base),t.beforeHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead","-default":"startTagOther"},t.beforeHead.end_tag_handlers={html:"endTagImplyHead",head:"endTagImplyHead",body:"endTagImplyHead",br:"endTagImplyHead","-default":"endTagOther"},t.beforeHead.processEOF=function(){this.startTagHead("head",[]),e.insertionMode.processEOF()},t.beforeHead.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.startTagHead("head",[]),e.insertionMode.processCharacters(t)},t.beforeHead.startTagHead=function(t,n){e.insertHeadElement(n),e.setInsertionMode("inHead")},t.beforeHead.startTagOther=function(t,n,r){this.startTagHead("head",[]),e.insertionMode.processStartTag(t,n,r)},t.beforeHead.endTagImplyHead=function(t){this.startTagHead("head",[]),e.insertionMode.processEndTag(t)},t.beforeHead.endTagOther=function(t){e.parseError("end-tag-after-implied-root",{name:t})},t.inHead=Object.create(t.base),t.inHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead",title:"startTagTitle",script:"startTagScript",style:"startTagNoFramesStyle",noscript:"startTagNoScript",noframes:"startTagNoFramesStyle",base:"startTagBaseBasefontBgsoundLink",basefont:"startTagBaseBasefontBgsoundLink",bgsound:"startTagBaseBasefontBgsoundLink",link:"startTagBaseBasefontBgsoundLink",meta:"startTagMeta","-default":"startTagOther"},t.inHead.end_tag_handlers={head:"endTagHead",html:"endTagHtmlBodyBr",body:"endTagHtmlBodyBr",br:"endTagHtmlBodyBr","-default":"endTagOther"},t.inHead.processEOF=function(){var t=e.currentStackItem().localName;["title","style","script"].indexOf(t)!=-1&&(e.parseError("expected-named-closing-tag-but-got-eof",{name:t}),e.popElement()),this.anythingElse(),e.insertionMode.processEOF()},t.inHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.inHead.startTagHead=function(t,n){e.parseError("two-heads-are-not-better-than-one")},t.inHead.startTagTitle=function(t,n){e.processGenericRCDATAStartTag(t,n)},t.inHead.startTagNoScript=function(t,n){if(e.scriptingEnabled)return e.processGenericRawTextStartTag(t,n);e.insertElement(t,n),e.setInsertionMode("inHeadNoscript")},t.inHead.startTagNoFramesStyle=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inHead.startTagScript=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.SCRIPT_DATA),e.originalInsertionMode=e.insertionModeName,e.setInsertionMode("text")},t.inHead.startTagBaseBasefontBgsoundLink=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagMeta=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.inHead.endTagHead=function(t){e.openElements.item(e.openElements.length-1).localName=="head"?e.openElements.pop():e.parseError("unexpected-end-tag",{name:"head"}),e.setInsertionMode("afterHead")},t.inHead.endTagHtmlBodyBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.inHead.endTagOther=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inHead.anythingElse=function(){this.endTagHead("head")},t.afterHead=Object.create(t.base),t.afterHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead",body:"startTagBody",frameset:"startTagFrameset",base:"startTagFromHead",link:"startTagFromHead",meta:"startTagFromHead",script:"startTagFromHead",style:"startTagFromHead",title:"startTagFromHead","-default":"startTagOther"},t.afterHead.end_tag_handlers={body:"endTagBodyHtmlBr",html:"endTagBodyHtmlBr",br:"endTagBodyHtmlBr","-default":"endTagOther"},t.afterHead.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.afterHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.afterHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.afterHead.startTagBody=function(t,n){e.framesetOk=!1,e.insertBodyElement(n),e.setInsertionMode("inBody")},t.afterHead.startTagFrameset=function(t,n){e.insertElement(t,n),e.setInsertionMode("inFrameset")},t.afterHead.startTagFromHead=function(n,r,i){e.parseError("unexpected-start-tag-out-of-my-head",{name:n}),e.openElements.push(e.head),t.inHead.processStartTag(n,r,i),e.openElements.remove(e.head)},t.afterHead.startTagHead=function(t,n,r){e.parseError("unexpected-start-tag",{name:t})},t.afterHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.afterHead.endTagBodyHtmlBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.afterHead.endTagOther=function(t){e.parseError("unexpected-end-tag",{name:t})},t.afterHead.anythingElse=function(){e.insertBodyElement([]),e.setInsertionMode("inBody"),e.framesetOk=!0},t.inBody=Object.create(t.base),t.inBody.start_tag_handlers={html:"startTagHtml",head:"startTagMisplaced",base:"startTagProcessInHead",basefont:"startTagProcessInHead",bgsound:"startTagProcessInHead",link:"startTagProcessInHead",meta:"startTagProcessInHead",noframes:"startTagProcessInHead",script:"startTagProcessInHead",style:"startTagProcessInHead",title:"startTagProcessInHead",body:"startTagBody",form:"startTagForm",plaintext:"startTagPlaintext",a:"startTagA",button:"startTagButton",xmp:"startTagXmp",table:"startTagTable",hr:"startTagHr",image:"startTagImage",input:"startTagInput",textarea:"startTagTextarea",select:"startTagSelect",isindex:"startTagIsindex",applet:"startTagAppletMarqueeObject",marquee:"startTagAppletMarqueeObject",object:"startTagAppletMarqueeObject",li:"startTagListItem",dd:"startTagListItem",dt:"startTagListItem",address:"startTagCloseP",article:"startTagCloseP",aside:"startTagCloseP",blockquote:"startTagCloseP",center:"startTagCloseP",details:"startTagCloseP",dir:"startTagCloseP",div:"startTagCloseP",dl:"startTagCloseP",fieldset:"startTagCloseP",figcaption:"startTagCloseP",figure:"startTagCloseP",footer:"startTagCloseP",header:"startTagCloseP",hgroup:"startTagCloseP",main:"startTagCloseP",menu:"startTagCloseP",nav:"startTagCloseP",ol:"startTagCloseP",p:"startTagCloseP",section:"startTagCloseP",summary:"startTagCloseP",ul:"startTagCloseP",listing:"startTagPreListing",pre:"startTagPreListing",b:"startTagFormatting",big:"startTagFormatting",code:"startTagFormatting",em:"startTagFormatting",font:"startTagFormatting",i:"startTagFormatting",s:"startTagFormatting",small:"startTagFormatting",strike:"startTagFormatting",strong:"startTagFormatting",tt:"startTagFormatting",u:"startTagFormatting",nobr:"startTagNobr",area:"startTagVoidFormatting",br:"startTagVoidFormatting",embed:"startTagVoidFormatting",img:"startTagVoidFormatting",keygen:"startTagVoidFormatting",wbr:"startTagVoidFormatting",param:"startTagParamSourceTrack",source:"startTagParamSourceTrack",track:"startTagParamSourceTrack",iframe:"startTagIFrame",noembed:"startTagRawText",noscript:"startTagRawText",h1:"startTagHeading",h2:"startTagHeading",h3:"startTagHeading",h4:"startTagHeading",h5:"startTagHeading",h6:"startTagHeading",caption:"startTagMisplaced",col:"startTagMisplaced",colgroup:"startTagMisplaced",frame:"startTagMisplaced",frameset:"startTagFrameset",tbody:"startTagMisplaced",td:"startTagMisplaced",tfoot:"startTagMisplaced",th:"startTagMisplaced",thead:"startTagMisplaced",tr:"startTagMisplaced",option:"startTagOptionOptgroup",optgroup:"startTagOptionOptgroup",math:"startTagMath",svg:"startTagSVG",rt:"startTagRpRt",rp:"startTagRpRt","-default":"startTagOther"},t.inBody.end_tag_handlers={p:"endTagP",body:"endTagBody",html:"endTagHtml",address:"endTagBlock",article:"endTagBlock",aside:"endTagBlock",blockquote:"endTagBlock",button:"endTagBlock",center:"endTagBlock",details:"endTagBlock",dir:"endTagBlock",div:"endTagBlock",dl:"endTagBlock",fieldset:"endTagBlock",figcaption:"endTagBlock",figure:"endTagBlock",footer:"endTagBlock",header:"endTagBlock",hgroup:"endTagBlock",listing:"endTagBlock",main:"endTagBlock",menu:"endTagBlock",nav:"endTagBlock",ol:"endTagBlock",pre:"endTagBlock",section:"endTagBlock",summary:"endTagBlock",ul:"endTagBlock",form:"endTagForm",applet:"endTagAppletMarqueeObject",marquee:"endTagAppletMarqueeObject",object:"endTagAppletMarqueeObject",dd:"endTagListItem",dt:"endTagListItem",li:"endTagListItem",h1:"endTagHeading",h2:"endTagHeading",h3:"endTagHeading",h4:"endTagHeading",h5:"endTagHeading",h6:"endTagHeading",a:"endTagFormatting",b:"endTagFormatting",big:"endTagFormatting",code:"endTagFormatting",em:"endTagFormatting",font:"endTagFormatting",i:"endTagFormatting",nobr:"endTagFormatting",s:"endTagFormatting",small:"endTagFormatting",strike:"endTagFormatting",strong:"endTagFormatting",tt:"endTagFormatting",u:"endTagFormatting",br:"endTagBr","-default":"endTagOther"},t.inBody.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline()),e.reconstructActiveFormattingElements();var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.insertText(n),e.framesetOk&&!d(n)&&(e.framesetOk=!1)},t.inBody.startTagHtml=function(t,n){e.parseError("non-html-root"),e.addAttributesToElement(e.openElements.rootNode,n)},t.inBody.startTagProcessInHead=function(e,n){t.inHead.processStartTag(e,n)},t.inBody.startTagBody=function(t,n){e.parseError("unexpected-start-tag",{name:"body"}),e.openElements.length==1||e.openElements.item(1).localName!="body"?r.ok(e.context):(e.framesetOk=!1,e.addAttributesToElement(e.openElements.bodyElement,n))},t.inBody.startTagFrameset=function(t,n){e.parseError("unexpected-start-tag",{name:"frameset"});if(e.openElements.length==1||e.openElements.item(1).localName!="body")r.ok(e.context);else if(e.framesetOk){e.detachFromParent(e.openElements.bodyElement);while(e.openElements.length>1)e.openElements.pop();e.insertElement(t,n),e.setInsertionMode("inFrameset")}},t.inBody.startTagCloseP=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n)},t.inBody.startTagPreListing=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1,e.shouldSkipLeadingNewline=!0},t.inBody.startTagForm=function(t,n){e.form?e.parseError("unexpected-start-tag",{name:t}):(e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.form=e.currentStackItem())},t.inBody.startTagRpRt=function(t,n){e.openElements.inScope("ruby")&&(e.generateImpliedEndTags(),e.currentStackItem().localName!="ruby"&&e.parseError("unexpected-start-tag",{name:t})),e.insertElement(t,n)},t.inBody.startTagListItem=function(t,n){var r={li:["li"],dd:["dd","dt"],dt:["dd","dt"]},i=r[t],s=e.openElements;for(var o=s.length-1;o>=0;o--){var u=s.item(o);if(i.indexOf(u.localName)!=-1){e.insertionMode.processEndTag(u.localName);break}if(u.isSpecial()&&u.localName!=="p"&&u.localName!=="address"&&u.localName!=="div")break}e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1},t.inBody.startTagPlaintext=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.tokenizer.setState(u.PLAINTEXT)},t.inBody.startTagHeading=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.currentStackItem().isNumberedHeader()&&(e.parseError("unexpected-start-tag",{name:t}),e.popElement()),e.insertElement(t,n)},t.inBody.startTagA=function(t,n){var r=e.elementInActiveFormattingElements("a");r&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"a",endName:"a"}),e.adoptionAgencyEndTag("a"),e.openElements.contains(r)&&e.openElements.remove(r),e.removeElementFromActiveFormattingElements(r)),e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagNobr=function(t,n){e.reconstructActiveFormattingElements(),e.openElements.inScope("nobr")&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"nobr",endName:"nobr"}),this.processEndTag("nobr"),e.reconstructActiveFormattingElements()),e.insertFormattingElement(t,n)},t.inBody.startTagButton=function(t,n){e.openElements.inScope("button")?(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"button",endName:"button"}),this.processEndTag("button"),e.insertionMode.processStartTag(t,n)):(e.framesetOk=!1,e.reconstructActiveFormattingElements(),e.insertElement(t,n))},t.inBody.startTagAppletMarqueeObject=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.activeFormattingElements.push(l),e.framesetOk=!1},t.inBody.endTagAppletMarqueeObject=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t),e.clearActiveFormattingElements()):e.parseError("unexpected-end-tag",{name:t})},t.inBody.startTagXmp=function(t,n){e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.reconstructActiveFormattingElements(),e.processGenericRawTextStartTag(t,n),e.framesetOk=!1},t.inBody.startTagTable=function(t,n){e.compatMode!=="quirks"&&e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.insertElement(t,n),e.setInsertionMode("inTable"),e.framesetOk=!1},t.inBody.startTagVoidFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagParamSourceTrack=function(t,n){e.insertSelfClosingElement(t,n)},t.inBody.startTagHr=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagImage=function(t,n){e.parseError("unexpected-start-tag-treated-as",{originalName:"image",newName:"img"}),this.processStartTag("img",n)},t.inBody.startTagInput=function(t,n){var r=e.framesetOk;this.startTagVoidFormatting(t,n);for(var i in n)if(n[i].nodeName=="type"){n[i].nodeValue.toLowerCase()=="hidden"&&(e.framesetOk=r);break}},t.inBody.startTagIsindex=function(t,n){e.parseError("deprecated-tag",{name:"isindex"}),e.selfClosingFlagAcknowledged=!0;if(e.form)return;var r=[],i=[],s="This is a searchable index. Enter search keywords: ";for(var o in n)switch(n[o].nodeName){case"action":r.push({nodeName:"action",nodeValue:n[o].nodeValue});break;case"prompt":s=n[o].nodeValue;break;case"name":break;default:i.push({nodeName:n[o].nodeName,nodeValue:n[o].nodeValue})}i.push({nodeName:"name",nodeValue:"isindex"}),this.processStartTag("form",r),this.processStartTag("hr"),this.processStartTag("label"),this.processCharacters(new m(s)),this.processStartTag("input",i),this.processEndTag("label"),this.processStartTag("hr"),this.processEndTag("form")},t.inBody.startTagTextarea=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.RCDATA),e.originalInsertionMode=e.insertionModeName,e.shouldSkipLeadingNewline=!0,e.framesetOk=!1,e.setInsertionMode("text")},t.inBody.startTagIFrame=function(t,n){e.framesetOk=!1,this.startTagRawText(t,n)},t.inBody.startTagRawText=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inBody.startTagSelect=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.framesetOk=!1;var r=e.insertionModeName;r=="inTable"||r=="inCaption"||r=="inColumnGroup"||r=="inTableBody"||r=="inRow"||r=="inCell"?e.setInsertionMode("inSelectInTable"):e.setInsertionMode("inSelect")},t.inBody.startTagMisplaced=function(t,n){e.parseError("unexpected-start-tag-ignored",{name:t})},t.inBody.endTagMisplaced=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagBr=function(t){e.parseError("unexpected-end-tag-treated-as",{originalName:"br",newName:"br element"}),e.reconstructActiveFormattingElements(),e.insertElement(t,[]),e.popElement()},t.inBody.startTagOptionOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.startTagOther=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.endTagOther=function(t){var n;for(var r=e.openElements.length-1;r>0;r--){n=e.openElements.item(r);if(n.localName==t){e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("unexpected-end-tag",{name:t}),e.openElements.remove_openElements_until(function(e){return e===n});break}if(n.isSpecial()){e.parseError("unexpected-end-tag",{name:t});break}}},t.inBody.startTagMath=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustMathMLAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/1998/Math/MathML",r)},t.inBody.startTagSVG=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustSVGAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/2000/svg",r)},t.inBody.endTagP=function(t){e.openElements.inButtonScope("p")?(e.generateImpliedEndTags("p"),e.currentStackItem().localName!="p"&&e.parseError("unexpected-implied-end-tag",{name:"p"}),e.openElements.popUntilPopped(t)):(e.parseError("unexpected-end-tag",{name:"p"}),this.startTagCloseP("p",[]),this.endTagP("p"))},t.inBody.endTagBody=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody")},t.inBody.endTagHtml=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody"),e.insertionMode.processEndTag(t)},t.inBody.endTagBlock=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagForm=function(t){var n=e.form;e.form=null,!n||!e.openElements.inScope(t)?e.parseError("unexpected-end-tag",{name:t}):(e.generateImpliedEndTags(),e.currentStackItem()!=n&&e.parseError("end-tag-too-early-ignored",{name:"form"}),e.openElements.remove(n))},t.inBody.endTagListItem=function(t){e.openElements.inListItemScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagHeading=function(t){if(!e.openElements.hasNumberedHeaderElementInScope()){e.parseError("unexpected-end-tag",{name:t});return}e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()})},t.inBody.endTagFormatting=function(t,n){e.adoptionAgencyEndTag(t)||this.endTagOther(t,n)},t.inCaption=Object.create(t.base),t.inCaption.start_tag_handlers={html:"startTagHtml",caption:"startTagTableElement",col:"startTagTableElement",colgroup:"startTagTableElement",tbody:"startTagTableElement",td:"startTagTableElement",tfoot:"startTagTableElement",thead:"startTagTableElement",tr:"startTagTableElement","-default":"startTagOther"},t.inCaption.end_tag_handlers={caption:"endTagCaption",table:"endTagTable",body:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfood:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inCaption.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCaption.startTagTableElement=function(t,n){e.parseError("unexpected-end-tag",{name:t});var r=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),r||e.insertionMode.processStartTag(t,n)},t.inCaption.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCaption.endTagCaption=function(t){e.openElements.inTableScope("caption")?(e.generateImpliedEndTags(),e.currentStackItem().localName!="caption"&&e.parseError("expected-one-end-tag-but-got-another",{gotName:"caption",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("caption"),e.clearActiveFormattingElements(),e.setInsertionMode("inTable")):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inCaption.endTagTable=function(t){e.parseError("unexpected-end-table-in-caption");var n=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),n||e.insertionMode.processEndTag(t)},t.inCaption.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCaption.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell=Object.create(t.base),t.inCell.start_tag_handlers={html:"startTagHtml",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",td:"startTagTableOther",tfoot:"startTagTableOther",th:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inCell.end_tag_handlers={td:"endTagTableCell",th:"endTagTableCell",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",table:"endTagImply",tbody:"endTagImply",tfoot:"endTagImply",thead:"endTagImply",tr:"endTagImply","-default":"endTagOther"},t.inCell.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCell.startTagTableOther=function(t,n,r){e.openElements.inTableScope("td")||e.openElements.inTableScope("th")?(this.closeCell(),e.insertionMode.processStartTag(t,n,r)):e.parseError("unexpected-start-tag",{name:t})},t.inCell.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCell.endTagTableCell=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t.toLowerCase()?(e.parseError("unexpected-cell-end-tag",{name:t}),e.openElements.popUntilPopped(t)):e.popElement(),e.clearActiveFormattingElements(),e.setInsertionMode("inRow")):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagImply=function(t){e.openElements.inTableScope(t)?(this.closeCell(),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell.closeCell=function(){e.openElements.inTableScope("td")?this.endTagTableCell("td"):e.openElements.inTableScope("th")&&this.endTagTableCell("th")},t.inColumnGroup=Object.create(t.base),t.inColumnGroup.start_tag_handlers={html:"startTagHtml",col:"startTagCol","-default":"startTagOther"},t.inColumnGroup.end_tag_handlers={colgroup:"endTagColgroup",col:"endTagCol","-default":"endTagOther"},t.inColumnGroup.ignoreEndTagColgroup=function(){return e.currentStackItem().localName=="html"},t.inColumnGroup.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;var r=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),r||e.insertionMode.processCharacters(t)},t.inColumnGroup.startTagCol=function(t,n){e.insertSelfClosingElement(t,n)},t.inColumnGroup.startTagOther=function(t,n,r){var i=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),i||e.insertionMode.processStartTag(t,n,r)},t.inColumnGroup.endTagColgroup=function(t){this.ignoreEndTagColgroup()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.popElement(),e.setInsertionMode("inTable"))},t.inColumnGroup.endTagCol=function(t){e.parseError("no-end-tag",{name:"col"})},t.inColumnGroup.endTagOther=function(t){var n=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),n||e.insertionMode.processEndTag(t)},t.inForeignContent=Object.create(t.base),t.inForeignContent.processStartTag=function(t,n,r){if(["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","menu","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].indexOf(t)!=-1||t=="font"&&n.some(function(e){return["color","face","size"].indexOf(e.nodeName)>=0})){e.parseError("unexpected-html-element-in-foreign-content",{name:t});while(e.currentStackItem().isForeign()&&!e.currentStackItem().isHtmlIntegrationPoint()&&!e.currentStackItem().isMathMLTextIntegrationPoint())e.openElements.pop();e.insertionMode.processStartTag(t,n,r);return}e.currentStackItem().namespaceURI=="http://www.w3.org/1998/Math/MathML"&&(n=e.adjustMathMLAttributes(n)),e.currentStackItem().namespaceURI=="http://www.w3.org/2000/svg"&&(t=e.adjustSVGTagNameCase(t),n=e.adjustSVGAttributes(n)),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,e.currentStackItem().namespaceURI,r)},t.inForeignContent.processEndTag=function(t){var n=e.currentStackItem(),r=e.openElements.length-1;n.localName.toLowerCase()!=t&&e.parseError("unexpected-end-tag",{name:t});for(;;){if(r===0)break;if(n.localName.toLowerCase()==t){while(e.openElements.pop()!=n);break}r-=1,n=e.openElements.item(r);if(n.isForeign())continue;e.insertionMode.processEndTag(t);break}},t.inForeignContent.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),"\ufffd"}),e.framesetOk&&!d(n)&&(e.framesetOk=!1),e.insertText(n)},t.inHeadNoscript=Object.create(t.base),t.inHeadNoscript.start_tag_handlers={html:"startTagHtml",basefont:"startTagBasefontBgsoundLinkMetaNoframesStyle",bgsound:"startTagBasefontBgsoundLinkMetaNoframesStyle",link:"startTagBasefontBgsoundLinkMetaNoframesStyle",meta:"startTagBasefontBgsoundLinkMetaNoframesStyle",noframes:"startTagBasefontBgsoundLinkMetaNoframesStyle",style:"startTagBasefontBgsoundLinkMetaNoframesStyle",head:"startTagHeadNoscript",noscript:"startTagHeadNoscript","-default":"startTagOther"},t.inHeadNoscript.end_tag_handlers={noscript:"endTagNoscript",br:"endTagBr","-default":"endTagOther"},t.inHeadNoscript.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;e.parseError("unexpected-char-in-frameset"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHeadNoscript.processComment=function(e){t.inHead.processComment(e)},t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(e,n){t.inHead.processStartTag(e,n)},t.inHeadNoscript.startTagHeadNoscript=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inHeadNoscript.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n)},t.inHeadNoscript.endTagBr=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t,n)},t.inHeadNoscript.endTagNoscript=function(t,n){e.popElement(),e.setInsertionMode("inHead")},t.inHeadNoscript.endTagOther=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inHeadNoscript.anythingElse=function(){e.popElement(),e.setInsertionMode("inHead")},t.inFrameset=Object.create(t.base),t.inFrameset.start_tag_handlers={html:"startTagHtml",frameset:"startTagFrameset",frame:"startTagFrame",noframes:"startTagNoframes","-default":"startTagOther"},t.inFrameset.end_tag_handlers={frameset:"endTagFrameset",noframes:"endTagNoframes","-default":"endTagOther"},t.inFrameset.processCharacters=function(t){e.parseError("unexpected-char-in-frameset")},t.inFrameset.startTagFrameset=function(t,n){e.insertElement(t,n)},t.inFrameset.startTagFrame=function(t,n){e.insertSelfClosingElement(t,n)},t.inFrameset.startTagNoframes=function(e,n){t.inBody.processStartTag(e,n)},t.inFrameset.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inFrameset.endTagFrameset=function(t,n){e.currentStackItem().localName=="html"?e.parseError("unexpected-frameset-in-frameset-innerhtml"):e.popElement(),!e.context&&e.currentStackItem().localName!="frameset"&&e.setInsertionMode("afterFrameset")},t.inFrameset.endTagNoframes=function(e){t.inBody.processEndTag(e)},t.inFrameset.endTagOther=function(t){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inTable=Object.create(t.base),t.inTable.start_tag_handlers={html:"startTagHtml",caption:"startTagCaption",colgroup:"startTagColgroup",col:"startTagCol",table:"startTagTable",tbody:"startTagRowGroup",tfoot:"startTagRowGroup",thead:"startTagRowGroup",td:"startTagImplyTbody",th:"startTagImplyTbody",tr:"startTagImplyTbody",style:"startTagStyleScript",script:"startTagStyleScript",input:"startTagInput",form:"startTagForm","-default":"startTagOther"},t.inTable.end_tag_handlers={table:"endTagTable",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfoot:"endTagIgnore",th:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTable.processCharacters=function(n){if(e.currentStackItem().isFosterParenting()){var r=e.insertionModeName;e.setInsertionMode("inTableText"),e.originalInsertionMode=r,e.insertionMode.processCharacters(n)}else e.redirectAttachToFosterParent=!0,t.inBody.processCharacters(n),e.redirectAttachToFosterParent=!1},t.inTable.startTagCaption=function(t,n){e.openElements.popUntilTableScopeMarker(),e.activeFormattingElements.push(l),e.insertElement(t,n),e.setInsertionMode("inCaption")},t.inTable.startTagColgroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inColumnGroup")},t.inTable.startTagCol=function(t,n){this.startTagColgroup("colgroup",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagRowGroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inTableBody")},t.inTable.startTagImplyTbody=function(t,n){this.startTagRowGroup("tbody",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagTable=function(t,n){e.parseError("unexpected-start-tag-implies-end-tag",{startName:"table",endName:"table"}),e.insertionMode.processEndTag("table"),e.context||e.insertionMode.processStartTag(t,n)},t.inTable.startTagStyleScript=function(e,n){t.inHead.processStartTag(e,n)},t.inTable.startTagInput=function(t,n){for(var r in n)if(n[r].nodeName.toLowerCase()=="type"){if(n[r].nodeValue.toLowerCase()=="hidden"){e.parseError("unexpected-hidden-input-in-table"),e.insertElement(t,n),e.openElements.pop();return}break}this.startTagOther(t,n)},t.inTable.startTagForm=function(t,n){e.parseError("unexpected-form-in-table"),e.form||(e.insertElement(t,n),e.form=e.currentStackItem(),e.openElements.pop())},t.inTable.startTagOther=function(n,r,i){e.parseError("unexpected-start-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processStartTag(n,r,i),e.redirectAttachToFosterParent=!1},t.inTable.endTagTable=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early-named",{gotName:"table",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("table"),e.resetInsertionMode()):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inTable.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inTable.endTagOther=function(n){e.parseError("unexpected-end-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processEndTag(n),e.redirectAttachToFosterParent=!1},t.inTableText=Object.create(t.base),t.inTableText.flushCharacters=function(){var t=e.pendingTableCharacters.join("");p(t)?e.insertText(t):(e.redirectAttachToFosterParent=!0,e.reconstructActiveFormattingElements(),e.insertText(t),e.framesetOk=!1,e.redirectAttachToFosterParent=!1),e.pendingTableCharacters=[]},t.inTableText.processComment=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processComment(t)},t.inTableText.processEOF=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.inTableText.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.pendingTableCharacters.push(n)},t.inTableText.processStartTag=function(t,n,r){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processStartTag(t,n,r)},t.inTableText.processEndTag=function(t,n){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEndTag(t,n)},t.inTableBody=Object.create(t.base),t.inTableBody.start_tag_handlers={html:"startTagHtml",tr:"startTagTr",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther","-default":"startTagOther"},t.inTableBody.end_tag_handlers={table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTableBody.processCharacters=function(e){t.inTable.processCharacters(e)},t.inTableBody.startTagTr=function(t,n){e.openElements.popUntilTableBodyScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inRow")},t.inTableBody.startTagTableCell=function(t,n){e.parseError("unexpected-cell-in-table-body",{name:t}),this.startTagTr("tr",[]),e.insertionMode.processStartTag(t,n)},t.inTableBody.startTagTableOther=function(t,n){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processStartTag(t,n)):e.parseError("unexpected-start-tag",{name:t})},t.inTableBody.startTagOther=function(e,n){t.inTable.processStartTag(e,n)},t.inTableBody.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(e.openElements.popUntilTableBodyScopeMarker(),e.popElement(),e.setInsertionMode("inTable")):e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagTable=function(t){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inTableBody.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagOther=function(e){t.inTable.processEndTag(e)},t.inSelect=Object.create(t.base),t.inSelect.start_tag_handlers={html:"startTagHtml",option:"startTagOption",optgroup:"startTagOptgroup",select:"startTagSelect",input:"startTagInput",keygen:"startTagInput",textarea:"startTagInput",script:"startTagScript","-default":"startTagOther"},t.inSelect.end_tag_handlers={option:"endTagOption",optgroup:"endTagOptgroup",select:"endTagSelect",caption:"endTagTableElements",table:"endTagTableElements",tbody:"endTagTableElements",tfoot:"endTagTableElements",thead:"endTagTableElements",tr:"endTagTableElements",td:"endTagTableElements",th:"endTagTableElements","-default":"endTagOther"},t.inSelect.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.insertText(n)},t.inSelect.startTagOption=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.insertElement(t,n)},t.inSelect.startTagOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.currentStackItem().localName=="optgroup"&&e.popElement(),e.insertElement(t,n)},t.inSelect.endTagOption=function(t){if(e.currentStackItem().localName!=="option"){e.parseError("unexpected-end-tag-in-select",{name:t});return}e.popElement()},t.inSelect.endTagOptgroup=function(t){e.currentStackItem().localName=="option"&&e.openElements.item(e.openElements.length-2).localName=="optgroup"&&e.popElement(),e.currentStackItem().localName=="optgroup"?e.popElement():e.parseError("unexpected-end-tag-in-select",{name:"optgroup"})},t.inSelect.startTagSelect=function(t){e.parseError("unexpected-select-in-select"),this.endTagSelect("select")},t.inSelect.endTagSelect=function(t){e.openElements.inTableScope("select")?(e.openElements.popUntilPopped("select"),e.resetInsertionMode()):e.parseError("unexpected-end-tag",{name:t})},t.inSelect.startTagInput=function(t,n){e.parseError("unexpected-input-in-select"),e.openElements.inSelectScope("select")&&(this.endTagSelect("select"),e.insertionMode.processStartTag(t,n))},t.inSelect.startTagScript=function(e,n){t.inHead.processStartTag(e,n)},t.inSelect.endTagTableElements=function(t){e.parseError("unexpected-end-tag-in-select",{name:t}),e.openElements.inTableScope(t)&&(this.endTagSelect("select"),e.insertionMode.processEndTag(t))},t.inSelect.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-select",{name:t})},t.inSelect.endTagOther=function(t){e.parseError("unexpected-end-tag-in-select",{name:t})},t.inSelectInTable=Object.create(t.base),t.inSelectInTable.start_tag_handlers={caption:"startTagTable",table:"startTagTable",tbody:"startTagTable",tfoot:"startTagTable",thead:"startTagTable",tr:"startTagTable",td:"startTagTable",th:"startTagTable","-default":"startTagOther"},t.inSelectInTable.end_tag_handlers={caption:"endTagTable",table:"endTagTable",tbody:"endTagTable",tfoot:"endTagTable",thead:"endTagTable",tr:"endTagTable",td:"endTagTable",th:"endTagTable","-default":"endTagOther"},t.inSelectInTable.processCharacters=function(e){t.inSelect.processCharacters(e)},t.inSelectInTable.startTagTable=function(t,n){e.parseError("unexpected-table-element-start-tag-in-select-in-table",{name:t}),this.endTagOther("select"),e.insertionMode.processStartTag(t,n)},t.inSelectInTable.startTagOther=function(e,n,r){t.inSelect.processStartTag(e,n,r)},t.inSelectInTable.endTagTable=function(t){e.parseError("unexpected-table-element-end-tag-in-select-in-table",{name:t}),e.openElements.inTableScope(t)&&(this.endTagOther("select"),e.insertionMode.processEndTag(t))},t.inSelectInTable.endTagOther=function(e){t.inSelect.processEndTag(e)},t.inRow=Object.create(t.base),t.inRow.start_tag_handlers={html:"startTagHtml",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inRow.end_tag_handlers={tr:"endTagTr",table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore","-default":"endTagOther"},t.inRow.processCharacters=function(e){t.inTable.processCharacters(e)},t.inRow.startTagTableCell=function(t,n){e.openElements.popUntilTableRowScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inCell"),e.activeFormattingElements.push(l)},t.inRow.startTagTableOther=function(t,n){var r=this.ignoreEndTagTr();this.endTagTr("tr"),r||e.insertionMode.processStartTag(t,n)},t.inRow.startTagOther=function(e,n,r){t.inTable.processStartTag(e,n,r)},t.inRow.endTagTr=function(t){this.ignoreEndTagTr()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.openElements.popUntilTableRowScopeMarker(),e.popElement(),e.setInsertionMode("inTableBody"))},t.inRow.endTagTable=function(t){var n=this.ignoreEndTagTr();this.endTagTr("tr"),n||e.insertionMode.processEndTag(t)},t.inRow.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(this.endTagTr("tr"),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inRow.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-row",{name:t})},t.inRow.endTagOther=function(e){t.inTable.processEndTag(e)},t.inRow.ignoreEndTagTr=function(){return!e.openElements.inTableScope("tr")},t.afterAfterFrameset=Object.create(t.base),t.afterAfterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoFrames","-default":"startTagOther"},t.afterAfterFrameset.processEOF=function(){},t.afterAfterFrameset.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&(e.reconstructActiveFormattingElements(),e.insertText(r)),r.length<n.length&&e.parseError("expected-eof-but-got-char")},t.afterAfterFrameset.startTagNoFrames=function(e,n){t.inHead.processStartTag(e,n)},t.afterAfterFrameset.startTagOther=function(t,n,r){e.parseError("expected-eof-but-got-start-tag",{name:t})},t.afterAfterFrameset.processEndTag=function(t,n){e.parseError("expected-eof-but-got-end-tag",{name:t})},t.text=Object.create(t.base),t.text.start_tag_handlers={"-default":"startTagOther"},t.text.end_tag_handlers={script:"endTagScript","-default":"endTagOther"},t.text.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline());var n=t.takeRemaining();if(!n)return;e.insertText(n)},t.text.processEOF=function(){e.parseError("expected-named-closing-tag-but-got-eof",{name:e.currentStackItem().localName}),e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.text.startTagOther=function(e){throw"Tried to process start tag "+e+" in RCDATA/RAWTEXT mode"},t.text.endTagScript=function(t){var n=e.openElements.pop();r.ok(n.localName=="script"),e.setInsertionMode(e.originalInsertionMode)},t.text.endTagOther=function(t){e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode)}}function y(e,t){return e.replace(new RegExp("{[0-9a-z-]+}","gi"),function(e){return t[e.slice(1,-1)]||e})}var r=e("assert"),i=e("./messages.json"),s=e("./constants"),o=e("events").EventEmitter,u=e("./Tokenizer").Tokenizer,a=e("./ElementStack").ElementStack,f=e("./StackItem").StackItem,l={};m.prototype.skipAtMostOneLeadingNewline=function(){this.characters[this.current]==="\n"&&this.current++},m.prototype.skipLeadingWhitespace=function(){while(c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.skipLeadingNonWhitespace=function(){while(!c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.takeRemaining=function(){return this.characters.substring(this.current)},m.prototype.takeLeadingWhitespace=function(){var e=this.current;return this.skipLeadingWhitespace(),e===this.current?"":this.characters.substring(e,this.current-e)},Object.defineProperty(m.prototype,"length",{get:function(){return this.end-this.current}}),g.prototype.setInsertionMode=function(e){this.insertionMode=this.insertionModes[e],this.insertionModeName=e},g.prototype.adoptionAgencyEndTag=function(e){function i(e){return e===r}var t=8,n=3,r,s=0;while(s++<t){r=this.elementInActiveFormattingElements(e);if(!r||this.openElements.contains(r)&&!this.openElements.inScope(r.localName))return this.parseError("adoption-agency-1.1",{name:e}),!1;if(!this.openElements.contains(r))return this.parseError("adoption-agency-1.2",{name:e}),this.removeElementFromActiveFormattingElements(r),!0;this.openElements.inScope(r.localName)||this.parseError("adoption-agency-4.4",{name:e}),r!=this.currentStackItem()&&this.parseError("adoption-agency-1.3",{name:e});var o=this.openElements.furthestBlockForFormattingElement(r.node);if(!o)return this.openElements.remove_openElements_until(i),this.removeElementFromActiveFormattingElements(r),!0;var u=this.openElements.elements.indexOf(r),a=this.openElements.item(u-1),l=this.activeFormattingElements.indexOf(r),c=o,h=o,p=this.openElements.elements.indexOf(c),d=0;while(d++<n){p-=1,c=this.openElements.item(p);if(this.activeFormattingElements.indexOf(c)<0){this.openElements.elements.splice(p,1);continue}if(c==r)break;h==o&&(l=this.activeFormattingElements.indexOf(c)+1);var v=this.createElement(c.namespaceURI,c.localName,c.attributes),m=new f(c.namespaceURI,c.localName,c.attributes,v);this.activeFormattingElements[this.activeFormattingElements.indexOf(c)]=m,this.openElements.elements[this.openElements.elements.indexOf(c)]=m,c=m,this.detachFromParent(h.node),this.attachNode(h.node,c.node),h=c}this.detachFromParent(h.node),a.isFosterParenting()?this.insertIntoFosterParent(h.node):this.attachNode(h.node,a.node);var v=this.createElement("http://www.w3.org/1999/xhtml",r.localName,r.attributes),g=new f(r.namespaceURI,r.localName,r.attributes,v);this.reparentChildren(o.node,v),this.attachNode(v,o.node),this.removeElementFromActiveFormattingElements(r),this.activeFormattingElements.splice(Math.min(l,this.activeFormattingElements.length),0,g),this.openElements.remove(r),this.openElements.elements.splice(this.openElements.elements.indexOf(o)+1,0,g)}return!0},g.prototype.start=function(){throw"Not mplemented"},g.prototype.startTokenization=function(e){this.tokenizer=e,this.compatMode="no quirks",this.originalInsertionMode="initial",this.framesetOk=!0,this.openElements=new a,this.activeFormattingElements=[],this.start();if(this.context){switch(this.context){case"title":case"textarea":this.tokenizer.setState(u.RCDATA);break;case"style":case"xmp":case"iframe":case"noembed":case"noframes":this.tokenizer.setState(u.RAWTEXT);break;case"script":this.tokenizer.setState(u.SCRIPT_DATA);break;case"noscript":this.scriptingEnabled&&this.tokenizer.setState(u.RAWTEXT);break;case"plaintext":this.tokenizer.setState(u.PLAINTEXT)}this.insertHtmlElement(),this.resetInsertionMode()}else this.setInsertionMode("initial")},g.prototype.processToken=function(e){this.selfClosingFlagAcknowledged=!1;var t=this.openElements.top||null,n;!t||!t.isForeign()||t.isMathMLTextIntegrationPoint()&&(e.type=="StartTag"&&!(e.name in{mglyph:0,malignmark:0})||e.type==="Characters")||t.namespaceURI=="http://www.w3.org/1998/Math/MathML"&&t.localName=="annotation-xml"&&e.type=="StartTag"&&e.name=="svg"||t.isHtmlIntegrationPoint()&&e.type in{StartTag:0,Characters:0}||e.type=="EOF"?n=this.insertionMode:n=this.insertionModes.inForeignContent;switch(e.type){case"Characters":var r=new m(e.data);n.processCharacters(r);break;case"Comment":n.processComment(e.data);break;case"StartTag":n.processStartTag(e.name,e.data,e.selfClosing);break;case"EndTag":n.processEndTag(e.name);break;case"Doctype":n.processDoctype(e.name,e.publicId,e.systemId,e.forceQuirks);break;case"EOF":n.processEOF()}},g.prototype.isCdataSectionAllowed=function(){return this.openElements.length>0&&this.currentStackItem().isForeign()},g.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},g.prototype.createElement=function(e,t,n){throw new Error("Not implemented")},g.prototype.attachNode=function(e,t){throw new Error("Not implemented")},g.prototype.attachNodeToFosterParent=function(e,t,n){throw new Error("Not implemented")},g.prototype.detachFromParent=function(e){throw new Error("Not implemented")},g.prototype.addAttributesToElement=function(e,t){throw new Error("Not implemented")},g.prototype.insertHtmlElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","html",e);return this.attachNode(t,this.document),this.openElements.pushHtmlElement(new f("http://www.w3.org/1999/xhtml","html",e,t)),t},g.prototype.insertHeadElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","head",e);return this.head=new f("http://www.w3.org/1999/xhtml","head",e,t),this.attachNode(t,this.openElements.top.node),this.openElements.pushHeadElement(this.head),t},g.prototype.insertBodyElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","body",e);return this.attachNode(t,this.openElements.top.node),this.openElements.pushBodyElement(new f("http://www.w3.org/1999/xhtml","body",e,t)),t},g.prototype.insertIntoFosterParent=function(e){var t=this.openElements.findIndex("table"),n=this.openElements.item(t).node;if(t===0)return this.attachNode(e,n);this.attachNodeToFosterParent(e,n,this.openElements.item(t-1).node)},g.prototype.insertElement=function(e,t,n,r){n||(n="http://www.w3.org/1999/xhtml");var i=this.createElement(n,e,t);this.shouldFosterParent()?this.insertIntoFosterParent(i):this.attachNode(i,this.openElements.top.node),r||this.openElements.push(new f(n,e,t,i))},g.prototype.insertFormattingElement=function(e,t){this.insertElement(e,t,"http://www.w3.org/1999/xhtml"),this.appendElementToActiveFormattingElements(this.currentStackItem())},g.prototype.insertSelfClosingElement=function(e,t){this.selfClosingFlagAcknowledged=!0,this.insertElement(e,t,"http://www.w3.org/1999/xhtml",!0)},g.prototype.insertForeignElement=function(e,t,n,r){r&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(e,t,n,r)},g.prototype.insertComment=function(e,t){throw new Error("Not implemented")},g.prototype.insertDoctype=function(e,t,n){throw new Error("Not implemented")},g.prototype.insertText=function(e){throw new Error("Not implemented")},g.prototype.currentStackItem=function(){return this.openElements.top},g.prototype.popElement=function(){return this.openElements.pop()},g.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},g.prototype.generateImpliedEndTags=function(e){var t=this.openElements.top.localName;["dd","dt","li","option","optgroup","p","rp","rt"].indexOf(t)!=-1&&t!=e&&(this.popElement(),this.generateImpliedEndTags(e))},g.prototype.reconstructActiveFormattingElements=function(){if(this.activeFormattingElements.length===0)return;var e=this.activeFormattingElements.length-1,t=this.activeFormattingElements[e];if(t==l||this.openElements.contains(t))return;while(t!=l&&!this.openElements.contains(t)){e-=1,t=this.activeFormattingElements[e];if(!t)break}for(;;){e+=1,t=this.activeFormattingElements[e],this.insertElement(t.localName,t.attributes);var n=this.currentStackItem();this.activeFormattingElements[e]=n;if(n==this.activeFormattingElements[this.activeFormattingElements.length-1])break}},g.prototype.ensureNoahsArkCondition=function(e){var t=3;if(this.activeFormattingElements.length<t)return;var n=[],r=e.attributes.length;for(var i=this.activeFormattingElements.length-1;i>=0;i--){var s=this.activeFormattingElements[i];if(s===l)break;if(e.localName!==s.localName||e.namespaceURI!==s.namespaceURI)continue;if(s.attributes.length!=r)continue;n.push(s)}if(n.length<t)return;var o=[],u=e.attributes;for(var i=0;i<u.length;i++){var a=u[i];for(var f=0;f<n.length;f++){var s=n[f],c=v(s,a.nodeName);c&&c.nodeValue===a.nodeValue&&o.push(s)}if(o.length<t)return;n=o,o=[]}for(var i=t-1;i<n.length;i++)this.removeElementFromActiveFormattingElements(n[i])},g.prototype.appendElementToActiveFormattingElements=function(e){this.ensureNoahsArkCondition(e),this.activeFormattingElements.push(e)},g.prototype.removeElementFromActiveFormattingElements=function(e){var t=this.activeFormattingElements.indexOf(e);t>=0&&this.activeFormattingElements.splice(t,1)},g.prototype.elementInActiveFormattingElements=function(e){var t=this.activeFormattingElements;for(var n=t.length-1;n>=0;n--){if(t[n]==l)break;if(t[n].localName==e)return t[n]}return!1},g.prototype.clearActiveFormattingElements=function(){while(this.activeFormattingElements.length!==0&&this.activeFormattingElements.pop()!=l);},g.prototype.reparentChildren=function(e,t){throw new Error("Not implemented")},g.prototype.setFragmentContext=function(e){this.context=e},g.prototype.parseError=function(e,t){if(!this.errorHandler)return;var n=y(i[e],t);this.errorHandler.error(n,this.tokenizer._inputStream.location(),e)},g.prototype.resetInsertionMode=function(){var e=!1,t=null;for(var n=this.openElements.length-1;n>=0;n--){t=this.openElements.item(n),n===0&&(r.ok(this.context),e=!0,t=new f("http://www.w3.org/1999/xhtml",this.context,[],null));if(t.namespaceURI==="http://www.w3.org/1999/xhtml"){if(t.localName==="select")return this.setInsertionMode("inSelect");if(t.localName==="td"||t.localName==="th")return this.setInsertionMode("inCell");if(t.localName==="tr")return this.setInsertionMode("inRow");if(t.localName==="tbody"||t.localName==="thead"||t.localName==="tfoot")return this.setInsertionMode("inTableBody");if(t.localName==="caption")return this.setInsertionMode("inCaption");if(t.localName==="colgroup")return this.setInsertionMode("inColumnGroup");if(t.localName==="table")return this.setInsertionMode("inTable");if(t.localName==="head"&&!e)return this.setInsertionMode("inHead");if(t.localName==="body")return this.setInsertionMode("inBody");if(t.localName==="frameset")return this.setInsertionMode("inFrameset");if(t.localName==="html")return this.openElements.headElement?this.setInsertionMode("afterHead"):this.setInsertionMode("beforeHead")}if(e)return this.setInsertionMode("inBody")}},g.prototype.processGenericRCDATAStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.processGenericRawTextStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.adjustMathMLAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/1998/Math/MathML",s.MATHMLAttributeMap[e.nodeName]&&(e.nodeName=s.MATHMLAttributeMap[e.nodeName])}),e},g.prototype.adjustSVGTagNameCase=function(e){return s.SVGTagMap[e]||e},g.prototype.adjustSVGAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/2000/svg",s.SVGAttributeMap[e.nodeName]&&(e.nodeName=s.SVGAttributeMap[e.nodeName])}),e},g.prototype.adjustForeignAttributes=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.ForeignAttributeMap[n.nodeName];r&&(n.nodeName=r.localName,n.prefix=r.prefix,n.namespaceURI=r.namespaceURI)}return e},n.TreeBuilder=g},{"./ElementStack":1,"./StackItem":4,"./Tokenizer":5,"./constants":7,"./messages.json":8,assert:13,events:16}],7:[function(e,t,n){n.SVGTagMap={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},n.MATHMLAttributeMap={definitionurl:"definitionURL"},n.SVGAttributeMap={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",externalresourcesrequired:"externalResourcesRequired",filterres:"filterRes",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},n.ForeignAttributeMap={"xlink:actuate":{prefix:"xlink",localName:"actuate",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:arcrole":{prefix:"xlink",localName:"arcrole",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:href":{prefix:"xlink",localName:"href",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:role":{prefix:"xlink",localName:"role",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:show":{prefix:"xlink",localName:"show",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:title":{prefix:"xlink",localName:"title",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:type":{prefix:"xlink",localName:"title",namespaceURI:"http://www.w3.org/1999/xlink"},"xml:base":{prefix:"xml",localName:"base",namespaceURI:"http://www.w3.org/XML/1998/namespace"},"xml:lang":{prefix:"xml",localName:"lang",namespaceURI:"http://www.w3.org/XML/1998/namespace"},"xml:space":{prefix:"xml",localName:"space",namespaceURI:"http://www.w3.org/XML/1998/namespace"},xmlns:{prefix:null,localName:"xmlns",namespaceURI:"http://www.w3.org/2000/xmlns/"},"xmlns:xlink":{prefix:"xmlns",localName:"xlink",namespaceURI:"http://www.w3.org/2000/xmlns/"}}},{}],8:[function(e,t,n){t.exports={"null-character":"Null character in input stream, replaced with U+FFFD.","invalid-codepoint":"Invalid codepoint in stream","incorrectly-placed-solidus":"Solidus (/) incorrectly placed in tag.","incorrect-cr-newline-entity":"Incorrect CR newline entity, replaced with LF.","illegal-windows-1252-entity":"Entity used with illegal number (windows-1252 reference).","cant-convert-numeric-entity":"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).","invalid-numeric-entity-replaced":"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.","numeric-entity-without-semicolon":"Numeric entity didn't end with ';'.","expected-numeric-entity-but-got-eof":"Numeric entity expected. Got end of file instead.","expected-numeric-entity":"Numeric entity expected but none found.","named-entity-without-semicolon":"Named entity didn't end with ';'.","expected-named-entity":"Named entity expected. Got none.","attributes-in-end-tag":"End tag contains unexpected attributes.","self-closing-flag-on-end-tag":"End tag contains unexpected self-closing flag.","bare-less-than-sign-at-eof":"End of file after <.","expected-tag-name-but-got-right-bracket":"Expected tag name. Got '>' instead.","expected-tag-name-but-got-question-mark":"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)","expected-tag-name":"Expected tag name. Got something else instead.","expected-closing-tag-but-got-right-bracket":"Expected closing tag. Got '>' instead. Ignoring '</>'.","expected-closing-tag-but-got-eof":"Expected closing tag. Unexpected end of file.","expected-closing-tag-but-got-char":"Expected closing tag. Unexpected character '{data}' found.","eof-in-tag-name":"Unexpected end of file in the tag name.","expected-attribute-name-but-got-eof":"Unexpected end of file. Expected attribute name instead.","eof-in-attribute-name":"Unexpected end of file in attribute name.","invalid-character-in-attribute-name":"Invalid character in attribute name.","duplicate-attribute":"Dropped duplicate attribute '{name}' on tag.","expected-end-of-tag-but-got-eof":"Unexpected end of file. Expected = or end of tag.","expected-attribute-value-but-got-eof":"Unexpected end of file. Expected attribute value.","expected-attribute-value-but-got-right-bracket":"Expected attribute value. Got '>' instead.","unexpected-character-in-unquoted-attribute-value":"Unexpected character in unquoted attribute","invalid-character-after-attribute-name":"Unexpected character after attribute name.","unexpected-character-after-attribute-value":"Unexpected character after attribute value.","eof-in-attribute-value-double-quote":'Unexpected end of file in attribute value (").',"eof-in-attribute-value-single-quote":"Unexpected end of file in attribute value (').","eof-in-attribute-value-no-quotes":"Unexpected end of file in attribute value.","eof-after-attribute-value":"Unexpected end of file after attribute value.","unexpected-eof-after-solidus-in-tag":"Unexpected end of file in tag. Expected >.","unexpected-character-after-solidus-in-tag":"Unexpected character after / in tag. Expected >.","expected-dashes-or-doctype":"Expected '--' or 'DOCTYPE'. Not found.","unexpected-bang-after-double-dash-in-comment":"Unexpected ! after -- in comment.","incorrect-comment":"Incorrect comment.","eof-in-comment":"Unexpected end of file in comment.","eof-in-comment-end-dash":"Unexpected end of file in comment (-).","unexpected-dash-after-double-dash-in-comment":"Unexpected '-' after '--' found in comment.","eof-in-comment-double-dash":"Unexpected end of file in comment (--).","eof-in-comment-end-bang-state":"Unexpected end of file in comment.","unexpected-char-in-comment":"Unexpected character in comment found.","need-space-after-doctype":"No space after literal string 'DOCTYPE'.","expected-doctype-name-but-got-right-bracket":"Unexpected > character. Expected DOCTYPE name.","expected-doctype-name-but-got-eof":"Unexpected end of file. Expected DOCTYPE name.","eof-in-doctype-name":"Unexpected end of file in DOCTYPE name.","eof-in-doctype":"Unexpected end of file in DOCTYPE.","expected-space-or-right-bracket-in-doctype":"Expected space or '>'. Got '{data}'.","unexpected-end-of-doctype":"Unexpected end of DOCTYPE.","unexpected-char-in-doctype":"Unexpected character in DOCTYPE.","eof-in-bogus-doctype":"Unexpected end of file in bogus doctype.","eof-in-innerhtml":"Unexpected EOF in inner html mode.","unexpected-doctype":"Unexpected DOCTYPE. Ignored.","non-html-root":"html needs to be the first start tag.","expected-doctype-but-got-eof":"Unexpected End of file. Expected DOCTYPE.","unknown-doctype":"Erroneous DOCTYPE. Expected <!DOCTYPE html>.","quirky-doctype":"Quirky doctype. Expected <!DOCTYPE html>.","almost-standards-doctype":"Almost standards mode doctype. Expected <!DOCTYPE html>.","obsolete-doctype":"Obsolete doctype. Expected <!DOCTYPE html>.","expected-doctype-but-got-chars":"Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","expected-doctype-but-got-start-tag":"Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","expected-doctype-but-got-end-tag":"End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","end-tag-after-implied-root":"Unexpected end tag ({name}) after the (implied) root element.","expected-named-closing-tag-but-got-eof":"Unexpected end of file. Expected end tag ({name}).","two-heads-are-not-better-than-one":"Unexpected start tag head in existing head. Ignored.","unexpected-end-tag":"Unexpected end tag ({name}). Ignored.","unexpected-implied-end-tag":"End tag {name} implied, but there were open elements.","unexpected-start-tag-out-of-my-head":"Unexpected start tag ({name}) that can be in head. Moved.","unexpected-start-tag":"Unexpected start tag ({name}).","missing-end-tag":"Missing end tag ({name}).","missing-end-tags":"Missing end tags ({name}).","unexpected-start-tag-implies-end-tag":"Unexpected start tag ({startName}) implies end tag ({endName}).","unexpected-start-tag-treated-as":"Unexpected start tag ({originalName}). Treated as {newName}.","deprecated-tag":"Unexpected start tag {name}. Don't use it!","unexpected-start-tag-ignored":"Unexpected start tag {name}. Ignored.","expected-one-end-tag-but-got-another":"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).","end-tag-too-early":"End tag ({name}) seen too early. Expected other end tag.","end-tag-too-early-named":"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.","end-tag-too-early-ignored":"End tag ({name}) seen too early. Ignored.","adoption-agency-1.1":"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.","adoption-agency-1.2":"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.","adoption-agency-1.3":"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.","adoption-agency-4.4":"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.","unexpected-end-tag-treated-as":"Unexpected end tag ({originalName}). Treated as {newName}.","no-end-tag":"This element ({name}) has no end tag.","unexpected-implied-end-tag-in-table":"Unexpected implied end tag ({name}) in the table phase.","unexpected-implied-end-tag-in-table-body":"Unexpected implied end tag ({name}) in the table body phase.","unexpected-char-implies-table-voodoo":"Unexpected non-space characters in table context caused voodoo mode.","unexpected-hidden-input-in-table":"Unexpected input with type hidden in table context.","unexpected-form-in-table":"Unexpected form in table context.","unexpected-start-tag-implies-table-voodoo":"Unexpected start tag ({name}) in table context caused voodoo mode.","unexpected-end-tag-implies-table-voodoo":"Unexpected end tag ({name}) in table context caused voodoo mode.","unexpected-cell-in-table-body":"Unexpected table cell start tag ({name}) in the table body phase.","unexpected-cell-end-tag":"Got table cell end tag ({name}) while required end tags are missing.","unexpected-end-tag-in-table-body":"Unexpected end tag ({name}) in the table body phase. Ignored.","unexpected-implied-end-tag-in-table-row":"Unexpected implied end tag ({name}) in the table row phase.","unexpected-end-tag-in-table-row":"Unexpected end tag ({name}) in the table row phase. Ignored.","unexpected-select-in-select":"Unexpected select start tag in the select phase treated as select end tag.","unexpected-input-in-select":"Unexpected input start tag in the select phase.","unexpected-start-tag-in-select":"Unexpected start tag token ({name}) in the select phase. Ignored.","unexpected-end-tag-in-select":"Unexpected end tag ({name}) in the select phase. Ignored.","unexpected-table-element-start-tag-in-select-in-table":"Unexpected table element start tag ({name}) in the select in table phase.","unexpected-table-element-end-tag-in-select-in-table":"Unexpected table element end tag ({name}) in the select in table phase.","unexpected-char-after-body":"Unexpected non-space characters in the after body phase.","unexpected-start-tag-after-body":"Unexpected start tag token ({name}) in the after body phase.","unexpected-end-tag-after-body":"Unexpected end tag token ({name}) in the after body phase.","unexpected-char-in-frameset":"Unepxected characters in the frameset phase. Characters ignored.","unexpected-start-tag-in-frameset":"Unexpected start tag token ({name}) in the frameset phase. Ignored.","unexpected-frameset-in-frameset-innerhtml":"Unexpected end tag token (frameset in the frameset phase (innerHTML).","unexpected-end-tag-in-frameset":"Unexpected end tag token ({name}) in the frameset phase. Ignored.","unexpected-char-after-frameset":"Unexpected non-space characters in the after frameset phase. Ignored.","unexpected-start-tag-after-frameset":"Unexpected start tag ({name}) in the after frameset phase. Ignored.","unexpected-end-tag-after-frameset":"Unexpected end tag ({name}) in the after frameset phase. Ignored.","expected-eof-but-got-char":"Unexpected non-space characters. Expected end of file.","expected-eof-but-got-start-tag":"Unexpected start tag ({name}). Expected end of file.","expected-eof-but-got-end-tag":"Unexpected end tag ({name}). Expected end of file.","unexpected-end-table-in-caption":"Unexpected end table tag in caption. Generates implied end caption.","end-html-in-innerhtml":"Unexpected html end tag in inner html mode.","eof-in-table":"Unexpected end of file. Expected table content.","eof-in-script":"Unexpected end of file. Expected script content.","non-void-element-with-trailing-solidus":"Trailing solidus not allowed on element {name}.","unexpected-html-element-in-foreign-content":'HTML start tag "{name}" in a foreign namespace context.',"unexpected-start-tag-in-table":"Unexpected {name}. Expected table content."}},{}],9:[function(e,t,n){function o(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new r,this._tokenizer=new i(this._treeBuilder),this._scriptingEnabled=!1}var r=e("./SAXTreeBuilder").SAXTreeBuilder,i=e("../Tokenizer").Tokenizer,s=e("./TreeParser").TreeParser;o.prototype.parse=function(e){this._tokenizer.tokenize(e);var t=this._treeBuilder.document;t&&(new s(this.contentHandler)).parse(t)},o.prototype.parseFragment=function(e,t){this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.getFragment();n&&(new s(this.contentHandler)).parse(n)},Object.defineProperty(o.prototype,"scriptingEnabled",{get:function(){return this._scriptingEnabled},set:function(e){this._scriptingEnabled=e,this._treeBuilder.scriptingEnabled=e}}),Object.defineProperty(o.prototype,"errorHandler",{get:function(){return this._errorHandler},set:function(e){this._errorHandler=e,this._treeBuilder.errorHandler=e}}),n.SAXParser=o},{"../Tokenizer":5,"./SAXTreeBuilder":10,"./TreeParser":11}],10:[function(e,t,n){function s(){i.call(this)}function o(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r.nodeValue}}function a(e){e?(this.columnNumber=e.columnNumber,this.lineNumber=e.lineNumber):(this.columnNumber=-1,this.lineNumber=-1),this.parentNode=null,this.nextSibling=null,this.firstChild=null}function f(e){a.call(this,e),this.lastChild=null,this._endLocator=null}function l(e){f.call(this,e),this.nodeType=u.DOCUMENT}function c(){f.call(this,new Locator),this.nodeType=u.DOCUMENT_FRAGMENT}function h(e,t,n,r,i,s){f.call(this,e),this.uri=t,this.localName=n,this.qName=r,this.attributes=i,this.prefixMappings=s,this.nodeType=u.ELEMENT}function p(e,t){a.call(this,e),this.data=t,this.nodeType=u.CHARACTERS}function d(e,t){a.call(this,e),this.data=t,this.nodeType=u.IGNORABLE_WHITESPACE}function v(e,t){a.call(this,e),this.data=t,this.nodeType=u.COMMENT}function m(e){f.call(this,e),this.nodeType=u.CDATA}function g(e){f.call(this),this.name=e,this.nodeType=u.ENTITY}function y(e){a.call(this),this.name=e,this.nodeType=u.SKIPPED_ENTITY}function b(e,t){a.call(this),this.target=e,this.data=t}function w(e,t,n){f.call(this),this.name=e,this.publicIdentifier=t,this.systemIdentifier=n,this.nodeType=u.DTD}var r=e("util"),i=e("../TreeBuilder").TreeBuilder;r.inherits(s,i),s.prototype.start=function(e){this.document=new l(this.tokenizer)},s.prototype.end=function(){this.document.endLocator=this.tokenizer},s.prototype.insertDoctype=function(e,t,n){var r=new w(this.tokenizer,e,t,n);r.endLocator=this.tokenizer,this.document.appendChild(r)},s.prototype.createElement=function(e,t,n){var r=new h(this.tokenizer,e,t,t,n||[]);return r},s.prototype.insertComment=function(e,t){t||(t=this.currentStackItem());var n=new v(this.tokenizer,e);t.appendChild(n)},s.prototype.appendCharacters=function(e,t){var n=new p(this.tokenizer,t);e.appendChild(n)},s.prototype.insertText=function(e){if(this.redirectAttachToFosterParent&&this.openElements.top.isFosterParenting()){var t=this.openElements.findIndex("table"),n=this.openElements.item(t),r=n.node;if(t===0)return this.appendCharacters(r,e);var i=new p(this.tokenizer,e),s=r.parentNode;if(s){s.insertBetween(i,r.previousSibling,r);return}var o=this.openElements.item(t-1).node;o.appendChild(i);return}this.appendCharacters(this.currentStackItem().node,e)},s.prototype.attachNode=function(e,t){t.appendChild(e)},s.prototype.attachNodeToFosterParent=function(e,t,n){var r=t.parentNode;r?r.insertBetween(e,t.previousSibling,t):n.appendChild(e)},s.prototype.detachFromParent=function(e){e.detach()},s.prototype.reparentChildren=function(e,t){t.appendChildren(e.firstChild)},s.prototype.getFragment=function(){var e=new c;return this.reparentChildren(this.openElements.rootNode,e),e},s.prototype.addAttributesToElement=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];o(e,r.nodeName)||e.attributes.push(r)}};var u={CDATA:1,CHARACTERS:2,COMMENT:3,DOCUMENT:4,DOCUMENT_FRAGMENT:5,DTD:6,ELEMENT:7,ENTITY:8,IGNORABLE_WHITESPACE:9,PROCESSING_INSTRUCTION:10,SKIPPED_ENTITY:11};a.prototype.visit=function(e){throw new Error("Not Implemented")},a.prototype.revisit=function(e){return},a.prototype.detach=function(){this.parentNode!==null&&(this.parentNode.removeChild(this),this.parentNode=null)},Object.defineProperty(a.prototype,"previousSibling",{get:function(){var e=null,t=this.parentNode.firstChild;for(;;){if(this==t)return e;e=t,t=t.nextSibling}}}),f.prototype=Object.create(a.prototype),f.prototype.insertBefore=function(e,t){if(!t)return this.appendChild(e);e.detach(),e.parentNode=this;if(this.firstChild==t)e.nextSibling=t,this.firstChild=e;else{var n=this.firstChild,r=this.firstChild.nextSibling;while(r!=t)n=r,r=r.nextSibling;n.nextSibling=e,e.nextSibling=r}return e},f.prototype.insertBetween=function(e,t,n){return n?(e.detach(),e.parentNode=this,e.nextSibling=n,t?t.nextSibling=e:firstChild=e,e):this.appendChild(e)},f.prototype.appendChild=function(e){return e.detach(),e.parentNode=this,this.firstChild?this.lastChild.nextSibling=e:this.firstChild=e,this.lastChild=e,e},f.prototype.appendChildren=function(e){var t=e.firstChild;if(!t)return;var n=e;this.firstChild?this.lastChild.nextSibling=t:this.firstChild=t,this.lastChild=n.lastChild;do t.parentNode=this;while(t=t.nextSibling);n.firstChild=null,n.lastChild=null},f.prototype.removeChild=function(e){if(this.firstChild==e)this.firstChild=e.nextSibling,this.lastChild==e&&(this.lastChild=null);else{var t=this.firstChild,n=this.firstChild.nextSibling;while(n!=e)t=n,n=n.nextSibling;t.nextSibling=e.nextSibling,this.lastChild==e&&(this.lastChild=t)}return e.parentNode=null,e},Object.defineProperty(f.prototype,"endLocator",{get:function(){return this._endLocator},set:function(e){this._endLocator={lineNumber:e.lineNumber,columnNumber:e.columnNumber}}}),l.prototype=Object.create(f.prototype),l.prototype.visit=function(e){e.startDocument(this)},l.prototype.revisit=function(e){e.endDocument(this.endLocator)},c.prototype=Object.create(f.prototype),c.prototype.visit=function(e){},h.prototype=Object.create(f.prototype),h.prototype.visit=function(e){if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.startPrefixMapping(n.getPrefix(),n.getUri(),this)}e.startElement(this.uri,this.localName,this.qName,this.attributes,this)},h.prototype.revisit=function(e){e.endElement(this.uri,this.localName,this.qName,this.endLocator);if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.endPrefixMapping(n.getPrefix(),this.endLocator)}},p.prototype=Object.create(a.prototype),p.prototype.visit=function(e){e.characters(this.data,0,this.data.length,this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(e){e.ignorableWhitespace(this.data,0,this.data.length,this)},v.prototype=Object.create(a.prototype),v.prototype.visit=function(e){e.comment(this.data,0,this.data.length,this)},m.prototype=Object.create(f.prototype),m.prototype.visit=function(e){e.startCDATA(this)},m.prototype.revisit=function(e){e.endCDATA(this.endLocator)},g.prototype=Object.create(f.prototype),g.prototype.visit=function(e){e.startEntity(this.name,this)},g.prototype.revisit=function(e){e.endEntity(this.name)},y.prototype=Object.create(a.prototype),y.prototype.visit=function(e){e.skippedEntity(this.name,this)},b.prototype=Object.create(a.prototype),b.prototype.visit=function(e){e.processingInstruction(this.target,this.data,this)},b.prototype.getNodeType=function(){return u.PROCESSING_INSTRUCTION},w.prototype=Object.create(f.prototype),w.prototype.visit=function(e){e.startDTD(this.name,this.publicIdentifier,this.systemIdentifier,this)},w.prototype.revisit=function(e){e.endDTD()},n.SAXTreeBuilder=s},{"../TreeBuilder":6,util:20}],11:[function(e,t,n){function r(e,t){this.contentHandler,this.lexicalHandler,this.locatorDelegate;if(!e)throw new IllegalArgumentException("contentHandler was null.");this.contentHandler=e,t?this.lexicalHandler=t:this.lexicalHandler=new i}function i(){}r.prototype.parse=function(e){this.contentHandler.documentLocator=this;var t=e,n;for(;;){t.visit(this);if(n=t.firstChild){t=n;continue}for(;;){t.revisit(this);if(t==e)return;if(n=t.nextSibling){t=n;break}t=t.parentNode}}},r.prototype.characters=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.characters(e,t,n)},r.prototype.endDocument=function(e){this.locatorDelegate=e,this.contentHandler.endDocument()},r.prototype.endElement=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.endElement(e,t,n)},r.prototype.endPrefixMapping=function(e,t){this.locatorDelegate=t,this.contentHandler.endPrefixMapping(e)},r.prototype.ignorableWhitespace=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.ignorableWhitespace(e,t,n)},r.prototype.processingInstruction=function(e,t,n){this.locatorDelegate=n,this.contentHandler.processingInstruction(e,t)},r.prototype.skippedEntity=function(e,t){this.locatorDelegate=t,this.contentHandler.skippedEntity(e)},r.prototype.startDocument=function(e){this.locatorDelegate=e,this.contentHandler.startDocument()},r.prototype.startElement=function(e,t,n,r,i){this.locatorDelegate=i,this.contentHandler.startElement(e,t,n,r)},r.prototype.startPrefixMapping=function(e,t,n){this.locatorDelegate=n,this.contentHandler.startPrefixMapping(e,t)},r.prototype.comment=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.comment(e,t,n)},r.prototype.endCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.endCDATA()},r.prototype.endDTD=function(e){this.locatorDelegate=e,this.lexicalHandler.endDTD()},r.prototype.endEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.endEntity(e)},r.prototype.startCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.startCDATA()},r.prototype.startDTD=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.startDTD(e,t,n)},r.prototype.startEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.startEntity(e)},Object.defineProperty(r.prototype,"columnNumber",{get:function(){return this.locatorDelegate?this.locatorDelegate.columnNumber:-1}}),Object.defineProperty(r.prototype,"lineNumber",{get:function(){return this.locatorDelegate?this.locatorDelegate.lineNumber:-1}}),i.prototype.comment=function(){},i.prototype.endCDATA=function(){},i.prototype.endDTD=function(){},i.prototype.endEntity=function(){},i.prototype.startCDATA=function(){},i.prototype.startDTD=function(){},i.prototype.startEntity=function(){},n.TreeParser=r},{}],12:[function(e,t,n){t.exports={"Aacute;":"\u00c1",Aacute:"\u00c1","aacute;":"\u00e1",aacute:"\u00e1","Abreve;":"\u0102","abreve;":"\u0103","ac;":"\u223e","acd;":"\u223f","acE;":"\u223e\u0333","Acirc;":"\u00c2",Acirc:"\u00c2","acirc;":"\u00e2",acirc:"\u00e2","acute;":"\u00b4",acute:"\u00b4","Acy;":"\u0410","acy;":"\u0430","AElig;":"\u00c6",AElig:"\u00c6","aelig;":"\u00e6",aelig:"\u00e6","af;":"\u2061","Afr;":"\ud835\udd04","afr;":"\ud835\udd1e","Agrave;":"\u00c0",Agrave:"\u00c0","agrave;":"\u00e0",agrave:"\u00e0","alefsym;":"\u2135","aleph;":"\u2135","Alpha;":"\u0391","alpha;":"\u03b1","Amacr;":"\u0100","amacr;":"\u0101","amalg;":"\u2a3f","amp;":"&",amp:"&","AMP;":"&",AMP:"&","andand;":"\u2a55","And;":"\u2a53","and;":"\u2227","andd;":"\u2a5c","andslope;":"\u2a58","andv;":"\u2a5a","ang;":"\u2220","ange;":"\u29a4","angle;":"\u2220","angmsdaa;":"\u29a8","angmsdab;":"\u29a9","angmsdac;":"\u29aa","angmsdad;":"\u29ab","angmsdae;":"\u29ac","angmsdaf;":"\u29ad","angmsdag;":"\u29ae","angmsdah;":"\u29af","angmsd;":"\u2221","angrt;":"\u221f","angrtvb;":"\u22be","angrtvbd;":"\u299d","angsph;":"\u2222","angst;":"\u00c5","angzarr;":"\u237c","Aogon;":"\u0104","aogon;":"\u0105","Aopf;":"\ud835\udd38","aopf;":"\ud835\udd52","apacir;":"\u2a6f","ap;":"\u2248","apE;":"\u2a70","ape;":"\u224a","apid;":"\u224b","apos;":"'","ApplyFunction;":"\u2061","approx;":"\u2248","approxeq;":"\u224a","Aring;":"\u00c5",Aring:"\u00c5","aring;":"\u00e5",aring:"\u00e5","Ascr;":"\ud835\udc9c","ascr;":"\ud835\udcb6","Assign;":"\u2254","ast;":"*","asymp;":"\u2248","asympeq;":"\u224d","Atilde;":"\u00c3",Atilde:"\u00c3","atilde;":"\u00e3",atilde:"\u00e3","Auml;":"\u00c4",Auml:"\u00c4","auml;":"\u00e4",auml:"\u00e4","awconint;":"\u2233","awint;":"\u2a11","backcong;":"\u224c","backepsilon;":"\u03f6","backprime;":"\u2035","backsim;":"\u223d","backsimeq;":"\u22cd","Backslash;":"\u2216","Barv;":"\u2ae7","barvee;":"\u22bd","barwed;":"\u2305","Barwed;":"\u2306","barwedge;":"\u2305","bbrk;":"\u23b5","bbrktbrk;":"\u23b6","bcong;":"\u224c","Bcy;":"\u0411","bcy;":"\u0431","bdquo;":"\u201e","becaus;":"\u2235","because;":"\u2235","Because;":"\u2235","bemptyv;":"\u29b0","bepsi;":"\u03f6","bernou;":"\u212c","Bernoullis;":"\u212c","Beta;":"\u0392","beta;":"\u03b2","beth;":"\u2136","between;":"\u226c","Bfr;":"\ud835\udd05","bfr;":"\ud835\udd1f","bigcap;":"\u22c2","bigcirc;":"\u25ef","bigcup;":"\u22c3","bigodot;":"\u2a00","bigoplus;":"\u2a01","bigotimes;":"\u2a02","bigsqcup;":"\u2a06","bigstar;":"\u2605","bigtriangledown;":"\u25bd","bigtriangleup;":"\u25b3","biguplus;":"\u2a04","bigvee;":"\u22c1","bigwedge;":"\u22c0","bkarow;":"\u290d","blacklozenge;":"\u29eb","blacksquare;":"\u25aa","blacktriangle;":"\u25b4","blacktriangledown;":"\u25be","blacktriangleleft;":"\u25c2","blacktriangleright;":"\u25b8","blank;":"\u2423","blk12;":"\u2592","blk14;":"\u2591","blk34;":"\u2593","block;":"\u2588","bne;":"=\u20e5","bnequiv;":"\u2261\u20e5","bNot;":"\u2aed","bnot;":"\u2310","Bopf;":"\ud835\udd39","bopf;":"\ud835\udd53","bot;":"\u22a5","bottom;":"\u22a5","bowtie;":"\u22c8","boxbox;":"\u29c9","boxdl;":"\u2510","boxdL;":"\u2555","boxDl;":"\u2556","boxDL;":"\u2557","boxdr;":"\u250c","boxdR;":"\u2552","boxDr;":"\u2553","boxDR;":"\u2554","boxh;":"\u2500","boxH;":"\u2550","boxhd;":"\u252c","boxHd;":"\u2564","boxhD;":"\u2565","boxHD;":"\u2566","boxhu;":"\u2534","boxHu;":"\u2567","boxhU;":"\u2568","boxHU;":"\u2569","boxminus;":"\u229f","boxplus;":"\u229e","boxtimes;":"\u22a0","boxul;":"\u2518","boxuL;":"\u255b","boxUl;":"\u255c","boxUL;":"\u255d","boxur;":"\u2514","boxuR;":"\u2558","boxUr;":"\u2559","boxUR;":"\u255a","boxv;":"\u2502","boxV;":"\u2551","boxvh;":"\u253c","boxvH;":"\u256a","boxVh;":"\u256b","boxVH;":"\u256c","boxvl;":"\u2524","boxvL;":"\u2561","boxVl;":"\u2562","boxVL;":"\u2563","boxvr;":"\u251c","boxvR;":"\u255e","boxVr;":"\u255f","boxVR;":"\u2560","bprime;":"\u2035","breve;":"\u02d8","Breve;":"\u02d8","brvbar;":"\u00a6",brvbar:"\u00a6","bscr;":"\ud835\udcb7","Bscr;":"\u212c","bsemi;":"\u204f","bsim;":"\u223d","bsime;":"\u22cd","bsolb;":"\u29c5","bsol;":"\\","bsolhsub;":"\u27c8","bull;":"\u2022","bullet;":"\u2022","bump;":"\u224e","bumpE;":"\u2aae","bumpe;":"\u224f","Bumpeq;":"\u224e","bumpeq;":"\u224f","Cacute;":"\u0106","cacute;":"\u0107","capand;":"\u2a44","capbrcup;":"\u2a49","capcap;":"\u2a4b","cap;":"\u2229","Cap;":"\u22d2","capcup;":"\u2a47","capdot;":"\u2a40","CapitalDifferentialD;":"\u2145","caps;":"\u2229\ufe00","caret;":"\u2041","caron;":"\u02c7","Cayleys;":"\u212d","ccaps;":"\u2a4d","Ccaron;":"\u010c","ccaron;":"\u010d","Ccedil;":"\u00c7",Ccedil:"\u00c7","ccedil;":"\u00e7",ccedil:"\u00e7","Ccirc;":"\u0108","ccirc;":"\u0109","Cconint;":"\u2230","ccups;":"\u2a4c","ccupssm;":"\u2a50","Cdot;":"\u010a","cdot;":"\u010b","cedil;":"\u00b8",cedil:"\u00b8","Cedilla;":"\u00b8","cemptyv;":"\u29b2","cent;":"\u00a2",cent:"\u00a2","centerdot;":"\u00b7","CenterDot;":"\u00b7","cfr;":"\ud835\udd20","Cfr;":"\u212d","CHcy;":"\u0427","chcy;":"\u0447","check;":"\u2713","checkmark;":"\u2713","Chi;":"\u03a7","chi;":"\u03c7","circ;":"\u02c6","circeq;":"\u2257","circlearrowleft;":"\u21ba","circlearrowright;":"\u21bb","circledast;":"\u229b","circledcirc;":"\u229a","circleddash;":"\u229d","CircleDot;":"\u2299","circledR;":"\u00ae","circledS;":"\u24c8","CircleMinus;":"\u2296","CirclePlus;":"\u2295","CircleTimes;":"\u2297","cir;":"\u25cb","cirE;":"\u29c3","cire;":"\u2257","cirfnint;":"\u2a10","cirmid;":"\u2aef","cirscir;":"\u29c2","ClockwiseContourIntegral;":"\u2232","CloseCurlyDoubleQuote;":"\u201d","CloseCurlyQuote;":"\u2019","clubs;":"\u2663","clubsuit;":"\u2663","colon;":":","Colon;":"\u2237","Colone;":"\u2a74","colone;":"\u2254","coloneq;":"\u2254","comma;":",","commat;":"@","comp;":"\u2201","compfn;":"\u2218","complement;":"\u2201","complexes;":"\u2102","cong;":"\u2245","congdot;":"\u2a6d","Congruent;":"\u2261","conint;":"\u222e","Conint;":"\u222f","ContourIntegral;":"\u222e","copf;":"\ud835\udd54","Copf;":"\u2102","coprod;":"\u2210","Coproduct;":"\u2210","copy;":"\u00a9",copy:"\u00a9","COPY;":"\u00a9",COPY:"\u00a9","copysr;":"\u2117","CounterClockwiseContourIntegral;":"\u2233","crarr;":"\u21b5","cross;":"\u2717","Cross;":"\u2a2f","Cscr;":"\ud835\udc9e","cscr;":"\ud835\udcb8","csub;":"\u2acf","csube;":"\u2ad1","csup;":"\u2ad0","csupe;":"\u2ad2","ctdot;":"\u22ef","cudarrl;":"\u2938","cudarrr;":"\u2935","cuepr;":"\u22de","cuesc;":"\u22df","cularr;":"\u21b6","cularrp;":"\u293d","cupbrcap;":"\u2a48","cupcap;":"\u2a46","CupCap;":"\u224d","cup;":"\u222a","Cup;":"\u22d3","cupcup;":"\u2a4a","cupdot;":"\u228d","cupor;":"\u2a45","cups;":"\u222a\ufe00","curarr;":"\u21b7","curarrm;":"\u293c","curlyeqprec;":"\u22de","curlyeqsucc;":"\u22df","curlyvee;":"\u22ce","curlywedge;":"\u22cf","curren;":"\u00a4",curren:"\u00a4","curvearrowleft;":"\u21b6","curvearrowright;":"\u21b7","cuvee;":"\u22ce","cuwed;":"\u22cf","cwconint;":"\u2232","cwint;":"\u2231","cylcty;":"\u232d","dagger;":"\u2020","Dagger;":"\u2021","daleth;":"\u2138","darr;":"\u2193","Darr;":"\u21a1","dArr;":"\u21d3","dash;":"\u2010","Dashv;":"\u2ae4","dashv;":"\u22a3","dbkarow;":"\u290f","dblac;":"\u02dd","Dcaron;":"\u010e","dcaron;":"\u010f","Dcy;":"\u0414","dcy;":"\u0434","ddagger;":"\u2021","ddarr;":"\u21ca","DD;":"\u2145","dd;":"\u2146","DDotrahd;":"\u2911","ddotseq;":"\u2a77","deg;":"\u00b0",deg:"\u00b0","Del;":"\u2207","Delta;":"\u0394","delta;":"\u03b4","demptyv;":"\u29b1","dfisht;":"\u297f","Dfr;":"\ud835\udd07","dfr;":"\ud835\udd21","dHar;":"\u2965","dharl;":"\u21c3","dharr;":"\u21c2","DiacriticalAcute;":"\u00b4","DiacriticalDot;":"\u02d9","DiacriticalDoubleAcute;":"\u02dd","DiacriticalGrave;":"`","DiacriticalTilde;":"\u02dc","diam;":"\u22c4","diamond;":"\u22c4","Diamond;":"\u22c4","diamondsuit;":"\u2666","diams;":"\u2666","die;":"\u00a8","DifferentialD;":"\u2146","digamma;":"\u03dd","disin;":"\u22f2","div;":"\u00f7","divide;":"\u00f7",divide:"\u00f7","divideontimes;":"\u22c7","divonx;":"\u22c7","DJcy;":"\u0402","djcy;":"\u0452","dlcorn;":"\u231e","dlcrop;":"\u230d","dollar;":"$","Dopf;":"\ud835\udd3b","dopf;":"\ud835\udd55","Dot;":"\u00a8","dot;":"\u02d9","DotDot;":"\u20dc","doteq;":"\u2250","doteqdot;":"\u2251","DotEqual;":"\u2250","dotminus;":"\u2238","dotplus;":"\u2214","dotsquare;":"\u22a1","doublebarwedge;":"\u2306","DoubleContourIntegral;":"\u222f","DoubleDot;":"\u00a8","DoubleDownArrow;":"\u21d3","DoubleLeftArrow;":"\u21d0","DoubleLeftRightArrow;":"\u21d4","DoubleLeftTee;":"\u2ae4","DoubleLongLeftArrow;":"\u27f8","DoubleLongLeftRightArrow;":"\u27fa","DoubleLongRightArrow;":"\u27f9","DoubleRightArrow;":"\u21d2","DoubleRightTee;":"\u22a8","DoubleUpArrow;":"\u21d1","DoubleUpDownArrow;":"\u21d5","DoubleVerticalBar;":"\u2225","DownArrowBar;":"\u2913","downarrow;":"\u2193","DownArrow;":"\u2193","Downarrow;":"\u21d3","DownArrowUpArrow;":"\u21f5","DownBreve;":"\u0311","downdownarrows;":"\u21ca","downharpoonleft;":"\u21c3","downharpoonright;":"\u21c2","DownLeftRightVector;":"\u2950","DownLeftTeeVector;":"\u295e","DownLeftVectorBar;":"\u2956","DownLeftVector;":"\u21bd","DownRightTeeVector;":"\u295f","DownRightVectorBar;":"\u2957","DownRightVector;":"\u21c1","DownTeeArrow;":"\u21a7","DownTee;":"\u22a4","drbkarow;":"\u2910","drcorn;":"\u231f","drcrop;":"\u230c","Dscr;":"\ud835\udc9f","dscr;":"\ud835\udcb9","DScy;":"\u0405","dscy;":"\u0455","dsol;":"\u29f6","Dstrok;":"\u0110","dstrok;":"\u0111","dtdot;":"\u22f1","dtri;":"\u25bf","dtrif;":"\u25be","duarr;":"\u21f5","duhar;":"\u296f","dwangle;":"\u29a6","DZcy;":"\u040f","dzcy;":"\u045f","dzigrarr;":"\u27ff","Eacute;":"\u00c9",Eacute:"\u00c9","eacute;":"\u00e9",eacute:"\u00e9","easter;":"\u2a6e","Ecaron;":"\u011a","ecaron;":"\u011b","Ecirc;":"\u00ca",Ecirc:"\u00ca","ecirc;":"\u00ea",ecirc:"\u00ea","ecir;":"\u2256","ecolon;":"\u2255","Ecy;":"\u042d","ecy;":"\u044d","eDDot;":"\u2a77","Edot;":"\u0116","edot;":"\u0117","eDot;":"\u2251","ee;":"\u2147","efDot;":"\u2252","Efr;":"\ud835\udd08","efr;":"\ud835\udd22","eg;":"\u2a9a","Egrave;":"\u00c8",Egrave:"\u00c8","egrave;":"\u00e8",egrave:"\u00e8","egs;":"\u2a96","egsdot;":"\u2a98","el;":"\u2a99","Element;":"\u2208","elinters;":"\u23e7","ell;":"\u2113","els;":"\u2a95","elsdot;":"\u2a97","Emacr;":"\u0112","emacr;":"\u0113","empty;":"\u2205","emptyset;":"\u2205","EmptySmallSquare;":"\u25fb","emptyv;":"\u2205","EmptyVerySmallSquare;":"\u25ab","emsp13;":"\u2004","emsp14;":"\u2005","emsp;":"\u2003","ENG;":"\u014a","eng;":"\u014b","ensp;":"\u2002","Eogon;":"\u0118","eogon;":"\u0119","Eopf;":"\ud835\udd3c","eopf;":"\ud835\udd56","epar;":"\u22d5","eparsl;":"\u29e3","eplus;":"\u2a71","epsi;":"\u03b5","Epsilon;":"\u0395","epsilon;":"\u03b5","epsiv;":"\u03f5","eqcirc;":"\u2256","eqcolon;":"\u2255","eqsim;":"\u2242","eqslantgtr;":"\u2a96","eqslantless;":"\u2a95","Equal;":"\u2a75","equals;":"=","EqualTilde;":"\u2242","equest;":"\u225f","Equilibrium;":"\u21cc","equiv;":"\u2261","equivDD;":"\u2a78","eqvparsl;":"\u29e5","erarr;":"\u2971","erDot;":"\u2253","escr;":"\u212f","Escr;":"\u2130","esdot;":"\u2250","Esim;":"\u2a73","esim;":"\u2242","Eta;":"\u0397","eta;":"\u03b7","ETH;":"\u00d0",ETH:"\u00d0","eth;":"\u00f0",eth:"\u00f0","Euml;":"\u00cb",Euml:"\u00cb","euml;":"\u00eb",euml:"\u00eb","euro;":"\u20ac","excl;":"!","exist;":"\u2203","Exists;":"\u2203","expectation;":"\u2130","exponentiale;":"\u2147","ExponentialE;":"\u2147","fallingdotseq;":"\u2252","Fcy;":"\u0424","fcy;":"\u0444","female;":"\u2640","ffilig;":"\ufb03","fflig;":"\ufb00","ffllig;":"\ufb04","Ffr;":"\ud835\udd09","ffr;":"\ud835\udd23","filig;":"\ufb01","FilledSmallSquare;":"\u25fc","FilledVerySmallSquare;":"\u25aa","fjlig;":"fj","flat;":"\u266d","fllig;":"\ufb02","fltns;":"\u25b1","fnof;":"\u0192","Fopf;":"\ud835\udd3d","fopf;":"\ud835\udd57","forall;":"\u2200","ForAll;":"\u2200","fork;":"\u22d4","forkv;":"\u2ad9","Fouriertrf;":"\u2131","fpartint;":"\u2a0d","frac12;":"\u00bd",frac12:"\u00bd","frac13;":"\u2153","frac14;":"\u00bc",frac14:"\u00bc","frac15;":"\u2155","frac16;":"\u2159","frac18;":"\u215b","frac23;":"\u2154","frac25;":"\u2156","frac34;":"\u00be",frac34:"\u00be","frac35;":"\u2157","frac38;":"\u215c","frac45;":"\u2158","frac56;":"\u215a","frac58;":"\u215d","frac78;":"\u215e","frasl;":"\u2044","frown;":"\u2322","fscr;":"\ud835\udcbb","Fscr;":"\u2131","gacute;":"\u01f5","Gamma;":"\u0393","gamma;":"\u03b3","Gammad;":"\u03dc","gammad;":"\u03dd","gap;":"\u2a86","Gbreve;":"\u011e","gbreve;":"\u011f","Gcedil;":"\u0122","Gcirc;":"\u011c","gcirc;":"\u011d","Gcy;":"\u0413","gcy;":"\u0433","Gdot;":"\u0120","gdot;":"\u0121","ge;":"\u2265","gE;":"\u2267","gEl;":"\u2a8c","gel;":"\u22db","geq;":"\u2265","geqq;":"\u2267","geqslant;":"\u2a7e","gescc;":"\u2aa9","ges;":"\u2a7e","gesdot;":"\u2a80","gesdoto;":"\u2a82","gesdotol;":"\u2a84","gesl;":"\u22db\ufe00","gesles;":"\u2a94","Gfr;":"\ud835\udd0a","gfr;":"\ud835\udd24","gg;":"\u226b","Gg;":"\u22d9","ggg;":"\u22d9","gimel;":"\u2137","GJcy;":"\u0403","gjcy;":"\u0453","gla;":"\u2aa5","gl;":"\u2277","glE;":"\u2a92","glj;":"\u2aa4","gnap;":"\u2a8a","gnapprox;":"\u2a8a","gne;":"\u2a88","gnE;":"\u2269","gneq;":"\u2a88","gneqq;":"\u2269","gnsim;":"\u22e7","Gopf;":"\ud835\udd3e","gopf;":"\ud835\udd58","grave;":"`","GreaterEqual;":"\u2265","GreaterEqualLess;":"\u22db","GreaterFullEqual;":"\u2267","GreaterGreater;":"\u2aa2","GreaterLess;":"\u2277","GreaterSlantEqual;":"\u2a7e","GreaterTilde;":"\u2273","Gscr;":"\ud835\udca2","gscr;":"\u210a","gsim;":"\u2273","gsime;":"\u2a8e","gsiml;":"\u2a90","gtcc;":"\u2aa7","gtcir;":"\u2a7a","gt;":">",gt:">","GT;":">",GT:">","Gt;":"\u226b","gtdot;":"\u22d7","gtlPar;":"\u2995","gtquest;":"\u2a7c","gtrapprox;":"\u2a86","gtrarr;":"\u2978","gtrdot;":"\u22d7","gtreqless;":"\u22db","gtreqqless;":"\u2a8c","gtrless;":"\u2277","gtrsim;":"\u2273","gvertneqq;":"\u2269\ufe00","gvnE;":"\u2269\ufe00","Hacek;":"\u02c7","hairsp;":"\u200a","half;":"\u00bd","hamilt;":"\u210b","HARDcy;":"\u042a","hardcy;":"\u044a","harrcir;":"\u2948","harr;":"\u2194","hArr;":"\u21d4","harrw;":"\u21ad","Hat;":"^","hbar;":"\u210f","Hcirc;":"\u0124","hcirc;":"\u0125","hearts;":"\u2665","heartsuit;":"\u2665","hellip;":"\u2026","hercon;":"\u22b9","hfr;":"\ud835\udd25","Hfr;":"\u210c","HilbertSpace;":"\u210b","hksearow;":"\u2925","hkswarow;":"\u2926","hoarr;":"\u21ff","homtht;":"\u223b","hookleftarrow;":"\u21a9","hookrightarrow;":"\u21aa","hopf;":"\ud835\udd59","Hopf;":"\u210d","horbar;":"\u2015","HorizontalLine;":"\u2500","hscr;":"\ud835\udcbd","Hscr;":"\u210b","hslash;":"\u210f","Hstrok;":"\u0126","hstrok;":"\u0127","HumpDownHump;":"\u224e","HumpEqual;":"\u224f","hybull;":"\u2043","hyphen;":"\u2010","Iacute;":"\u00cd",Iacute:"\u00cd","iacute;":"\u00ed",iacute:"\u00ed","ic;":"\u2063","Icirc;":"\u00ce",Icirc:"\u00ce","icirc;":"\u00ee",icirc:"\u00ee","Icy;":"\u0418","icy;":"\u0438","Idot;":"\u0130","IEcy;":"\u0415","iecy;":"\u0435","iexcl;":"\u00a1",iexcl:"\u00a1","iff;":"\u21d4","ifr;":"\ud835\udd26","Ifr;":"\u2111","Igrave;":"\u00cc",Igrave:"\u00cc","igrave;":"\u00ec",igrave:"\u00ec","ii;":"\u2148","iiiint;":"\u2a0c","iiint;":"\u222d","iinfin;":"\u29dc","iiota;":"\u2129","IJlig;":"\u0132","ijlig;":"\u0133","Imacr;":"\u012a","imacr;":"\u012b","image;":"\u2111","ImaginaryI;":"\u2148","imagline;":"\u2110","imagpart;":"\u2111","imath;":"\u0131","Im;":"\u2111","imof;":"\u22b7","imped;":"\u01b5","Implies;":"\u21d2","incare;":"\u2105","in;":"\u2208","infin;":"\u221e","infintie;":"\u29dd","inodot;":"\u0131","intcal;":"\u22ba","int;":"\u222b","Int;":"\u222c","integers;":"\u2124","Integral;":"\u222b","intercal;":"\u22ba","Intersection;":"\u22c2","intlarhk;":"\u2a17","intprod;":"\u2a3c","InvisibleComma;":"\u2063","InvisibleTimes;":"\u2062","IOcy;":"\u0401","iocy;":"\u0451","Iogon;":"\u012e","iogon;":"\u012f","Iopf;":"\ud835\udd40","iopf;":"\ud835\udd5a","Iota;":"\u0399","iota;":"\u03b9","iprod;":"\u2a3c","iquest;":"\u00bf",iquest:"\u00bf","iscr;":"\ud835\udcbe","Iscr;":"\u2110","isin;":"\u2208","isindot;":"\u22f5","isinE;":"\u22f9","isins;":"\u22f4","isinsv;":"\u22f3","isinv;":"\u2208","it;":"\u2062","Itilde;":"\u0128","itilde;":"\u0129","Iukcy;":"\u0406","iukcy;":"\u0456","Iuml;":"\u00cf",Iuml:"\u00cf","iuml;":"\u00ef",iuml:"\u00ef","Jcirc;":"\u0134","jcirc;":"\u0135","Jcy;":"\u0419","jcy;":"\u0439","Jfr;":"\ud835\udd0d","jfr;":"\ud835\udd27","jmath;":"\u0237","Jopf;":"\ud835\udd41","jopf;":"\ud835\udd5b","Jscr;":"\ud835\udca5","jscr;":"\ud835\udcbf","Jsercy;":"\u0408","jsercy;":"\u0458","Jukcy;":"\u0404","jukcy;":"\u0454","Kappa;":"\u039a","kappa;":"\u03ba","kappav;":"\u03f0","Kcedil;":"\u0136","kcedil;":"\u0137","Kcy;":"\u041a","kcy;":"\u043a","Kfr;":"\ud835\udd0e","kfr;":"\ud835\udd28","kgreen;":"\u0138","KHcy;":"\u0425","khcy;":"\u0445","KJcy;":"\u040c","kjcy;":"\u045c","Kopf;":"\ud835\udd42","kopf;":"\ud835\udd5c","Kscr;":"\ud835\udca6","kscr;":"\ud835\udcc0","lAarr;":"\u21da","Lacute;":"\u0139","lacute;":"\u013a","laemptyv;":"\u29b4","lagran;":"\u2112","Lambda;":"\u039b","lambda;":"\u03bb","lang;":"\u27e8","Lang;":"\u27ea","langd;":"\u2991","langle;":"\u27e8","lap;":"\u2a85","Laplacetrf;":"\u2112","laquo;":"\u00ab",laquo:"\u00ab","larrb;":"\u21e4","larrbfs;":"\u291f","larr;":"\u2190","Larr;":"\u219e","lArr;":"\u21d0","larrfs;":"\u291d","larrhk;":"\u21a9","larrlp;":"\u21ab","larrpl;":"\u2939","larrsim;":"\u2973","larrtl;":"\u21a2","latail;":"\u2919","lAtail;":"\u291b","lat;":"\u2aab","late;":"\u2aad","lates;":"\u2aad\ufe00","lbarr;":"\u290c","lBarr;":"\u290e","lbbrk;":"\u2772","lbrace;":"{","lbrack;":"[","lbrke;":"\u298b","lbrksld;":"\u298f","lbrkslu;":"\u298d","Lcaron;":"\u013d","lcaron;":"\u013e","Lcedil;":"\u013b","lcedil;":"\u013c","lceil;":"\u2308","lcub;":"{","Lcy;":"\u041b","lcy;":"\u043b","ldca;":"\u2936","ldquo;":"\u201c","ldquor;":"\u201e","ldrdhar;":"\u2967","ldrushar;":"\u294b","ldsh;":"\u21b2","le;":"\u2264","lE;":"\u2266","LeftAngleBracket;":"\u27e8","LeftArrowBar;":"\u21e4","leftarrow;":"\u2190","LeftArrow;":"\u2190","Leftarrow;":"\u21d0","LeftArrowRightArrow;":"\u21c6","leftarrowtail;":"\u21a2","LeftCeiling;":"\u2308","LeftDoubleBracket;":"\u27e6","LeftDownTeeVector;":"\u2961","LeftDownVectorBar;":"\u2959","LeftDownVector;":"\u21c3","LeftFloor;":"\u230a","leftharpoondown;":"\u21bd","leftharpoonup;":"\u21bc","leftleftarrows;":"\u21c7","leftrightarrow;":"\u2194","LeftRightArrow;":"\u2194","Leftrightarrow;":"\u21d4","leftrightarrows;":"\u21c6","leftrightharpoons;":"\u21cb","leftrightsquigarrow;":"\u21ad","LeftRightVector;":"\u294e","LeftTeeArrow;":"\u21a4","LeftTee;":"\u22a3","LeftTeeVector;":"\u295a","leftthreetimes;":"\u22cb","LeftTriangleBar;":"\u29cf","LeftTriangle;":"\u22b2","LeftTriangleEqual;":"\u22b4","LeftUpDownVector;":"\u2951","LeftUpTeeVector;":"\u2960","LeftUpVectorBar;":"\u2958","LeftUpVector;":"\u21bf","LeftVectorBar;":"\u2952","LeftVector;":"\u21bc","lEg;":"\u2a8b","leg;":"\u22da","leq;":"\u2264","leqq;":"\u2266","leqslant;":"\u2a7d","lescc;":"\u2aa8","les;":"\u2a7d","lesdot;":"\u2a7f","lesdoto;":"\u2a81","lesdotor;":"\u2a83","lesg;":"\u22da\ufe00","lesges;":"\u2a93","lessapprox;":"\u2a85","lessdot;":"\u22d6","lesseqgtr;":"\u22da","lesseqqgtr;":"\u2a8b","LessEqualGreater;":"\u22da","LessFullEqual;":"\u2266","LessGreater;":"\u2276","lessgtr;":"\u2276","LessLess;":"\u2aa1","lesssim;":"\u2272","LessSlantEqual;":"\u2a7d","LessTilde;":"\u2272","lfisht;":"\u297c","lfloor;":"\u230a","Lfr;":"\ud835\udd0f","lfr;":"\ud835\udd29","lg;":"\u2276","lgE;":"\u2a91","lHar;":"\u2962","lhard;":"\u21bd","lharu;":"\u21bc","lharul;":"\u296a","lhblk;":"\u2584","LJcy;":"\u0409","ljcy;":"\u0459","llarr;":"\u21c7","ll;":"\u226a","Ll;":"\u22d8","llcorner;":"\u231e","Lleftarrow;":"\u21da","llhard;":"\u296b","lltri;":"\u25fa","Lmidot;":"\u013f","lmidot;":"\u0140","lmoustache;":"\u23b0","lmoust;":"\u23b0","lnap;":"\u2a89","lnapprox;":"\u2a89","lne;":"\u2a87","lnE;":"\u2268","lneq;":"\u2a87","lneqq;":"\u2268","lnsim;":"\u22e6","loang;":"\u27ec","loarr;":"\u21fd","lobrk;":"\u27e6","longleftarrow;":"\u27f5","LongLeftArrow;":"\u27f5","Longleftarrow;":"\u27f8","longleftrightarrow;":"\u27f7","LongLeftRightArrow;":"\u27f7","Longleftrightarrow;":"\u27fa","longmapsto;":"\u27fc","longrightarrow;":"\u27f6","LongRightArrow;":"\u27f6","Longrightarrow;":"\u27f9","looparrowleft;":"\u21ab","looparrowright;":"\u21ac","lopar;":"\u2985","Lopf;":"\ud835\udd43","lopf;":"\ud835\udd5d","loplus;":"\u2a2d","lotimes;":"\u2a34","lowast;":"\u2217","lowbar;":"_","LowerLeftArrow;":"\u2199","LowerRightArrow;":"\u2198","loz;":"\u25ca","lozenge;":"\u25ca","lozf;":"\u29eb","lpar;":"(","lparlt;":"\u2993","lrarr;":"\u21c6","lrcorner;":"\u231f","lrhar;":"\u21cb","lrhard;":"\u296d","lrm;":"\u200e","lrtri;":"\u22bf","lsaquo;":"\u2039","lscr;":"\ud835\udcc1","Lscr;":"\u2112","lsh;":"\u21b0","Lsh;":"\u21b0","lsim;":"\u2272","lsime;":"\u2a8d","lsimg;":"\u2a8f","lsqb;":"[","lsquo;":"\u2018","lsquor;":"\u201a","Lstrok;":"\u0141","lstrok;":"\u0142","ltcc;":"\u2aa6","ltcir;":"\u2a79","lt;":"<",lt:"<","LT;":"<",LT:"<","Lt;":"\u226a","ltdot;":"\u22d6","lthree;":"\u22cb","ltimes;":"\u22c9","ltlarr;":"\u2976","ltquest;":"\u2a7b","ltri;":"\u25c3","ltrie;":"\u22b4","ltrif;":"\u25c2","ltrPar;":"\u2996","lurdshar;":"\u294a","luruhar;":"\u2966","lvertneqq;":"\u2268\ufe00","lvnE;":"\u2268\ufe00","macr;":"\u00af",macr:"\u00af","male;":"\u2642","malt;":"\u2720","maltese;":"\u2720","Map;":"\u2905","map;":"\u21a6","mapsto;":"\u21a6","mapstodown;":"\u21a7","mapstoleft;":"\u21a4","mapstoup;":"\u21a5","marker;":"\u25ae","mcomma;":"\u2a29","Mcy;":"\u041c","mcy;":"\u043c","mdash;":"\u2014","mDDot;":"\u223a","measuredangle;":"\u2221","MediumSpace;":"\u205f","Mellintrf;":"\u2133","Mfr;":"\ud835\udd10","mfr;":"\ud835\udd2a","mho;":"\u2127","micro;":"\u00b5",micro:"\u00b5","midast;":"*","midcir;":"\u2af0","mid;":"\u2223","middot;":"\u00b7",middot:"\u00b7","minusb;":"\u229f","minus;":"\u2212","minusd;":"\u2238","minusdu;":"\u2a2a","MinusPlus;":"\u2213","mlcp;":"\u2adb","mldr;":"\u2026","mnplus;":"\u2213","models;":"\u22a7","Mopf;":"\ud835\udd44","mopf;":"\ud835\udd5e","mp;":"\u2213","mscr;":"\ud835\udcc2","Mscr;":"\u2133","mstpos;":"\u223e","Mu;":"\u039c","mu;":"\u03bc","multimap;":"\u22b8","mumap;":"\u22b8","nabla;":"\u2207","Nacute;":"\u0143","nacute;":"\u0144","nang;":"\u2220\u20d2","nap;":"\u2249","napE;":"\u2a70\u0338","napid;":"\u224b\u0338","napos;":"\u0149","napprox;":"\u2249","natural;":"\u266e","naturals;":"\u2115","natur;":"\u266e","nbsp;":"\u00a0",nbsp:"\u00a0","nbump;":"\u224e\u0338","nbumpe;":"\u224f\u0338","ncap;":"\u2a43","Ncaron;":"\u0147","ncaron;":"\u0148","Ncedil;":"\u0145","ncedil;":"\u0146","ncong;":"\u2247","ncongdot;":"\u2a6d\u0338","ncup;":"\u2a42","Ncy;":"\u041d","ncy;":"\u043d","ndash;":"\u2013","nearhk;":"\u2924","nearr;":"\u2197","neArr;":"\u21d7","nearrow;":"\u2197","ne;":"\u2260","nedot;":"\u2250\u0338","NegativeMediumSpace;":"\u200b","NegativeThickSpace;":"\u200b","NegativeThinSpace;":"\u200b","NegativeVeryThinSpace;":"\u200b","nequiv;":"\u2262","nesear;":"\u2928","nesim;":"\u2242\u0338","NestedGreaterGreater;":"\u226b","NestedLessLess;":"\u226a","NewLine;":"\n","nexist;":"\u2204","nexists;":"\u2204","Nfr;":"\ud835\udd11","nfr;":"\ud835\udd2b","ngE;":"\u2267\u0338","nge;":"\u2271","ngeq;":"\u2271","ngeqq;":"\u2267\u0338","ngeqslant;":"\u2a7e\u0338","nges;":"\u2a7e\u0338","nGg;":"\u22d9\u0338","ngsim;":"\u2275","nGt;":"\u226b\u20d2","ngt;":"\u226f","ngtr;":"\u226f","nGtv;":"\u226b\u0338","nharr;":"\u21ae","nhArr;":"\u21ce","nhpar;":"\u2af2","ni;":"\u220b","nis;":"\u22fc","nisd;":"\u22fa","niv;":"\u220b","NJcy;":"\u040a","njcy;":"\u045a","nlarr;":"\u219a","nlArr;":"\u21cd","nldr;":"\u2025","nlE;":"\u2266\u0338","nle;":"\u2270","nleftarrow;":"\u219a","nLeftarrow;":"\u21cd","nleftrightarrow;":"\u21ae","nLeftrightarrow;":"\u21ce","nleq;":"\u2270","nleqq;":"\u2266\u0338","nleqslant;":"\u2a7d\u0338","nles;":"\u2a7d\u0338","nless;":"\u226e","nLl;":"\u22d8\u0338","nlsim;":"\u2274","nLt;":"\u226a\u20d2","nlt;":"\u226e","nltri;":"\u22ea","nltrie;":"\u22ec","nLtv;":"\u226a\u0338","nmid;":"\u2224","NoBreak;":"\u2060","NonBreakingSpace;":"\u00a0","nopf;":"\ud835\udd5f","Nopf;":"\u2115","Not;":"\u2aec","not;":"\u00ac",not:"\u00ac","NotCongruent;":"\u2262","NotCupCap;":"\u226d","NotDoubleVerticalBar;":"\u2226","NotElement;":"\u2209","NotEqual;":"\u2260","NotEqualTilde;":"\u2242\u0338","NotExists;":"\u2204","NotGreater;":"\u226f","NotGreaterEqual;":"\u2271","NotGreaterFullEqual;":"\u2267\u0338","NotGreaterGreater;":"\u226b\u0338","NotGreaterLess;":"\u2279","NotGreaterSlantEqual;":"\u2a7e\u0338","NotGreaterTilde;":"\u2275","NotHumpDownHump;":"\u224e\u0338","NotHumpEqual;":"\u224f\u0338","notin;":"\u2209","notindot;":"\u22f5\u0338","notinE;":"\u22f9\u0338","notinva;":"\u2209","notinvb;":"\u22f7","notinvc;":"\u22f6","NotLeftTriangleBar;":"\u29cf\u0338","NotLeftTriangle;":"\u22ea","NotLeftTriangleEqual;":"\u22ec","NotLess;":"\u226e","NotLessEqual;":"\u2270","NotLessGreater;":"\u2278","NotLessLess;":"\u226a\u0338","NotLessSlantEqual;":"\u2a7d\u0338","NotLessTilde;":"\u2274","NotNestedGreaterGreater;":"\u2aa2\u0338","NotNestedLessLess;":"\u2aa1\u0338","notni;":"\u220c","notniva;":"\u220c","notnivb;":"\u22fe","notnivc;":"\u22fd","NotPrecedes;":"\u2280","NotPrecedesEqual;":"\u2aaf\u0338","NotPrecedesSlantEqual;":"\u22e0","NotReverseElement;":"\u220c","NotRightTriangleBar;":"\u29d0\u0338","NotRightTriangle;":"\u22eb","NotRightTriangleEqual;":"\u22ed","NotSquareSubset;":"\u228f\u0338","NotSquareSubsetEqual;":"\u22e2","NotSquareSuperset;":"\u2290\u0338","NotSquareSupersetEqual;":"\u22e3","NotSubset;":"\u2282\u20d2","NotSubsetEqual;":"\u2288","NotSucceeds;":"\u2281","NotSucceedsEqual;":"\u2ab0\u0338","NotSucceedsSlantEqual;":"\u22e1","NotSucceedsTilde;":"\u227f\u0338","NotSuperset;":"\u2283\u20d2","NotSupersetEqual;":"\u2289","NotTilde;":"\u2241","NotTildeEqual;":"\u2244","NotTildeFullEqual;":"\u2247","NotTildeTilde;":"\u2249","NotVerticalBar;":"\u2224","nparallel;":"\u2226","npar;":"\u2226","nparsl;":"\u2afd\u20e5","npart;":"\u2202\u0338","npolint;":"\u2a14","npr;":"\u2280","nprcue;":"\u22e0","nprec;":"\u2280","npreceq;":"\u2aaf\u0338","npre;":"\u2aaf\u0338","nrarrc;":"\u2933\u0338","nrarr;":"\u219b","nrArr;":"\u21cf","nrarrw;":"\u219d\u0338","nrightarrow;":"\u219b","nRightarrow;":"\u21cf","nrtri;":"\u22eb","nrtrie;":"\u22ed","nsc;":"\u2281","nsccue;":"\u22e1","nsce;":"\u2ab0\u0338","Nscr;":"\ud835\udca9","nscr;":"\ud835\udcc3","nshortmid;":"\u2224","nshortparallel;":"\u2226","nsim;":"\u2241","nsime;":"\u2244","nsimeq;":"\u2244","nsmid;":"\u2224","nspar;":"\u2226","nsqsube;":"\u22e2","nsqsupe;":"\u22e3","nsub;":"\u2284","nsubE;":"\u2ac5\u0338","nsube;":"\u2288","nsubset;":"\u2282\u20d2","nsubseteq;":"\u2288","nsubseteqq;":"\u2ac5\u0338","nsucc;":"\u2281","nsucceq;":"\u2ab0\u0338","nsup;":"\u2285","nsupE;":"\u2ac6\u0338","nsupe;":"\u2289","nsupset;":"\u2283\u20d2","nsupseteq;":"\u2289","nsupseteqq;":"\u2ac6\u0338","ntgl;":"\u2279","Ntilde;":"\u00d1",Ntilde:"\u00d1","ntilde;":"\u00f1",ntilde:"\u00f1","ntlg;":"\u2278","ntriangleleft;":"\u22ea","ntrianglelefteq;":"\u22ec","ntriangleright;":"\u22eb","ntrianglerighteq;":"\u22ed","Nu;":"\u039d","nu;":"\u03bd","num;":"#","numero;":"\u2116","numsp;":"\u2007","nvap;":"\u224d\u20d2","nvdash;":"\u22ac","nvDash;":"\u22ad","nVdash;":"\u22ae","nVDash;":"\u22af","nvge;":"\u2265\u20d2","nvgt;":">\u20d2","nvHarr;":"\u2904","nvinfin;":"\u29de","nvlArr;":"\u2902","nvle;":"\u2264\u20d2","nvlt;":"<\u20d2","nvltrie;":"\u22b4\u20d2","nvrArr;":"\u2903","nvrtrie;":"\u22b5\u20d2","nvsim;":"\u223c\u20d2","nwarhk;":"\u2923","nwarr;":"\u2196","nwArr;":"\u21d6","nwarrow;":"\u2196","nwnear;":"\u2927","Oacute;":"\u00d3",Oacute:"\u00d3","oacute;":"\u00f3",oacute:"\u00f3","oast;":"\u229b","Ocirc;":"\u00d4",Ocirc:"\u00d4","ocirc;":"\u00f4",ocirc:"\u00f4","ocir;":"\u229a","Ocy;":"\u041e","ocy;":"\u043e","odash;":"\u229d","Odblac;":"\u0150","odblac;":"\u0151","odiv;":"\u2a38","odot;":"\u2299","odsold;":"\u29bc","OElig;":"\u0152","oelig;":"\u0153","ofcir;":"\u29bf","Ofr;":"\ud835\udd12","ofr;":"\ud835\udd2c","ogon;":"\u02db","Ograve;":"\u00d2",Ograve:"\u00d2","ograve;":"\u00f2",ograve:"\u00f2","ogt;":"\u29c1","ohbar;":"\u29b5","ohm;":"\u03a9","oint;":"\u222e","olarr;":"\u21ba","olcir;":"\u29be","olcross;":"\u29bb","oline;":"\u203e","olt;":"\u29c0","Omacr;":"\u014c","omacr;":"\u014d","Omega;":"\u03a9","omega;":"\u03c9","Omicron;":"\u039f","omicron;":"\u03bf","omid;":"\u29b6","ominus;":"\u2296","Oopf;":"\ud835\udd46","oopf;":"\ud835\udd60","opar;":"\u29b7","OpenCurlyDoubleQuote;":"\u201c","OpenCurlyQuote;":"\u2018","operp;":"\u29b9","oplus;":"\u2295","orarr;":"\u21bb","Or;":"\u2a54","or;":"\u2228","ord;":"\u2a5d","order;":"\u2134","orderof;":"\u2134","ordf;":"\u00aa",ordf:"\u00aa","ordm;":"\u00ba",ordm:"\u00ba","origof;":"\u22b6","oror;":"\u2a56","orslope;":"\u2a57","orv;":"\u2a5b","oS;":"\u24c8","Oscr;":"\ud835\udcaa","oscr;":"\u2134","Oslash;":"\u00d8",Oslash:"\u00d8","oslash;":"\u00f8",oslash:"\u00f8","osol;":"\u2298","Otilde;":"\u00d5",Otilde:"\u00d5","otilde;":"\u00f5",otilde:"\u00f5","otimesas;":"\u2a36","Otimes;":"\u2a37","otimes;":"\u2297","Ouml;":"\u00d6",Ouml:"\u00d6","ouml;":"\u00f6",ouml:"\u00f6","ovbar;":"\u233d","OverBar;":"\u203e","OverBrace;":"\u23de","OverBracket;":"\u23b4","OverParenthesis;":"\u23dc","para;":"\u00b6",para:"\u00b6","parallel;":"\u2225","par;":"\u2225","parsim;":"\u2af3","parsl;":"\u2afd","part;":"\u2202","PartialD;":"\u2202","Pcy;":"\u041f","pcy;":"\u043f","percnt;":"%","period;":".","permil;":"\u2030","perp;":"\u22a5","pertenk;":"\u2031","Pfr;":"\ud835\udd13","pfr;":"\ud835\udd2d","Phi;":"\u03a6","phi;":"\u03c6","phiv;":"\u03d5","phmmat;":"\u2133","phone;":"\u260e","Pi;":"\u03a0","pi;":"\u03c0","pitchfork;":"\u22d4","piv;":"\u03d6","planck;":"\u210f","planckh;":"\u210e","plankv;":"\u210f","plusacir;":"\u2a23","plusb;":"\u229e","pluscir;":"\u2a22","plus;":"+","plusdo;":"\u2214","plusdu;":"\u2a25","pluse;":"\u2a72","PlusMinus;":"\u00b1","plusmn;":"\u00b1",plusmn:"\u00b1","plussim;":"\u2a26","plustwo;":"\u2a27","pm;":"\u00b1","Poincareplane;":"\u210c","pointint;":"\u2a15","popf;":"\ud835\udd61","Popf;":"\u2119","pound;":"\u00a3",pound:"\u00a3","prap;":"\u2ab7","Pr;":"\u2abb","pr;":"\u227a","prcue;":"\u227c","precapprox;":"\u2ab7","prec;":"\u227a","preccurlyeq;":"\u227c","Precedes;":"\u227a","PrecedesEqual;":"\u2aaf","PrecedesSlantEqual;":"\u227c","PrecedesTilde;":"\u227e","preceq;":"\u2aaf","precnapprox;":"\u2ab9","precneqq;":"\u2ab5","precnsim;":"\u22e8","pre;":"\u2aaf","prE;":"\u2ab3","precsim;":"\u227e","prime;":"\u2032","Prime;":"\u2033","primes;":"\u2119","prnap;":"\u2ab9","prnE;":"\u2ab5","prnsim;":"\u22e8","prod;":"\u220f","Product;":"\u220f","profalar;":"\u232e","profline;":"\u2312","profsurf;":"\u2313","prop;":"\u221d","Proportional;":"\u221d","Proportion;":"\u2237","propto;":"\u221d","prsim;":"\u227e","prurel;":"\u22b0","Pscr;":"\ud835\udcab","pscr;":"\ud835\udcc5","Psi;":"\u03a8","psi;":"\u03c8","puncsp;":"\u2008","Qfr;":"\ud835\udd14","qfr;":"\ud835\udd2e","qint;":"\u2a0c","qopf;":"\ud835\udd62","Qopf;":"\u211a","qprime;":"\u2057","Qscr;":"\ud835\udcac","qscr;":"\ud835\udcc6","quaternions;":"\u210d","quatint;":"\u2a16","quest;":"?","questeq;":"\u225f","quot;":'"',quot:'"',"QUOT;":'"',QUOT:'"',"rAarr;":"\u21db","race;":"\u223d\u0331","Racute;":"\u0154","racute;":"\u0155","radic;":"\u221a","raemptyv;":"\u29b3","rang;":"\u27e9","Rang;":"\u27eb","rangd;":"\u2992","range;":"\u29a5","rangle;":"\u27e9","raquo;":"\u00bb",raquo:"\u00bb","rarrap;":"\u2975","rarrb;":"\u21e5","rarrbfs;":"\u2920","rarrc;":"\u2933","rarr;":"\u2192","Rarr;":"\u21a0","rArr;":"\u21d2","rarrfs;":"\u291e","rarrhk;":"\u21aa","rarrlp;":"\u21ac","rarrpl;":"\u2945","rarrsim;":"\u2974","Rarrtl;":"\u2916","rarrtl;":"\u21a3","rarrw;":"\u219d","ratail;":"\u291a","rAtail;":"\u291c","ratio;":"\u2236","rationals;":"\u211a","rbarr;":"\u290d","rBarr;":"\u290f","RBarr;":"\u2910","rbbrk;":"\u2773","rbrace;":"}","rbrack;":"]","rbrke;":"\u298c","rbrksld;":"\u298e","rbrkslu;":"\u2990","Rcaron;":"\u0158","rcaron;":"\u0159","Rcedil;":"\u0156","rcedil;":"\u0157","rceil;":"\u2309","rcub;":"}","Rcy;":"\u0420","rcy;":"\u0440","rdca;":"\u2937","rdldhar;":"\u2969","rdquo;":"\u201d","rdquor;":"\u201d","rdsh;":"\u21b3","real;":"\u211c","realine;":"\u211b","realpart;":"\u211c","reals;":"\u211d","Re;":"\u211c","rect;":"\u25ad","reg;":"\u00ae",reg:"\u00ae","REG;":"\u00ae",REG:"\u00ae","ReverseElement;":"\u220b","ReverseEquilibrium;":"\u21cb","ReverseUpEquilibrium;":"\u296f","rfisht;":"\u297d","rfloor;":"\u230b","rfr;":"\ud835\udd2f","Rfr;":"\u211c","rHar;":"\u2964","rhard;":"\u21c1","rharu;":"\u21c0","rharul;":"\u296c","Rho;":"\u03a1","rho;":"\u03c1","rhov;":"\u03f1","RightAngleBracket;":"\u27e9","RightArrowBar;":"\u21e5","rightarrow;":"\u2192","RightArrow;":"\u2192","Rightarrow;":"\u21d2","RightArrowLeftArrow;":"\u21c4","rightarrowtail;":"\u21a3","RightCeiling;":"\u2309","RightDoubleBracket;":"\u27e7","RightDownTeeVector;":"\u295d","RightDownVectorBar;":"\u2955","RightDownVector;":"\u21c2","RightFloor;":"\u230b","rightharpoondown;":"\u21c1","rightharpoonup;":"\u21c0","rightleftarrows;":"\u21c4","rightleftharpoons;":"\u21cc","rightrightarrows;":"\u21c9","rightsquigarrow;":"\u219d","RightTeeArrow;":"\u21a6","RightTee;":"\u22a2","RightTeeVector;":"\u295b","rightthreetimes;":"\u22cc","RightTriangleBar;":"\u29d0","RightTriangle;":"\u22b3","RightTriangleEqual;":"\u22b5","RightUpDownVector;":"\u294f","RightUpTeeVector;":"\u295c","RightUpVectorBar;":"\u2954","RightUpVector;":"\u21be","RightVectorBar;":"\u2953","RightVector;":"\u21c0","ring;":"\u02da","risingdotseq;":"\u2253","rlarr;":"\u21c4","rlhar;":"\u21cc","rlm;":"\u200f","rmoustache;":"\u23b1","rmoust;":"\u23b1","rnmid;":"\u2aee","roang;":"\u27ed","roarr;":"\u21fe","robrk;":"\u27e7","ropar;":"\u2986","ropf;":"\ud835\udd63","Ropf;":"\u211d","roplus;":"\u2a2e","rotimes;":"\u2a35","RoundImplies;":"\u2970","rpar;":")","rpargt;":"\u2994","rppolint;":"\u2a12","rrarr;":"\u21c9","Rrightarrow;":"\u21db","rsaquo;":"\u203a","rscr;":"\ud835\udcc7","Rscr;":"\u211b","rsh;":"\u21b1","Rsh;":"\u21b1","rsqb;":"]","rsquo;":"\u2019","rsquor;":"\u2019","rthree;":"\u22cc","rtimes;":"\u22ca","rtri;":"\u25b9","rtrie;":"\u22b5","rtrif;":"\u25b8","rtriltri;":"\u29ce","RuleDelayed;":"\u29f4","ruluhar;":"\u2968","rx;":"\u211e","Sacute;":"\u015a","sacute;":"\u015b","sbquo;":"\u201a","scap;":"\u2ab8","Scaron;":"\u0160","scaron;":"\u0161","Sc;":"\u2abc","sc;":"\u227b","sccue;":"\u227d","sce;":"\u2ab0","scE;":"\u2ab4","Scedil;":"\u015e","scedil;":"\u015f","Scirc;":"\u015c","scirc;":"\u015d","scnap;":"\u2aba","scnE;":"\u2ab6","scnsim;":"\u22e9","scpolint;":"\u2a13","scsim;":"\u227f","Scy;":"\u0421","scy;":"\u0441","sdotb;":"\u22a1","sdot;":"\u22c5","sdote;":"\u2a66","searhk;":"\u2925","searr;":"\u2198","seArr;":"\u21d8","searrow;":"\u2198","sect;":"\u00a7",sect:"\u00a7","semi;":";","seswar;":"\u2929","setminus;":"\u2216","setmn;":"\u2216","sext;":"\u2736","Sfr;":"\ud835\udd16","sfr;":"\ud835\udd30","sfrown;":"\u2322","sharp;":"\u266f","SHCHcy;":"\u0429","shchcy;":"\u0449","SHcy;":"\u0428","shcy;":"\u0448","ShortDownArrow;":"\u2193","ShortLeftArrow;":"\u2190","shortmid;":"\u2223","shortparallel;":"\u2225","ShortRightArrow;":"\u2192","ShortUpArrow;":"\u2191","shy;":"\u00ad",shy:"\u00ad","Sigma;":"\u03a3","sigma;":"\u03c3","sigmaf;":"\u03c2","sigmav;":"\u03c2","sim;":"\u223c","simdot;":"\u2a6a","sime;":"\u2243","simeq;":"\u2243","simg;":"\u2a9e","simgE;":"\u2aa0","siml;":"\u2a9d","simlE;":"\u2a9f","simne;":"\u2246","simplus;":"\u2a24","simrarr;":"\u2972","slarr;":"\u2190","SmallCircle;":"\u2218","smallsetminus;":"\u2216","smashp;":"\u2a33","smeparsl;":"\u29e4","smid;":"\u2223","smile;":"\u2323","smt;":"\u2aaa","smte;":"\u2aac","smtes;":"\u2aac\ufe00","SOFTcy;":"\u042c","softcy;":"\u044c","solbar;":"\u233f","solb;":"\u29c4","sol;":"/","Sopf;":"\ud835\udd4a","sopf;":"\ud835\udd64","spades;":"\u2660","spadesuit;":"\u2660","spar;":"\u2225","sqcap;":"\u2293","sqcaps;":"\u2293\ufe00","sqcup;":"\u2294","sqcups;":"\u2294\ufe00","Sqrt;":"\u221a","sqsub;":"\u228f","sqsube;":"\u2291","sqsubset;":"\u228f","sqsubseteq;":"\u2291","sqsup;":"\u2290","sqsupe;":"\u2292","sqsupset;":"\u2290","sqsupseteq;":"\u2292","square;":"\u25a1","Square;":"\u25a1","SquareIntersection;":"\u2293","SquareSubset;":"\u228f","SquareSubsetEqual;":"\u2291","SquareSuperset;":"\u2290","SquareSupersetEqual;":"\u2292","SquareUnion;":"\u2294","squarf;":"\u25aa","squ;":"\u25a1","squf;":"\u25aa","srarr;":"\u2192","Sscr;":"\ud835\udcae","sscr;":"\ud835\udcc8","ssetmn;":"\u2216","ssmile;":"\u2323","sstarf;":"\u22c6","Star;":"\u22c6","star;":"\u2606","starf;":"\u2605","straightepsilon;":"\u03f5","straightphi;":"\u03d5","strns;":"\u00af","sub;":"\u2282","Sub;":"\u22d0","subdot;":"\u2abd","subE;":"\u2ac5","sube;":"\u2286","subedot;":"\u2ac3","submult;":"\u2ac1","subnE;":"\u2acb","subne;":"\u228a","subplus;":"\u2abf","subrarr;":"\u2979","subset;":"\u2282","Subset;":"\u22d0","subseteq;":"\u2286","subseteqq;":"\u2ac5","SubsetEqual;":"\u2286","subsetneq;":"\u228a","subsetneqq;":"\u2acb","subsim;":"\u2ac7","subsub;":"\u2ad5","subsup;":"\u2ad3","succapprox;":"\u2ab8","succ;":"\u227b","succcurlyeq;":"\u227d","Succeeds;":"\u227b","SucceedsEqual;":"\u2ab0","SucceedsSlantEqual;":"\u227d","SucceedsTilde;":"\u227f","succeq;":"\u2ab0","succnapprox;":"\u2aba","succneqq;":"\u2ab6","succnsim;":"\u22e9","succsim;":"\u227f","SuchThat;":"\u220b","sum;":"\u2211","Sum;":"\u2211","sung;":"\u266a","sup1;":"\u00b9",sup1:"\u00b9","sup2;":"\u00b2",sup2:"\u00b2","sup3;":"\u00b3",sup3:"\u00b3","sup;":"\u2283","Sup;":"\u22d1","supdot;":"\u2abe","supdsub;":"\u2ad8","supE;":"\u2ac6","supe;":"\u2287","supedot;":"\u2ac4","Superset;":"\u2283","SupersetEqual;":"\u2287","suphsol;":"\u27c9","suphsub;":"\u2ad7","suplarr;":"\u297b","supmult;":"\u2ac2","supnE;":"\u2acc","supne;":"\u228b","supplus;":"\u2ac0","supset;":"\u2283","Supset;":"\u22d1","supseteq;":"\u2287","supseteqq;":"\u2ac6","supsetneq;":"\u228b","supsetneqq;":"\u2acc","supsim;":"\u2ac8","supsub;":"\u2ad4","supsup;":"\u2ad6","swarhk;":"\u2926","swarr;":"\u2199","swArr;":"\u21d9","swarrow;":"\u2199","swnwar;":"\u292a","szlig;":"\u00df",szlig:"\u00df","Tab;":"	","target;":"\u2316","Tau;":"\u03a4","tau;":"\u03c4","tbrk;":"\u23b4","Tcaron;":"\u0164","tcaron;":"\u0165","Tcedil;":"\u0162","tcedil;":"\u0163","Tcy;":"\u0422","tcy;":"\u0442","tdot;":"\u20db","telrec;":"\u2315","Tfr;":"\ud835\udd17","tfr;":"\ud835\udd31","there4;":"\u2234","therefore;":"\u2234","Therefore;":"\u2234","Theta;":"\u0398","theta;":"\u03b8","thetasym;":"\u03d1","thetav;":"\u03d1","thickapprox;":"\u2248","thicksim;":"\u223c","ThickSpace;":"\u205f\u200a","ThinSpace;":"\u2009","thinsp;":"\u2009","thkap;":"\u2248","thksim;":"\u223c","THORN;":"\u00de",THORN:"\u00de","thorn;":"\u00fe",thorn:"\u00fe","tilde;":"\u02dc","Tilde;":"\u223c","TildeEqual;":"\u2243","TildeFullEqual;":"\u2245","TildeTilde;":"\u2248","timesbar;":"\u2a31","timesb;":"\u22a0","times;":"\u00d7",times:"\u00d7","timesd;":"\u2a30","tint;":"\u222d","toea;":"\u2928","topbot;":"\u2336","topcir;":"\u2af1","top;":"\u22a4","Topf;":"\ud835\udd4b","topf;":"\ud835\udd65","topfork;":"\u2ada","tosa;":"\u2929","tprime;":"\u2034","trade;":"\u2122","TRADE;":"\u2122","triangle;":"\u25b5","triangledown;":"\u25bf","triangleleft;":"\u25c3","trianglelefteq;":"\u22b4","triangleq;":"\u225c","triangleright;":"\u25b9","trianglerighteq;":"\u22b5","tridot;":"\u25ec","trie;":"\u225c","triminus;":"\u2a3a","TripleDot;":"\u20db","triplus;":"\u2a39","trisb;":"\u29cd","tritime;":"\u2a3b","trpezium;":"\u23e2","Tscr;":"\ud835\udcaf","tscr;":"\ud835\udcc9","TScy;":"\u0426","tscy;":"\u0446","TSHcy;":"\u040b","tshcy;":"\u045b","Tstrok;":"\u0166","tstrok;":"\u0167","twixt;":"\u226c","twoheadleftarrow;":"\u219e","twoheadrightarrow;":"\u21a0","Uacute;":"\u00da",Uacute:"\u00da","uacute;":"\u00fa",uacute:"\u00fa","uarr;":"\u2191","Uarr;":"\u219f","uArr;":"\u21d1","Uarrocir;":"\u2949","Ubrcy;":"\u040e","ubrcy;":"\u045e","Ubreve;":"\u016c","ubreve;":"\u016d","Ucirc;":"\u00db",Ucirc:"\u00db","ucirc;":"\u00fb",ucirc:"\u00fb","Ucy;":"\u0423","ucy;":"\u0443","udarr;":"\u21c5","Udblac;":"\u0170","udblac;":"\u0171","udhar;":"\u296e","ufisht;":"\u297e","Ufr;":"\ud835\udd18","ufr;":"\ud835\udd32","Ugrave;":"\u00d9",Ugrave:"\u00d9","ugrave;":"\u00f9",ugrave:"\u00f9","uHar;":"\u2963","uharl;":"\u21bf","uharr;":"\u21be","uhblk;":"\u2580","ulcorn;":"\u231c","ulcorner;":"\u231c","ulcrop;":"\u230f","ultri;":"\u25f8","Umacr;":"\u016a","umacr;":"\u016b","uml;":"\u00a8",uml:"\u00a8","UnderBar;":"_","UnderBrace;":"\u23df","UnderBracket;":"\u23b5","UnderParenthesis;":"\u23dd","Union;":"\u22c3","UnionPlus;":"\u228e","Uogon;":"\u0172","uogon;":"\u0173","Uopf;":"\ud835\udd4c","uopf;":"\ud835\udd66","UpArrowBar;":"\u2912","uparrow;":"\u2191","UpArrow;":"\u2191","Uparrow;":"\u21d1","UpArrowDownArrow;":"\u21c5","updownarrow;":"\u2195","UpDownArrow;":"\u2195","Updownarrow;":"\u21d5","UpEquilibrium;":"\u296e","upharpoonleft;":"\u21bf","upharpoonright;":"\u21be","uplus;":"\u228e","UpperLeftArrow;":"\u2196","UpperRightArrow;":"\u2197","upsi;":"\u03c5","Upsi;":"\u03d2","upsih;":"\u03d2","Upsilon;":"\u03a5","upsilon;":"\u03c5","UpTeeArrow;":"\u21a5","UpTee;":"\u22a5","upuparrows;":"\u21c8","urcorn;":"\u231d","urcorner;":"\u231d","urcrop;":"\u230e","Uring;":"\u016e","uring;":"\u016f","urtri;":"\u25f9","Uscr;":"\ud835\udcb0","uscr;":"\ud835\udcca","utdot;":"\u22f0","Utilde;":"\u0168","utilde;":"\u0169","utri;":"\u25b5","utrif;":"\u25b4","uuarr;":"\u21c8","Uuml;":"\u00dc",Uuml:"\u00dc","uuml;":"\u00fc",uuml:"\u00fc","uwangle;":"\u29a7","vangrt;":"\u299c","varepsilon;":"\u03f5","varkappa;":"\u03f0","varnothing;":"\u2205","varphi;":"\u03d5","varpi;":"\u03d6","varpropto;":"\u221d","varr;":"\u2195","vArr;":"\u21d5","varrho;":"\u03f1","varsigma;":"\u03c2","varsubsetneq;":"\u228a\ufe00","varsubsetneqq;":"\u2acb\ufe00","varsupsetneq;":"\u228b\ufe00","varsupsetneqq;":"\u2acc\ufe00","vartheta;":"\u03d1","vartriangleleft;":"\u22b2","vartriangleright;":"\u22b3","vBar;":"\u2ae8","Vbar;":"\u2aeb","vBarv;":"\u2ae9","Vcy;":"\u0412","vcy;":"\u0432","vdash;":"\u22a2","vDash;":"\u22a8","Vdash;":"\u22a9","VDash;":"\u22ab","Vdashl;":"\u2ae6","veebar;":"\u22bb","vee;":"\u2228","Vee;":"\u22c1","veeeq;":"\u225a","vellip;":"\u22ee","verbar;":"|","Verbar;":"\u2016","vert;":"|","Vert;":"\u2016","VerticalBar;":"\u2223","VerticalLine;":"|","VerticalSeparator;":"\u2758","VerticalTilde;":"\u2240","VeryThinSpace;":"\u200a","Vfr;":"\ud835\udd19","vfr;":"\ud835\udd33","vltri;":"\u22b2","vnsub;":"\u2282\u20d2","vnsup;":"\u2283\u20d2","Vopf;":"\ud835\udd4d","vopf;":"\ud835\udd67","vprop;":"\u221d","vrtri;":"\u22b3","Vscr;":"\ud835\udcb1","vscr;":"\ud835\udccb","vsubnE;":"\u2acb\ufe00","vsubne;":"\u228a\ufe00","vsupnE;":"\u2acc\ufe00","vsupne;":"\u228b\ufe00","Vvdash;":"\u22aa","vzigzag;":"\u299a","Wcirc;":"\u0174","wcirc;":"\u0175","wedbar;":"\u2a5f","wedge;":"\u2227","Wedge;":"\u22c0","wedgeq;":"\u2259","weierp;":"\u2118","Wfr;":"\ud835\udd1a","wfr;":"\ud835\udd34","Wopf;":"\ud835\udd4e","wopf;":"\ud835\udd68","wp;":"\u2118","wr;":"\u2240","wreath;":"\u2240","Wscr;":"\ud835\udcb2","wscr;":"\ud835\udccc","xcap;":"\u22c2","xcirc;":"\u25ef","xcup;":"\u22c3","xdtri;":"\u25bd","Xfr;":"\ud835\udd1b","xfr;":"\ud835\udd35","xharr;":"\u27f7","xhArr;":"\u27fa","Xi;":"\u039e","xi;":"\u03be","xlarr;":"\u27f5","xlArr;":"\u27f8","xmap;":"\u27fc","xnis;":"\u22fb","xodot;":"\u2a00","Xopf;":"\ud835\udd4f","xopf;":"\ud835\udd69","xoplus;":"\u2a01","xotime;":"\u2a02","xrarr;":"\u27f6","xrArr;":"\u27f9","Xscr;":"\ud835\udcb3","xscr;":"\ud835\udccd","xsqcup;":"\u2a06","xuplus;":"\u2a04","xutri;":"\u25b3","xvee;":"\u22c1","xwedge;":"\u22c0","Yacute;":"\u00dd",Yacute:"\u00dd","yacute;":"\u00fd",yacute:"\u00fd","YAcy;":"\u042f","yacy;":"\u044f","Ycirc;":"\u0176","ycirc;":"\u0177","Ycy;":"\u042b","ycy;":"\u044b","yen;":"\u00a5",yen:"\u00a5","Yfr;":"\ud835\udd1c","yfr;":"\ud835\udd36","YIcy;":"\u0407","yicy;":"\u0457","Yopf;":"\ud835\udd50","yopf;":"\ud835\udd6a","Yscr;":"\ud835\udcb4","yscr;":"\ud835\udcce","YUcy;":"\u042e","yucy;":"\u044e","yuml;":"\u00ff",yuml:"\u00ff","Yuml;":"\u0178","Zacute;":"\u0179","zacute;":"\u017a","Zcaron;":"\u017d","zcaron;":"\u017e","Zcy;":"\u0417","zcy;":"\u0437","Zdot;":"\u017b","zdot;":"\u017c","zeetrf;":"\u2128","ZeroWidthSpace;":"\u200b","Zeta;":"\u0396","zeta;":"\u03b6","zfr;":"\ud835\udd37","Zfr;":"\u2128","ZHcy;":"\u0416","zhcy;":"\u0436","zigrarr;":"\u21dd","zopf;":"\ud835\udd6b","Zopf;":"\u2124","Zscr;":"\ud835\udcb5","zscr;":"\ud835\udccf","zwj;":"\u200d","zwnj;":"\u200c"}},{}],13:[function(e,t,n){function u(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&(isNaN(t)||!isFinite(t))?t.toString():r.isFunction(t)||r.isRegExp(t)?t.toString():t}function a(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function f(e){return a(JSON.stringify(e.actual,u),128)+" "+e.operator+" "+a(JSON.stringify(e.expected,u),128)}function l(e,t,n,r,i){throw new o.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function c(e,t){e||l(e,!0,t,"==",o.ok)}function h(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:!r.isObject(e)&&!r.isObject(t)?e==t:d(e,t)}function p(e){return Object.prototype.toString.call(e)=="[object Arguments]"}function d(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(p(e))return p(t)?(e=i.call(e),t=i.call(t),h(e,t)):!1;try{var n=g(e),s=g(t),o,u}catch(a){return!1}if(n.length!=s.length)return!1;n.sort(),s.sort();for(u=n.length-1;u>=0;u--)if(n[u]!=s[u])return!1;for(u=n.length-1;u>=0;u--){o=n[u];if(!h(e[o],t[o]))return!1}return!0}function v(e,t){return!e||!t?!1:Object.prototype.toString.call(t)=="[object RegExp]"?t.test(e):e instanceof t?!0:t.call({},e)===!0?!0:!1}function m(e,t,n,i){var s;r.isString(n)&&(i=n,n=null);try{t()}catch(o){s=o}i=(n&&n.name?" ("+n.name+").":".")+(i?" "+i:"."),e&&!s&&l(s,n,"Missing expected exception"+i),!e&&v(s,n)&&l(s,n,"Got unwanted exception"+i);if(e&&s&&n&&!v(s,n)||!e&&s)throw s}var r=e("util/"),i=Array.prototype.slice,s=Object.prototype.hasOwnProperty,o=t.exports=c;o.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var n=t.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,s=n.name,o=i.indexOf("\n"+s);if(o>=0){var u=i.indexOf("\n",o+1);i=i.substring(u+1)}this.stack=i}}},r.inherits(o.AssertionError,Error),o.fail=l,o.ok=c,o.equal=function(t,n,r){t!=n&&l(t,n,r,"==",o.equal)},o.notEqual=function(t,n,r){t==n&&l(t,n,r,"!=",o.notEqual)},o.deepEqual=function(t,n,r){h(t,n)||l(t,n,r,"deepEqual",o.deepEqual)},o.notDeepEqual=function(t,n,r){h(t,n)&&l(t,n,r,"notDeepEqual",o.notDeepEqual)},o.strictEqual=function(t,n,r){t!==n&&l(t,n,r,"===",o.strictEqual)},o.notStrictEqual=function(t,n,r){t===n&&l(t,n,r,"!==",o.notStrictEqual)},o.throws=function(e,t,n){m.apply(this,[!0].concat(i.call(arguments)))},o.doesNotThrow=function(e,t){m.apply(this,[!1].concat(i.call(arguments)))},o.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},{"util/":15}],14:[function(e,t,n){t.exports=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}},{}],15:[function(e,t,n){(function(t,r){function u(e,t){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),T(r.showHidden)&&(r.showHidden=!1),T(r.depth)&&(r.depth=2),T(r.colors)&&(r.colors=!1),T(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function f(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function c(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return S(i)||(i=c(e,i,r)),i}var s=h(e,t);if(s)return s;var o=Object.keys(t),u=l(o);e.showHidden&&(o=Object.getOwnPropertyNames(t));if(L(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(t);if(o.length===0){if(A(t)){var a=t.name?": "+t.name:"";return e.stylize("[Function"+a+"]","special")}if(N(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(k(t))return e.stylize(Date.prototype.toString.call(t),"date");if(L(t))return p(t)}var f="",y=!1,b=["{","}"];g(t)&&(y=!0,b=["[","]"]);if(A(t)){var w=t.name?": "+t.name:"";f=" [Function"+w+"]"}N(t)&&(f=" "+RegExp.prototype.toString.call(t)),k(t)&&(f=" "+Date.prototype.toUTCString.call(t)),L(t)&&(f=" "+p(t));if(o.length!==0||!!y&&t.length!=0){if(r<0)return N(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return y?E=d(e,t,r,u,o):E=o.map(function(n){return v(e,t,r,u,n,y)}),e.seen.pop(),m(E,f,b)}return b[0]+f+b[1]}function h(e,t){if(T(t))return e.stylize("undefined","undefined");if(S(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(E(t))return e.stylize(""+t,"number");if(y(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,i){var s=[];for(var o=0,u=t.length;o<u;++o)H(t,String(o))?s.push(v(e,t,n,r,String(o),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(v(e,t,n,r,i,!0))}),s}function v(e,t,n,r,i,s){var o,u,a;a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},a.get?a.set?u=e.stylize("[Getter/Setter]","special"):u=e.stylize("[Getter]","special"):a.set&&(u=e.stylize("[Setter]","special")),H(r,i)||(o="["+i+"]"),u||(e.seen.indexOf(a.value)<0?(b(n)?u=c(e,a.value,null):u=c(e,a.value,n-1),u.indexOf("\n")>-1&&(s?u=u.split("\n").map(function(e){return"  "+e}).join("\n").substr(2):u="\n"+u.split("\n").map(function(e){return"   "+e}).join("\n"))):u=e.stylize("[Circular]","special"));if(T(o)){if(s&&i.match(/^\d+$/))return u;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+u}function m(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(t===""?"":t+"\n ")+" "+e.join(",\n  ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function g(e){return Array.isArray(e)}function y(e){return typeof e=="boolean"}function b(e){return e===null}function w(e){return e==null}function E(e){return typeof e=="number"}function S(e){return typeof e=="string"}function x(e){return typeof e=="symbol"}function T(e){return e===void 0}function N(e){return C(e)&&M(e)==="[object RegExp]"}function C(e){return typeof e=="object"&&e!==null}function k(e){return C(e)&&M(e)==="[object Date]"}function L(e){return C(e)&&(M(e)==="[object Error]"||e instanceof Error)}function A(e){return typeof e=="function"}function O(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}function M(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),D[e.getMonth()],t].join(" ")}function H(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var i=/%[sdj%]/g;n.format=function(e){if(!S(e)){var t=[];for(var n=0;n<arguments.length;n++)t.push(u(arguments[n]));return t.join(" ")}var n=1,r=arguments,s=r.length,o=String(e).replace(i,function(e){if(e==="%%")return"%";if(n>=s)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"};default:return e}});for(var a=r[n];n<s;a=r[++n])b(a)||!C(a)?o+=" "+a:o+=" "+u(a);return o},n.deprecate=function(e,i){function o(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}if(T(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var s=!1;return o};var s={},o;n.debuglog=function(e){T(o)&&(o=t.env.NODE_DEBUG||""),e=e.toUpperCase();if(!s[e])if((new RegExp("\\b"+e+"\\b","i")).test(o)){var r=t.pid;s[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else s[e]=function(){};return s[e]},n.inspect=u,u.colors={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]},u.styles={special:"cyan",number:"yellow","boolean":"yellow","undefined":"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=g,n.isBoolean=y,n.isNull=b,n.isNullOrUndefined=w,n.isNumber=E,n.isString=S,n.isSymbol=x,n.isUndefined=T,n.isRegExp=N,n.isObject=C,n.isDate=k,n.isError=L,n.isFunction=A,n.isPrimitive=O,n.isBuffer=e("./support/isBuffer");var D=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",P(),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!C(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e}}).call(this,e("/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"./support/isBuffer":14,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}],16:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e=="function"}function s(e){return typeof e=="number"}function o(e){return typeof e=="object"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e==="error")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}return this.removeAllListeners("removeListener"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],17:[function(e,t,n){typeof Object.create=="function"?t.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],18:[function(e,t,n){function i(){}var r=t.exports={};r.nextTick=function(){var e=typeof window!="undefined"&&window.setImmediate,t=typeof window!="undefined"&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||t===null)&&e.data==="process-tick"){e.stopPropagation();if(n.length>0){var r=n.shift();r()}}},!0),function(t){n.push(t),window.postMessage("process-tick","*")}}return function(t){setTimeout(t,0)}}(),r.title="browser",r.browser=!0,r.env={},r.argv=[],r.on=i,r.once=i,r.off=i,r.emit=i,r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")}},{}],19:[function(e,t,n){t.exports=e(14)},{}],20:[function(e,t,n){t.exports=e(15)},{"./support/isBuffer":19,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}]},{},[9])(9)}),ace.define("ace/mode/html_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/html/saxparser"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./html/saxparser").SAXParser,u={"expected-doctype-but-got-start-tag":"info","expected-doctype-but-got-chars":"info","non-html-root":"info"},a=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(a,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[],r=function(){};t.contentHandler={startDocument:r,endDocument:r,startElement:r,endElement:r,characters:r},t.errorHandler={error:function(e,t,r){n.push({row:t.line,column:t.column,text:e,type:u[r]||"error"})}},this.context?t.parseFragment(e,this.context):t.parse(e),this.sender.emit("error",n)}}.call(a.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-javascript.js b/js/ace/worker-javascript.js
new file mode 100644
index 0000000..06de953
--- /dev/null
+++ b/js/ace/worker-javascript.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/javascript/jshint",["require","exports","module"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=[];for(var i=0;i<128;i++)r[i]=i===36||i>=65&&i<=90||i===95||i>=97&&i<=122;var s=[];for(var i=0;i<128;i++)s[i]=r[i]||i>=48&&i<=57;t.exports={asciiIdentifierStartTable:r,asciiIdentifierPartTable:s}},{}],2:[function(e,t,n){(function(){var e=this,r=e._,i={},s=Array.prototype,o=Object.prototype,u=Function.prototype,a=s.push,f=s.slice,l=s.concat,c=o.toString,h=o.hasOwnProperty,p=s.forEach,d=s.map,v=s.reduce,m=s.reduceRight,g=s.filter,y=s.every,b=s.some,w=s.indexOf,E=s.lastIndexOf,S=Array.isArray,x=Object.keys,T=u.bind,N=function(e){if(e instanceof N)return e;if(!(this instanceof N))return new N(e);this._wrapped=e};typeof n!="undefined"?(typeof t!="undefined"&&t.exports&&(n=t.exports=N),n._=N):e._=N,N.VERSION="1.6.0";var C=N.each=N.forEach=function(e,t,n){if(e==null)return e;if(p&&e.forEach===p)e.forEach(t,n);else if(e.length===+e.length){for(var r=0,s=e.length;r<s;r++)if(t.call(n,e[r],r,e)===i)return}else{var o=N.keys(e);for(var r=0,s=o.length;r<s;r++)if(t.call(n,e[o[r]],o[r],e)===i)return}return e};N.map=N.collect=function(e,t,n){var r=[];return e==null?r:d&&e.map===d?e.map(t,n):(C(e,function(e,i,s){r.push(t.call(n,e,i,s))}),r)};var k="Reduce of empty array with no initial value";N.reduce=N.foldl=N.inject=function(e,t,n,r){var i=arguments.length>2;e==null&&(e=[]);if(v&&e.reduce===v)return r&&(t=N.bind(t,r)),i?e.reduce(t,n):e.reduce(t);C(e,function(e,s,o){i?n=t.call(r,n,e,s,o):(n=e,i=!0)});if(!i)throw new TypeError(k);return n},N.reduceRight=N.foldr=function(e,t,n,r){var i=arguments.length>2;e==null&&(e=[]);if(m&&e.reduceRight===m)return r&&(t=N.bind(t,r)),i?e.reduceRight(t,n):e.reduceRight(t);var s=e.length;if(s!==+s){var o=N.keys(e);s=o.length}C(e,function(u,a,f){a=o?o[--s]:--s,i?n=t.call(r,n,e[a],a,f):(n=e[a],i=!0)});if(!i)throw new TypeError(k);return n},N.find=N.detect=function(e,t,n){var r;return L(e,function(e,i,s){if(t.call(n,e,i,s))return r=e,!0}),r},N.filter=N.select=function(e,t,n){var r=[];return e==null?r:g&&e.filter===g?e.filter(t,n):(C(e,function(e,i,s){t.call(n,e,i,s)&&r.push(e)}),r)},N.reject=function(e,t,n){return N.filter(e,function(e,r,i){return!t.call(n,e,r,i)},n)},N.every=N.all=function(e,t,n){t||(t=N.identity);var r=!0;return e==null?r:y&&e.every===y?e.every(t,n):(C(e,function(e,s,o){if(!(r=r&&t.call(n,e,s,o)))return i}),!!r)};var L=N.some=N.any=function(e,t,n){t||(t=N.identity);var r=!1;return e==null?r:b&&e.some===b?e.some(t,n):(C(e,function(e,s,o){if(r||(r=t.call(n,e,s,o)))return i}),!!r)};N.contains=N.include=function(e,t){return e==null?!1:w&&e.indexOf===w?e.indexOf(t)!=-1:L(e,function(e){return e===t})},N.invoke=function(e,t){var n=f.call(arguments,2),r=N.isFunction(t);return N.map(e,function(e){return(r?t:e[t]).apply(e,n)})},N.pluck=function(e,t){return N.map(e,N.property(t))},N.where=function(e,t){return N.filter(e,N.matches(t))},N.findWhere=function(e,t){return N.find(e,N.matches(t))},N.max=function(e,t,n){if(!t&&N.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);var r=-Infinity,i=-Infinity;return C(e,function(e,s,o){var u=t?t.call(n,e,s,o):e;u>i&&(r=e,i=u)}),r},N.min=function(e,t,n){if(!t&&N.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);var r=Infinity,i=Infinity;return C(e,function(e,s,o){var u=t?t.call(n,e,s,o):e;u<i&&(r=e,i=u)}),r},N.shuffle=function(e){var t,n=0,r=[];return C(e,function(e){t=N.random(n++),r[n-1]=r[t],r[t]=e}),r},N.sample=function(e,t,n){return t==null||n?(e.length!==+e.length&&(e=N.values(e)),e[N.random(e.length-1)]):N.shuffle(e).slice(0,Math.max(0,t))};var A=function(e){return e==null?N.identity:N.isFunction(e)?e:N.property(e)};N.sortBy=function(e,t,n){return t=A(t),N.pluck(N.map(e,function(e,r,i){return{value:e,index:r,criteria:t.call(n,e,r,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||n===void 0)return 1;if(n<r||r===void 0)return-1}return e.index-t.index}),"value")};var O=function(e){return function(t,n,r){var i={};return n=A(n),C(t,function(s,o){var u=n.call(r,s,o,t);e(i,u,s)}),i}};N.groupBy=O(function(e,t,n){N.has(e,t)?e[t].push(n):e[t]=[n]}),N.indexBy=O(function(e,t,n){e[t]=n}),N.countBy=O(function(e,t){N.has(e,t)?e[t]++:e[t]=1}),N.sortedIndex=function(e,t,n,r){n=A(n);var i=n.call(r,t),s=0,o=e.length;while(s<o){var u=s+o>>>1;n.call(r,e[u])<i?s=u+1:o=u}return s},N.toArray=function(e){return e?N.isArray(e)?f.call(e):e.length===+e.length?N.map(e,N.identity):N.values(e):[]},N.size=function(e){return e==null?0:e.length===+e.length?e.length:N.keys(e).length},N.first=N.head=N.take=function(e,t,n){return e==null?void 0:t==null||n?e[0]:t<0?[]:f.call(e,0,t)},N.initial=function(e,t,n){return f.call(e,0,e.length-(t==null||n?1:t))},N.last=function(e,t,n){return e==null?void 0:t==null||n?e[e.length-1]:f.call(e,Math.max(e.length-t,0))},N.rest=N.tail=N.drop=function(e,t,n){return f.call(e,t==null||n?1:t)},N.compact=function(e){return N.filter(e,N.identity)};var M=function(e,t,n){return t&&N.every(e,N.isArray)?l.apply(n,e):(C(e,function(e){N.isArray(e)||N.isArguments(e)?t?a.apply(n,e):M(e,t,n):n.push(e)}),n)};N.flatten=function(e,t){return M(e,t,[])},N.without=function(e){return N.difference(e,f.call(arguments,1))},N.partition=function(e,t){var n=[],r=[];return C(e,function(e){(t(e)?n:r).push(e)}),[n,r]},N.uniq=N.unique=function(e,t,n,r){N.isFunction(t)&&(r=n,n=t,t=!1);var i=n?N.map(e,n,r):e,s=[],o=[];return C(i,function(n,r){if(t?!r||o[o.length-1]!==n:!N.contains(o,n))o.push(n),s.push(e[r])}),s},N.union=function(){return N.uniq(N.flatten(arguments,!0))},N.intersection=function(e){var t=f.call(arguments,1);return N.filter(N.uniq(e),function(e){return N.every(t,function(t){return N.contains(t,e)})})},N.difference=function(e){var t=l.apply(s,f.call(arguments,1));return N.filter(e,function(e){return!N.contains(t,e)})},N.zip=function(){var e=N.max(N.pluck(arguments,"length").concat(0)),t=new Array(e);for(var n=0;n<e;n++)t[n]=N.pluck(arguments,""+n);return t},N.object=function(e,t){if(e==null)return{};var n={};for(var r=0,i=e.length;r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},N.indexOf=function(e,t,n){if(e==null)return-1;var r=0,i=e.length;if(n){if(typeof n!="number")return r=N.sortedIndex(e,t),e[r]===t?r:-1;r=n<0?Math.max(0,i+n):n}if(w&&e.indexOf===w)return e.indexOf(t,n);for(;r<i;r++)if(e[r]===t)return r;return-1},N.lastIndexOf=function(e,t,n){if(e==null)return-1;var r=n!=null;if(E&&e.lastIndexOf===E)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);var i=r?n:e.length;while(i--)if(e[i]===t)return i;return-1},N.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;var r=Math.max(Math.ceil((t-e)/n),0),i=0,s=new Array(r);while(i<r)s[i++]=e,e+=n;return s};var _=function(){};N.bind=function(e,t){var n,r;if(T&&e.bind===T)return T.apply(e,f.call(arguments,1));if(!N.isFunction(e))throw new TypeError;return n=f.call(arguments,2),r=function(){if(this instanceof r){_.prototype=e.prototype;var i=new _;_.prototype=null;var s=e.apply(i,n.concat(f.call(arguments)));return Object(s)===s?s:i}return e.apply(t,n.concat(f.call(arguments)))}},N.partial=function(e){var t=f.call(arguments,1);return function(){var n=0,r=t.slice();for(var i=0,s=r.length;i<s;i++)r[i]===N&&(r[i]=arguments[n++]);while(n<arguments.length)r.push(arguments[n++]);return e.apply(this,r)}},N.bindAll=function(e){var t=f.call(arguments,1);if(t.length===0)throw new Error("bindAll must be passed function names");return C(t,function(t){e[t]=N.bind(e[t],e)}),e},N.memoize=function(e,t){var n={};return t||(t=N.identity),function(){var r=t.apply(this,arguments);return N.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},N.delay=function(e,t){var n=f.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},N.defer=function(e){return N.delay.apply(N,[e,1].concat(f.call(arguments,1)))},N.throttle=function(e,t,n){var r,i,s,o=null,u=0;n||(n={});var a=function(){u=n.leading===!1?0:N.now(),o=null,s=e.apply(r,i),r=i=null};return function(){var f=N.now();!u&&n.leading===!1&&(u=f);var l=t-(f-u);return r=this,i=arguments,l<=0?(clearTimeout(o),o=null,u=f,s=e.apply(r,i),r=i=null):!o&&n.trailing!==!1&&(o=setTimeout(a,l)),s}},N.debounce=function(e,t,n){var r,i,s,o,u,a=function(){var f=N.now()-o;f<t?r=setTimeout(a,t-f):(r=null,n||(u=e.apply(s,i),s=i=null))};return function(){s=this,i=arguments,o=N.now();var f=n&&!r;return r||(r=setTimeout(a,t)),f&&(u=e.apply(s,i),s=i=null),u}},N.once=function(e){var t=!1,n;return function(){return t?n:(t=!0,n=e.apply(this,arguments),e=null,n)}},N.wrap=function(e,t){return N.partial(t,e)},N.compose=function(){var e=arguments;return function(){var t=arguments;for(var n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},N.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},N.keys=function(e){if(!N.isObject(e))return[];if(x)return x(e);var t=[];for(var n in e)N.has(e,n)&&t.push(n);return t},N.values=function(e){var t=N.keys(e),n=t.length,r=new Array(n);for(var i=0;i<n;i++)r[i]=e[t[i]];return r},N.pairs=function(e){var t=N.keys(e),n=t.length,r=new Array(n);for(var i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r},N.invert=function(e){var t={},n=N.keys(e);for(var r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t},N.functions=N.methods=function(e){var t=[];for(var n in e)N.isFunction(e[n])&&t.push(n);return t.sort()},N.extend=function(e){return C(f.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},N.pick=function(e){var t={},n=l.apply(s,f.call(arguments,1));return C(n,function(n){n in e&&(t[n]=e[n])}),t},N.omit=function(e){var t={},n=l.apply(s,f.call(arguments,1));for(var r in e)N.contains(n,r)||(t[r]=e[r]);return t},N.defaults=function(e){return C(f.call(arguments,1),function(t){if(t)for(var n in t)e[n]===void 0&&(e[n]=t[n])}),e},N.clone=function(e){return N.isObject(e)?N.isArray(e)?e.slice():N.extend({},e):e},N.tap=function(e,t){return t(e),e};var D=function(e,t,n,r){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return e===t;e instanceof N&&(e=e._wrapped),t instanceof N&&(t=t._wrapped);var i=c.call(e);if(i!=c.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if(typeof e!="object"||typeof t!="object")return!1;var s=n.length;while(s--)if(n[s]==e)return r[s]==t;var o=e.constructor,u=t.constructor;if(o!==u&&!(N.isFunction(o)&&o instanceof o&&N.isFunction(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1;n.push(e),r.push(t);var a=0,f=!0;if(i=="[object Array]"){a=e.length,f=a==t.length;if(f)while(a--)if(!(f=D(e[a],t[a],n,r)))break}else{for(var l in e)if(N.has(e,l)){a++;if(!(f=N.has(t,l)&&D(e[l],t[l],n,r)))break}if(f){for(l in t)if(N.has(t,l)&&!(a--))break;f=!a}}return n.pop(),r.pop(),f};N.isEqual=function(e,t){return D(e,t,[],[])},N.isEmpty=function(e){if(e==null)return!0;if(N.isArray(e)||N.isString(e))return e.length===0;for(var t in e)if(N.has(e,t))return!1;return!0},N.isElement=function(e){return!!e&&e.nodeType===1},N.isArray=S||function(e){return c.call(e)=="[object Array]"},N.isObject=function(e){return e===Object(e)},C(["Arguments","Function","String","Number","Date","RegExp"],function(e){N["is"+e]=function(t){return c.call(t)=="[object "+e+"]"}}),N.isArguments(arguments)||(N.isArguments=function(e){return!!e&&!!N.has(e,"callee")}),typeof /./!="function"&&(N.isFunction=function(e){return typeof e=="function"}),N.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},N.isNaN=function(e){return N.isNumber(e)&&e!=+e},N.isBoolean=function(e){return e===!0||e===!1||c.call(e)=="[object Boolean]"},N.isNull=function(e){return e===null},N.isUndefined=function(e){return e===void 0},N.has=function(e,t){return h.call(e,t)},N.noConflict=function(){return e._=r,this},N.identity=function(e){return e},N.constant=function(e){return function(){return e}},N.property=function(e){return function(t){return t[e]}},N.matches=function(e){return function(t){if(t===e)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0}},N.times=function(e,t,n){var r=Array(Math.max(0,e));for(var i=0;i<e;i++)r[i]=t.call(n,i);return r},N.random=function(e,t){return t==null&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},N.now=Date.now||function(){return(new Date).getTime()};var P={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};P.unescape=N.invert(P.escape);var H={escape:new RegExp("["+N.keys(P.escape).join("")+"]","g"),unescape:new RegExp("("+N.keys(P.unescape).join("|")+")","g")};N.each(["escape","unescape"],function(e){N[e]=function(t){return t==null?"":(""+t).replace(H[e],function(t){return P[e][t]})}}),N.result=function(e,t){if(e==null)return void 0;var n=e[t];return N.isFunction(n)?n.call(e):n},N.mixin=function(e){C(N.functions(e),function(t){var n=N[t]=e[t];N.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),q.call(this,n.apply(N,e))}})};var B=0;N.uniqueId=function(e){var t=++B+"";return e?e+t:t},N.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var j=/(.)^/,F={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},I=/\\|'|\r|\n|\t|\u2028|\u2029/g;N.template=function(e,t,n){var r;n=N.defaults({},n,N.templateSettings);var i=new RegExp([(n.escape||j).source,(n.interpolate||j).source,(n.evaluate||j).source].join("|")+"|$","g"),s=0,o="__p+='";e.replace(i,function(t,n,r,i,u){return o+=e.slice(s,u).replace(I,function(e){return"\\"+F[e]}),n&&(o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),r&&(o+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),i&&(o+="';\n"+i+"\n__p+='"),s=u+t.length,t}),o+="';\n",n.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{r=new Function(n.variable||"obj","_",o)}catch(u){throw u.source=o,u}if(t)return r(t,N);var a=function(e){return r.call(this,e,N)};return a.source="function("+(n.variable||"obj")+"){\n"+o+"}",a},N.chain=function(e){return N(e).chain()};var q=function(e){return this._chain?N(e).chain():e};N.mixin(N),C(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=s[e];N.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e=="shift"||e=="splice")&&n.length===0&&delete n[0],q.call(this,n)}}),C(["concat","join","slice"],function(e){var t=s[e];N.prototype[e]=function(){return q.call(this,t.apply(this._wrapped,arguments))}}),N.extend(N.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),typeof define=="function"&&define.amd&&ace.define("underscore",[],function(){return N})}).call(this)},{}],3:[function(e,t,n){var r=e("underscore"),i=e("events"),s=e("./vars.js"),o=e("./messages.js"),u=e("./lex.js").Lexer,a=e("./reg.js"),f=e("./state.js").state,l=e("./style.js"),c=e("./options.js"),h=function(){"use strict";function D(e,t){return e=e.trim(),/^[+-]W\d{3}$/g.test(e)?!0:c.validNames.indexOf(e)===-1&&t.type!=="jslint"&&!r.has(c.removed,e)?(V("E001",t,e),!1):!0}function P(e){return Object.prototype.toString.call(e)==="[object String]"}function H(e,t){return e?!e.identifier||e.value!==t?!1:!0:!1}function B(e){if(!e.reserved)return!1;var t=e.meta;if(t&&t.isFutureReservedWord&&f.option.inES5()){if(!t.es5)return!1;if(t.strictOnly&&!f.option.strict&&!f.directive["use strict"])return!1;if(e.isProperty)return!1}return!0}function j(e,t){return e.replace(/\{([^{}]*)\}/g,function(e,n){var r=t[n];return typeof r=="string"||typeof r=="number"?r:e})}function F(e,t){Object.keys(t).forEach(function(n){if(r.has(h.blacklist,n))return;e[n]=t[n]})}function I(){if(f.option.enforceall){for(var e in c.bool.enforcing)f.option[e]===undefined&&(f.option[e]=!0);for(var t in c.bool.relaxing)f.option[t]===undefined&&(f.option[t]=!1)}}function q(){I(),f.option.esnext&&F(N,s.newEcmaIdentifiers),f.option.couch&&F(N,s.couch),f.option.qunit&&F(N,s.qunit),f.option.rhino&&F(N,s.rhino),f.option.shelljs&&(F(N,s.shelljs),F(N,s.node)),f.option.typed&&F(N,s.typed),f.option.phantom&&F(N,s.phantom),f.option.prototypejs&&F(N,s.prototypejs),f.option.node&&(F(N,s.node),F(N,s.typed)),f.option.devel&&F(N,s.devel),f.option.dojo&&F(N,s.dojo),f.option.browser&&(F(N,s.browser),F(N,s.typed)),f.option.browserify&&(F(N,s.browser),F(N,s.typed),F(N,s.browserify)),f.option.nonstandard&&F(N,s.nonstandard),f.option.jasmine&&F(N,s.jasmine),f.option.jquery&&F(N,s.jquery),f.option.mootools&&F(N,s.mootools),f.option.worker&&F(N,s.worker),f.option.wsh&&F(N,s.wsh),f.option.globalstrict&&f.option.strict!==!1&&(f.option.strict=!0),f.option.yui&&F(N,s.yui),f.option.mocha&&F(N,s.mocha),f.option.inMoz=function(e){return f.option.moz},f.option.inESNext=function(e){return f.option.moz||f.option.esnext},f.option.inES5=function(){return!f.option.es3},f.option.inES3=function(e){return e?!f.option.moz&&!f.option.esnext&&f.option.es3:f.option.es3}}function R(e,t,n){var r=Math.floor(t/f.lines.length*100),i=o.errors[e].desc;throw{name:"JSHintError",line:t,character:n,message:i+" ("+r+"% scanned).",raw:i,code:e}}function U(e,t,n,r){return h.undefs.push([e,t,n,r])}function z(){var e=f.ignoredLines;if(r.isEmpty(e))return;h.errors=r.reject(h.errors,function(t){return e[t.line]})}function W(e,t,n,r,i,s){var u,a,l,c;if(/^W\d{3}$/.test(e)){if(f.ignored[e])return;c=o.warnings[e]}else/E\d{3}/.test(e)?c=o.errors[e]:/I\d{3}/.test(e)&&(c=o.info[e]);return t=t||f.tokens.next,t.id==="(end)"&&(t=f.tokens.curr),a=t.line||0,u=t.from||0,l={id:"(error)",raw:c.desc,code:c.code,evidence:f.lines[a-1]||"",line:a,character:u,scope:h.scope,a:n,b:r,c:i,d:s},l.reason=j(c.desc,l),h.errors.push(l),z(),h.errors.length>=f.option.maxerr&&R("E043",a,u),l}function X(e,t,n,r,i,s,o){return W(e,{line:t,from:n},r,i,s,o)}function V(e,t,n,r,i,s){W(e,t,n,r,i,s)}function $(e,t,n,r,i,s,o){return V(e,{line:t,from:n},r,i,s,o)}function J(e,t){var n;return n={id:"(internal)",elem:e,value:t},h.internals.push(n),n}function K(e,t){t=t||{};var n=t.type,i=t.token,s=t.islet;n==="exception"&&r.has(v["(context)"],e)&&v[e]!==!0&&!f.option.node&&W("W002",f.tokens.next,e),r.has(v,e)&&!v["(global)"]&&(v[e]===!0?f.option.latedef&&(f.option.latedef===!0&&r.contains([v[e],n],"unction")||!r.contains([v[e],n],"unction"))&&W("W003",f.tokens.next,e):((!f.option.shadow||r.contains(["inner","outer"],f.option.shadow))&&n!=="exception"||v["(blockscope)"].getlabel(e))&&W("W004",f.tokens.next,e)),v["(context)"]&&r.has(v["(context)"],e)&&n!=="function"&&f.option.shadow==="outer"&&W("W123",f.tokens.next,e),s?(v["(blockscope)"].current.add(e,n,f.tokens.curr),v["(blockscope)"].atTop()&&p[e]&&(f.tokens.curr.exported=!0)):(v["(blockscope)"].shadow(e),v[e]=n,i&&(v["(tokens)"][e]=i),zt(v,e,{unused:t.unused||!1}),v["(global)"]?(g[e]=v,r.has(y,e)&&(f.option.latedef&&(f.option.latedef===!0&&r.contains([v[e],n],"unction")||!r.contains([v[e],n],"unction"))&&W("W003",f.tokens.next,e),delete y[e])):C[e]=v)}function Q(){var e=f.tokens.next,t=e.body.match(/(-\s+)?[^\s,:]+(?:\s*:\s*(-\s+)?[^\s,]+)?/g)||[],i={};if(e.type==="globals"){t.forEach(function(e){e=e.split(":");var t=(e[0]||"").trim(),n=(e[1]||"").trim();t.charAt(0)==="-"?(t=t.slice(1),n=!1,h.blacklist[t]=t,delete N[t]):i[t]=n==="true"}),F(N,i);for(var s in i)r.has(i,s)&&(n[s]=e)}e.type==="exported"&&t.forEach(function(e){p[e]=!0}),e.type==="members"&&(T=T||{},t.forEach(function(e){var t=e.charAt(0),n=e.charAt(e.length-1);t===n&&(t==='"'||t==="'")&&(e=e.substr(1,e.length-2).replace('\\"','"')),T[e]=!1}));var o=["maxstatements","maxparams","maxdepth","maxcomplexity","maxerr","maxlen","indent"];if(e.type==="jshint"||e.type==="jslint")t.forEach(function(t){t=t.split(":");var n=(t[0]||"").trim(),r=(t[1]||"").trim();if(!D(n,e))return;if(o.indexOf(n)>=0){if(r!=="false"){r=+r;if(typeof r!="number"||!isFinite(r)||r<=0||Math.floor(r)!==r){V("E032",e,t[1].trim());return}f.option[n]=r}else f.option[n]=n==="indent"?4:!1;return}if(n==="validthis"){if(v["(global)"])return void V("E009");if(r!=="true"&&r!=="false")return void V("E002",e);f.option.validthis=r==="true";return}if(n==="quotmark"){switch(r){case"true":case"false":f.option.quotmark=r==="true";break;case"double":case"single":f.option.quotmark=r;break;default:V("E002",e)}return}if(n==="shadow"){switch(r){case"true":f.option.shadow=!0;break;case"outer":f.option.shadow="outer";break;case"false":case"inner":f.option.shadow="inner";break;default:V("E002",e)}return}if(n==="unused"){switch(r){case"true":f.option.unused=!0;break;case"false":f.option.unused=!1;break;case"vars":case"strict":f.option.unused=r;break;default:V("E002",e)}return}if(n==="latedef"){switch(r){case"true":f.option.latedef=!0;break;case"false":f.option.latedef=!1;break;case"nofunc":f.option.latedef="nofunc";break;default:V("E002",e)}return}if(n==="ignore"){switch(r){case"start":f.ignoreLinterErrors=!0;break;case"end":f.ignoreLinterErrors=!1;break;case"line":f.ignoredLines[e.line]=!0,z();break;default:V("E002",e)}return}var i=/^([+-])(W\d{3})$/g.exec(n);if(i){f.ignored[i[2]]=i[1]==="-";return}var s;if(r==="true"||r==="false"){e.type==="jslint"?(s=c.renamed[n]||n,f.option[s]=r==="true",c.inverted[s]!==undefined&&(f.option[s]=!f.option[s])):f.option[n]=r==="true",n==="newcap"&&(f.option["(explicitNewcap)"]=!0);return}V("E002",e)}),q()}function G(e){var t=e||0,n=0,r;while(n<=t)r=E[n],r||(r=E[n]=S.token()),n+=1;return r}function Y(){var e=0,t;do t=G(e++);while(t.id==="(endline)");return t}function Z(e,t){switch(f.tokens.curr.id){case"(number)":f.tokens.next.id==="."&&W("W005",f.tokens.curr);break;case"-":(f.tokens.next.id==="-"||f.tokens.next.id==="--")&&W("W006");break;case"+":(f.tokens.next.id==="+"||f.tokens.next.id==="++")&&W("W007")}if(e&&f.tokens.next.id!==e)if(t)f.tokens.next.id==="(end)"?V("E019",t,t.id):V("E020",f.tokens.next,e,t.id,t.line,f.tokens.next.value);else if(f.tokens.next.type!=="(identifier)"||f.tokens.next.value!==e)f.tokens.next.value==="..."?f.option.esnext||W("W119",f.tokens.next,"spread/rest operator"):W("W116",f.tokens.next,e,f.tokens.next.value);f.tokens.prev=f.tokens.curr,f.tokens.curr=f.tokens.next;for(;;){f.tokens.next=E.shift()||S.token(),f.tokens.next||R("E041",f.tokens.curr.line);if(f.tokens.next.id==="(end)"||f.tokens.next.id==="(error)")return;f.tokens.next.check&&f.tokens.next.check();if(f.tokens.next.isSpecial)Q();else if(f.tokens.next.id!=="(endline)")break}}function et(e){return e.infix||!e.identifier&&!!e.led}function tt(){var e=f.tokens.curr,t=f.tokens.next;return t.id===";"||t.id==="}"||t.id===":"?!0:et(t)===et(e)||e.id==="yield"&&f.option.inMoz(!0)?e.line!==t.line:!1}function nt(e,t){var n,i=!1,s=!1,o=!1,u=f.tokens.curr.value==="=>";f.nameStack.push(),!t&&f.tokens.next.value==="let"&&G(0).value==="("&&(f.option.inMoz(!0)||W("W118",f.tokens.next,"let expressions"),o=!0,v["(blockscope)"].stack(),Z("let"),Z("("),f.syntax.let.fud.call(f.syntax.let.fud,!1),Z(")")),f.tokens.next.id==="(end)"&&V("E006",f.tokens.curr),f.tokens.next.type==="(template)"&&Vt();var a=f.option.asi&&f.tokens.prev.line<f.tokens.curr.line&&r.contains(["]",")"],f.tokens.prev.id)&&r.contains(["[","("],f.tokens.curr.id);a&&W("W014",f.tokens.curr,f.tokens.curr.id),Z(),t&&(v["(verb)"]=f.tokens.curr.value);if(t===!0&&f.tokens.curr.fud)n=f.tokens.curr.fud();else{f.tokens.curr.nud?n=f.tokens.curr.nud():V("E030",f.tokens.curr,f.tokens.curr.id);while(e<f.tokens.next.lbp&&!tt())i=f.tokens.curr.value==="Array",s=f.tokens.curr.value==="Object",n&&(n.value||n.first&&n.first.value)&&(n.value!=="new"||n.first&&n.first.value&&n.first.value===".")&&(i=!1,n.value!==f.tokens.curr.value&&(s=!1)),Z(),i&&f.tokens.curr.id==="("&&f.tokens.next.id===")"&&W("W009",f.tokens.curr),s&&f.tokens.curr.id==="("&&f.tokens.next.id===")"&&W("W010",f.tokens.curr),n&&f.tokens.curr.led?n=f.tokens.curr.led(n):V("E033",f.tokens.curr,f.tokens.curr.id)}return o&&v["(blockscope)"].unstack(),f.option.singleGroups&&n&&n.paren&&!n.exprs&&!u&&!n.triggerFnExpr&&W("W126"),f.nameStack.pop(),n}function rt(e,t){e=e||f.tokens.curr,t=t||f.tokens.next,!f.option.laxbreak&&e.line!==t.line&&W("W014",t,t.value)}function it(e){e=e||f.tokens.curr,e.line!==f.tokens.next.line&&W("E022",e,e.value)}function st(e,t){e.line!==t.line&&(f.option.laxcomma||(ot.first&&(W("I001"),ot.first=!1),W("W014",e,t.value)))}function ot(e){e=e||{},f.option.nocomma&&W("W127"),e.peek?st(f.tokens.prev,f.tokens.curr):(st(f.tokens.curr,f.tokens.next),Z(","));if(f.tokens.next.identifier&&(!e.property||!f.option.inES5()))switch(f.tokens.next.value){case"break":case"case":case"catch":case"continue":case"default":case"do":case"else":case"finally":case"for":case"if":case"in":case"instanceof":case"return":case"switch":case"throw":case"try":case"var":case"let":case"while":case"with":return V("E024",f.tokens.next,f.tokens.next.value),!1}if(f.tokens.next.type==="(punctuator)")switch(f.tokens.next.value){case"}":case"]":case",":if(e.allowTrailing)return!0;case")":return V("E024",f.tokens.next,f.tokens.next.value),!1}return!0}function ut(e,t){var n=f.syntax[e];if(!n||typeof n!="object")f.syntax[e]=n={id:e,lbp:t,value:e};return n}function at(e){return ut(e,0)}function ft(e,t){var n=at(e);return n.identifier=n.reserved=!0,n.fud=t,n}function lt(e,t){var n=ft(e,t);return n.block=!0,n}function ct(e){var t=e.id.charAt(0);if(t>="a"&&t<="z"||t>="A"&&t<="Z")e.identifier=e.reserved=!0;return e}function ht(e,t){var n=ut(e,150);return ct(n),n.nud=typeof t=="function"?t:function(){this.right=nt(150),this.arity="unary";if(this.id==="++"||this.id==="--")f.option.plusplus?W("W016",this,this.id):this.right&&(!this.right.identifier||B(this.right))&&this.right.id!=="."&&this.right.id!=="["&&W("W017",this);return this},n}function pt(e,t){var n=at(e);return n.type=e,n.nud=t,n}function dt(e,t){var n=pt(e,t);return n.identifier=!0,n.reserved=!0,n}function vt(e,t){var n=pt(e,t&&t.nud||function(){return this});return t=t||{},t.isFutureReservedWord=!0,n.value=e,n.identifier=!0,n.reserved=!0,n.meta=t,n}function mt(e,t){return dt(e,function(){return typeof t=="function"&&t(this),this})}function gt(e,t,n,r){var i=ut(e,n);return ct(i),i.infix=!0,i.led=function(i){return r||rt(f.tokens.prev,f.tokens.curr),e==="in"&&i.id==="!"&&W("W018",i,"!"),typeof t=="function"?t(i,this):(this.left=i,this.right=nt(n),this)},i}function yt(e){var t=ut(e,42);return t.led=function(e){return rt(f.tokens.prev,f.tokens.curr),this.left=e,this.right=$t(undefined,undefined,!1,{loneArg:e}),this},t}function bt(e,t){var n=ut(e,100);return n.led=function(e){rt(f.tokens.prev,f.tokens.curr);var n=nt(100);return H(e,"NaN")||H(n,"NaN")?W("W019",this):t&&t.apply(this,[e,n]),(!e||!n)&&R("E041",f.tokens.curr.line),e.id==="!"&&W("W018",e,"!"),n.id==="!"&&W("W018",n,"!"),this.left=e,this.right=n,this},n}function wt(e){return e&&(e.type==="(number)"&&+e.value===0||e.type==="(string)"&&e.value===""||e.type==="null"&&!f.option.eqnull||e.type==="true"||e.type==="false"||e.type==="undefined")}function Et(e,t){if(f.option.notypeof)return!1;if(!e||!t)return!1;var n=["undefined","object","boolean","number","string","function","xml","object","unknown"];return t.type==="(identifier)"&&t.value==="typeof"&&e.type==="(string)"?!r.contains(n,e.value):!1}function St(e){function n(e){if(typeof e!="object")return;return e.right==="prototype"?e:n(e.left)}function r(e){while(!e.identifier&&typeof e.left=="object")e=e.left;if(e.identifier&&t.indexOf(e.value)>=0)return e.value}var t=["Array","ArrayBuffer","Boolean","Collator","DataView","Date","DateTimeFormat","Error","EvalError","Float32Array","Float64Array","Function","Infinity","Intl","Int16Array","Int32Array","Int8Array","Iterator","Number","NumberFormat","Object","RangeError","ReferenceError","RegExp","StopIteration","String","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError"],i=n(e);if(i)return r(i)}function xt(e,t,n){var r=gt(e,typeof t=="function"?t:function(e,t){t.left=e;if(e){if(f.option.freeze){var n=St(e);n&&W("W121",e,n)}N[e.value]===!1&&C[e.value]["(global)"]===!0?W("W020",e):e["function"]&&W("W021",e,e.value),v[e.value]==="const"&&V("E013",e,e.value);if(e.id===".")return e.left?e.left.value==="arguments"&&!f.directive["use strict"]&&W("E031",t):W("E031",t),f.nameStack.set(f.tokens.prev),t.right=nt(10),t;if(e.id==="[")return f.tokens.curr.left.first?f.tokens.curr.left.first.forEach(function(e){e&&v[e.value]==="const"&&V("E013",e,e.value)}):e.left?e.left.value==="arguments"&&!f.directive["use strict"]&&W("E031",t):W("E031",t),f.nameStack.set(e.right),t.right=nt(10),t;if(e.identifier&&!B(e))return v[e.value]==="exception"&&W("W022",e),f.nameStack.set(e),t.right=nt(10),t;e===f.syntax["function"]&&W("W023",f.tokens.curr)}V("E031",t)},n);return r.exps=!0,r.assign=!0,r}function Tt(e,t,n){var r=ut(e,n);return ct(r),r.led=typeof t=="function"?t:function(e){return f.option.bitwise&&W("W016",this,this.id),this.left=e,this.right=nt(n),this},r}function Nt(e){return xt(e,function(e,t){f.option.bitwise&&W("W016",t,t.id);if(e)return e.id==="."||e.id==="["||e.identifier&&!B(e)?(nt(10),t):(e===f.syntax["function"]&&W("W023",f.tokens.curr),t);V("E031",t)},20)}function Ct(e){var t=ut(e,150);return t.led=function(e){return f.option.plusplus?W("W016",this,this.id):(!e.identifier||B(e))&&e.id!=="."&&e.id!=="["&&W("W017",this),this.left=e,this},t}function kt(e,t,n,r){if(!f.tokens.next.identifier)return;n||Z();var i=f.tokens.curr,s=f.tokens.curr.value;return r&&(f.tokens.curr.exported=!0),B(i)?t&&f.option.inES5()?s:e&&s==="undefined"?s:(W("W024",f.tokens.curr,f.tokens.curr.id),s):s}function Lt(e,t,n){var r=kt(e,t,!1,n);if(r)return r;f.tokens.next.value==="..."?f.option.esnext||W("W119",f.tokens.next,"spread/rest operator"):(V("E030",f.tokens.next,f.tokens.next.value),f.tokens.next.id!==";"&&Z())}function At(e){var t=0,n;if(f.tokens.next.id!==";"||e.inBracelessBlock)return;for(;;){do n=G(t),t+=1;while(n.id!="(end)"&&n.id==="(comment)");if(n.reach)return;if(n.id!=="(endline)"){if(n.id==="function"){f.option.latedef===!0&&W("W026",n);break}W("W027",n,n.value,e.value);break}}}function Ot(){f.tokens.next.id!==";"?f.option.asi||(!f.option.lastsemic||f.tokens.next.id!=="}"||f.tokens.next.line!==f.tokens.curr.line)&&X("W033",f.tokens.curr.line,f.tokens.curr.character):Z(";")}function Mt(){var e,t=w,n,i=C,s=f.tokens.next;if(s.id===";"){Z(";");return}var o=B(s);o&&s.meta&&s.meta.isFutureReservedWord&&G().id===":"&&(W("W024",s,s.id),o=!1);if(s.value==="module"&&s.type==="(identifier)"&&G().type==="(identifier)"){f.option.inESNext()||W("W119",f.tokens.curr,"module"),Z("module");var u=Lt();K(u,{type:"unused",token:f.tokens.curr}),Z("from"),Z("(string)"),Ot();return}if(r.has(["[","{"],s.value)&&un().isDestAssign){f.option.inESNext()||W("W104",f.tokens.curr,"destructuring expression"),e=Yt(),e.forEach(function(e){U(v,"W117",e.token,e.id)}),Z("="),Zt(e,nt(10,!0)),Z(";");return}s.identifier&&!o&&G().id===":"&&(Z(),Z(":"),C=Object.create(i),K(s.value,{type:"label"}),!f.tokens.next.labelled&&f.tokens.next.value!=="{"&&W("W028",f.tokens.next,s.value,f.tokens.next.value),f.tokens.next.label=s.value,s=f.tokens.next);if(s.id==="{"){var a=v["(verb)"]==="case"&&f.tokens.curr.value===":";Pt(!0,!0,!1,!1,a);return}return n=nt(0,!0),n&&(!n.identifier||n.value!=="function")&&n.type!=="(punctuator)"&&!f.directive["use strict"]&&f.option.globalstrict&&f.option.strict&&W("E007"),s.block||(!f.option.expr&&(!n||!n.exps)?W("W030",f.tokens.curr):f.option.nonew&&n&&n.left&&n.id==="("&&n.left.id==="new"&&W("W031",s),Ot()),w=t,C=i,n}function _t(){var e=[],t;while(!f.tokens.next.reach&&f.tokens.next.id!=="(end)")f.tokens.next.id===";"?(t=G(),(!t||t.id!=="("&&t.id!=="[")&&W("W032"),Z(";")):e.push(Mt());return e}function Dt(){var e,t,n;while(f.tokens.next.id==="(string)"){t=G(0);if(t.id==="(endline)"){e=1;do n=G(e++);while(n.id==="(endline)");if(n.id===";")t=n;else{if(n.value==="["||n.value===".")return;(!f.option.asi||n.value==="(")&&W("W033",f.tokens.next)}}else{if(t.id==="."||t.id==="[")return;t.id!==";"&&W("W033",t)}Z(),f.directive[f.tokens.curr.value]&&W("W034",f.tokens.curr,f.tokens.curr.value),f.tokens.curr.value==="use strict"&&(f.option["(explicitNewcap)"]||(f.option.newcap=!0),f.option.undef=!0),f.directive[f.tokens.curr.value]=!0,t.id===";"&&Z(";")}}function Pt(e,t,n,i,s){var o,u=b,a=w,l,c=C,h,p,d;b=e;if(!e||!f.option.funcscope)C=Object.create(C);h=f.tokens.next;var m=v["(metrics)"];m.nestedBlockDepth+=1,m.verifyMaxNestedBlockDepthPerFunction();if(f.tokens.next.id==="{"){Z("{"),v["(blockscope)"].stack(),p=f.tokens.curr.line;if(f.tokens.next.id!=="}"){w+=f.option.indent;while(!e&&f.tokens.next.from>w)w+=f.option.indent;if(n){l={};for(d in f.directive)r.has(f.directive,d)&&(l[d]=f.directive[d]);Dt(),f.option.strict&&v["(context)"]["(global)"]&&!l["use strict"]&&!f.directive["use strict"]&&W("E007")}o=_t(),m.statementCount+=o.length,n&&(f.directive=l),w-=f.option.indent}Z("}",h),v["(blockscope)"].unstack(),w=a}else if(!e)if(n){l={},t&&!i&&!f.option.inMoz(!0)&&V("W118",f.tokens.curr,"function closure expressions");if(!t)for(d in f.directive)r.has(f.directive,d)&&(l[d]=f.directive[d]);nt(10),f.option.strict&&v["(context)"]["(global)"]&&!l["use strict"]&&!f.directive["use strict"]&&W("E007")}else V("E021",f.tokens.next,"{",f.tokens.next.value);else v["(nolet)"]=!0,(!t||f.option.curly)&&W("W116",f.tokens.next,"{",f.tokens.next.value),f.tokens.next.inBracelessBlock=!0,w+=f.option.indent,o=[Mt()],w-=f.option.indent,delete v["(nolet)"];switch(v["(verb)"]){case"break":case"continue":case"return":case"throw":if(s)break;default:v["(verb)"]=null}if(!e||!f.option.funcscope)C=c;return b=u,e&&f.option.noempty&&(!o||o.length===0)&&W("W035",f.tokens.prev),m.nestedBlockDepth-=1,o}function Ht(e){T&&typeof T[e]!="boolean"&&W("W036",f.tokens.curr,e),typeof x[e]=="number"?x[e]+=1:x[e]=1}function Bt(e){var t=e.value,n=Object.getOwnPropertyDescriptor(y,t);n?n.value.push(e.line):y[t]=[e.line]}function Ft(){var e={};e.exps=!0,v["(comparray)"].stack();var t=!1;return f.tokens.next.value!=="for"&&(t=!0,f.option.inMoz(!0)||W("W116",f.tokens.next,"for",f.tokens.next.value),v["(comparray)"].setState("use"),e.right=nt(10)),Z("for"),f.tokens.next.value==="each"&&(Z("each"),f.option.inMoz(!0)||W("W118",f.tokens.curr,"for each")),Z("("),v["(comparray)"].setState("define"),e.left=nt(130),r.contains(["in","of"],f.tokens.next.value)?Z():V("E045",f.tokens.curr),v["(comparray)"].setState("generate"),nt(10),Z(")"),f.tokens.next.value==="if"&&(Z("if"),Z("("),v["(comparray)"].setState("filter"),e.filter=nt(10),Z(")")),t||(v["(comparray)"].setState("use"),e.right=nt(10)),Z("]"),v["(comparray)"].unstack(),e}function It(){return v["(statement)"]&&v["(statement)"].type==="class"||v["(context)"]&&v["(context)"]["(verb)"]==="class"}function qt(e){return e.identifier||e.id==="(string)"||e.id==="(number)"}function Rt(e){var t,n=!0;return typeof e=="object"?t=e:(n=e,t=kt(!1,!0,n)),t?typeof t=="object"&&(t.id==="(string)"||t.id==="(identifier)"?t=t.value:t.id==="(number)"&&(t=t.value.toString())):f.tokens.next.id==="(string)"?(t=f.tokens.next.value,n||Z()):f.tokens.next.id==="(number)"&&(t=f.tokens.next.value.toString(),n||Z()),t==="hasOwnProperty"&&W("W001"),t}function Ut(e){var t,n=[],i,s=[],o,u=!1,a=e&&e.loneArg;if(a&&a.identifier===!0)return K(a.value,{type:"unused",token:a}),[a];t=f.tokens.next,(!e||!e.parsedParen)&&Z("(");if(f.tokens.next.id===")"){Z(")");return}for(;;){if(r.contains(["{","["],f.tokens.next.id)){s=Yt();for(o in s)o=s[o],o.id&&(n.push(o.id),K(o.id,{type:"unused",token:o.token}))}else f.tokens.next.value==="..."?(f.option.esnext||W("W119",f.tokens.next,"spread/rest operator"),Z("..."),i=Lt(!0),n.push(i),K(i,{type:"unused",token:f.tokens.curr})):(i=Lt(!0),n.push(i),K(i,{type:"unused",token:f.tokens.curr}));u&&f.tokens.next.id!=="="&&V("E051",f.tokens.current),f.tokens.next.id==="="&&(f.option.inESNext()||W("W119",f.tokens.next,"default parameters"),Z("="),u=!0,nt(10));if(f.tokens.next.id!==",")return Z(")",t),n;ot()}}function zt(e,t,n){e["(properties)"][t]||(e["(properties)"][t]={unused:!1}),r.extend(e["(properties)"][t],n)}function Wt(e,t,n){return e["(properties)"][t]?e["(properties)"][t][n]||null:null}function Xt(e,t,n,i){var s={"(name)":e,"(breakage)":0,"(loopage)":0,"(scope)":n,"(tokens)":{},"(properties)":{},"(catch)":!1,"(global)":!1,"(line)":null,"(character)":null,"(metrics)":null,"(statement)":null,"(context)":null,"(blockscope)":null,"(comparray)":null,"(generator)":null,"(params)":null};return t&&r.extend(s,{"(line)":t.line,"(character)":t.character,"(metrics)":Jt(t)}),r.extend(s,i),s["(context)"]&&(s["(blockscope)"]=s["(context)"]["(blockscope)"],s["(comparray)"]=s["(context)"]["(comparray)"]),s}function Vt(){while(f.tokens.next.type!=="(template tail)"&&f.tokens.next.id!=="(end)"){Z();if(f.tokens.next.type==="(template tail)")break;f.tokens.next.type!=="(template middle)"&&f.tokens.next.type!=="(end)"&&nt(10)}return{id:"(template)",type:"(template)"}}function $t(e,t,n,i){var s,o=f.option,u=f.ignored,a=C;return f.option=Object.create(f.option),f.ignored=Object.create(f.ignored),C=Object.create(C),v=Xt(e||f.nameStack.infer(),f.tokens.next,C,{"(statement)":t,"(context)":v,"(generator)":n?!0:null}),s=v,f.tokens.curr.funct=v,m.push(v),e&&K(e,{type:"function"}),v["(params)"]=Ut(i),v["(metrics)"].verifyMaxParametersPerFunction(v["(params)"]),i&&(f.option.esnext||W("W119",f.tokens.curr,"arrow function syntax (=>)"),i.loneArg||Z("=>")),Pt(!1,!0,!0,!!i),!f.option.noyield&&n&&v["(generator)"]!=="yielded"&&W("W124",f.tokens.curr),v["(metrics)"].verifyMaxStatementsPerFunction(),v["(metrics)"].verifyMaxComplexityPerFunction(),v["(unusedOption)"]=f.option.unused,C=a,f.option=o,f.ignored=u,v["(last)"]=f.tokens.curr.line,v["(lastcharacter)"]=f.tokens.curr.character,r.map(Object.keys(v),function(e){if(e[0]==="(")return;v["(blockscope)"].unshadow(e)}),v=v["(context)"],s}function Jt(e){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,verifyMaxStatementsPerFunction:function(){f.option.maxstatements&&this.statementCount>f.option.maxstatements&&W("W071",e,this.statementCount)},verifyMaxParametersPerFunction:function(t){t=t||[],f.option.maxparams&&t.length>f.option.maxparams&&W("W072",e,t.length)},verifyMaxNestedBlockDepthPerFunction:function(){f.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===f.option.maxdepth+1&&W("W073",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var t=f.option.maxcomplexity,n=this.ComplexityCount;t&&n>t&&W("W074",e,n)}}}function Kt(){v["(metrics)"].ComplexityCount+=1}function Qt(e){var t,n;e&&(t=e.id,n=e.paren,t===","&&(e=e.exprs[e.exprs.length-1])&&(t=e.id,n=n||e.paren));switch(t){case"=":case"+=":case"-=":case"*=":case"%=":case"&=":case"|=":case"^=":case"/=":!n&&!f.option.boss&&W("W084")}}function Gt(e){if(f.option.inES5())for(var t in e)r.has(e,t)&&e[t].setterToken&&!e[t].getterToken&&W("W078",e[t].setterToken)}function Yt(){var e,t,n=[];f.option.inESNext()||W("W104",f.tokens.curr,"destructuring expression");var i=function(){var e;if(r.contains(["[","{"],f.tokens.next.value)){t=Yt();for(var s in t)s=t[s],n.push({id:s.id,token:s.token})}else f.tokens.next.value===","?n.push({id:null,token:f.tokens.curr}):f.tokens.next.value==="("?(Z("("),i(),Z(")")):(e=Lt(),e&&n.push({id:e,token:f.tokens.curr}))};if(f.tokens.next.value==="["){Z("["),i();while(f.tokens.next.value!=="]")Z(","),i();Z("]")}else if(f.tokens.next.value==="{"){Z("{"),e=Lt(),f.tokens.next.value===":"?(Z(":"),i()):n.push({id:e,token:f.tokens.curr});while(f.tokens.next.value!=="}")Z(","),e=Lt(),f.tokens.next.value===":"?(Z(":"),i()):n.push({id:e,token:f.tokens.curr});Z("}")}return n}function Zt(e,t){var n=t.first;if(!n)return;r.zip(e,Array.isArray(n)?n:[n]).forEach(function(e){var t=e[0],n=e[1];t&&n?t.first=n:t&&t.first&&!n&&W("W080",t.first,t.first.value)})}function rn(e){return f.option.inESNext()||W("W104",f.tokens.curr,"class"),e?(this.name=Lt(),K(this.name,{type:"unused",token:f.tokens.curr})):f.tokens.next.identifier&&f.tokens.next.value!=="extends"?this.name=Lt():this.name=f.nameStack.infer(),sn(this),this}function sn(e){var t=f.directive["use strict"];f.tokens.next.value==="extends"&&(Z("extends"),e.heritage=nt(10)),f.directive["use strict"]=!0,Z("{"),e.body=on(e),Z("}"),f.directive["use strict"]=t}function on(e){var t,n,r,i={},s={},o;for(var u=0;f.tokens.next.id!=="}";++u){t=f.tokens.next,n=!1,r=null;if(t.id==="[")t=ln();else{if(!qt(t)){W("W052",f.tokens.next,f.tokens.next.value||f.tokens.next.type),Z();continue}Z(),o=!1,t.identifier&&t.value==="static"&&(qt(f.tokens.next)||f.tokens.next.id==="[")&&(o=f.tokens.next.id==="[",n=!0,t=f.tokens.next,f.tokens.next.id==="["?t=ln():Z()),t.identifier&&(t.value==="get"||t.value==="set")&&(qt(f.tokens.next)||f.tokens.next.id==="[")&&(o=f.tokens.next.id==="[",r=t,t=f.tokens.next,f.tokens.next.id==="["?t=ln():Z())}if(!cn(f.tokens.next,["("])){V("E054",f.tokens.next,f.tokens.next.value);while(f.tokens.next.id!=="}"&&!cn(f.tokens.next,["("]))Z();f.tokens.next.value!=="("&&$t(undefined,e,!1,null)}o||(r?fn(r.value,n?s:i,t.value,t,!0,n):(t.value==="constructor"?f.nameStack.set(e):f.nameStack.set(t),an(n?s:i,t.value,t,!0,n)));if(r&&t.value==="constructor"){var a=r.value==="get"?"class getter method":"class setter method";V("E049",t,a,"constructor")}else t.value==="prototype"&&V("E049",t,"class method","prototype");Rt(t),$t(null,e,!1,null)}Gt(i)}function an(e,t,n,i,s){var o=["key","class method","static class method"];o=o[(i||!1)+(s||!1)],n.identifier&&(t=n.value),e[t]&&r.has(e,t)?W("W075",f.tokens.next,o,t):e[t]={},e[t].basic=!0,e[t].basictkn=n}function fn(e,t,n,i,s,o){var u=e==="get"?"getterToken":"setterToken",a="";s?(o&&(a+="static "),a+=e+"ter method"):a="key",f.tokens.curr.accessorType=e,f.nameStack.set(i),t[n]&&r.has(t,n)?(t[n].basic||t[n][u])&&W("W075",f.tokens.next,a,n):t[n]={},t[n][u]=i}function ln(){Z("["),f.option.esnext||W("W119",f.tokens.curr,"computed property names");var e=nt(10);return Z("]"),e}function cn(e,t){return e.type==="(punctuator)"&&r.contains(t,e.value)}function hn(){var e=un();e.notJson?(!f.option.inESNext()&&e.isDestAssign&&W("W104",f.tokens.curr,"destructuring assignment"),_t()):(f.option.laxbreak=!0,f.jsonMode=!0,dn())}function dn(){function e(){var e={},t=f.tokens.next;Z("{");if(f.tokens.next.id!=="}")for(;;){if(f.tokens.next.id==="(end)")V("E026",f.tokens.next,t.line);else{if(f.tokens.next.id==="}"){W("W094",f.tokens.curr);break}f.tokens.next.id===","?V("E028",f.tokens.next):f.tokens.next.id!=="(string)"&&W("W095",f.tokens.next,f.tokens.next.value)}e[f.tokens.next.value]===!0?W("W075",f.tokens.next,f.tokens.next.value):f.tokens.next.value==="__proto__"&&!f.option.proto||f.tokens.next.value==="__iterator__"&&!f.option.iterator?W("W096",f.tokens.next,f.tokens.next.value):e[f.tokens.next.value]=!0,Z(),Z(":"),dn();if(f.tokens.next.id!==",")break;Z(",")}Z("}")}function t(){var e=f.tokens.next;Z("[");if(f.tokens.next.id!=="]")for(;;){if(f.tokens.next.id==="(end)")V("E027",f.tokens.next,e.line);else{if(f.tokens.next.id==="]"){W("W094",f.tokens.curr);break}f.tokens.next.id===","&&V("E028",f.tokens.next)}dn();if(f.tokens.next.id!==",")break;Z(",")}Z("]")}switch(f.tokens.next.id){case"{":e();break;case"[":t();break;case"true":case"false":case"null":case"(number)":case"(string)":Z();break;case"-":Z("-"),Z("(number)");break;default:V("E003",f.tokens.next)}}var e,t={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},n,p,d=["closure","exception","global","label","outer","unused","var"],v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O=[],M=new i.EventEmitter;pt("(number)",function(){return this}),pt("(string)",function(){return this}),f.syntax["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var e=this.value,t=C[e],n,r;if(f.tokens.next.id==="=>")return this;typeof t=="function"?t=undefined:!v["(blockscope)"].current.has(e)&&typeof t=="boolean"&&(n=v,v=m[0],K(e,{type:"var"}),t=v,v=n),r=v["(blockscope)"].getlabel(e);if(v===t||r)switch(r?r[e]["(type)"]:v[e]){case"unused":r?r[e]["(type)"]="var":v[e]="var";break;case"unction":r?r[e]["(type)"]="function":v[e]="function",this["function"]=!0;break;case"const":zt(v,e,{unused:!1});break;case"function":this["function"]=!0;break;case"label":W("W037",f.tokens.curr,e)}else switch(v[e]){case"closure":case"function":case"var":case"unused":W("W038",f.tokens.curr,e);break;case"label":W("W037",f.tokens.curr,e);break;case"outer":case"global":break;default:if(t===!0)v[e]=!0;else if(t===null)W("W039",f.tokens.curr,e),Bt(f.tokens.curr);else if(typeof t!="object")v["(comparray)"].check(e)||U(v,"W117",f.tokens.curr,e),v["(global)"]||(v[e]=!0),Bt(f.tokens.curr);else switch(t[e]){case"function":case"unction":this["function"]=!0,t[e]="closure",v[e]=t["(global)"]?"global":"outer";break;case"var":case"unused":t[e]="closure",v[e]=t["(global)"]?"global":"outer";break;case"const":zt(t,e,{unused:!1});break;case"closure":v[e]=t["(global)"]?"global":"outer";break;case"label":W("W037",f.tokens.curr,e)}}return this},led:function(){V("E033",f.tokens.next,f.tokens.next.value)}},f.syntax["(template)"]={type:"(template)",lbp:0,identifier:!1,fud:Vt},pt("(template middle)",function(){return this}),pt("(template tail)",function(){return this}),pt("(regexp)",function(){return this}),at("(endline)"),at("(begin)"),at("(end)").reach=!0,at("(error)").reach=!0,at("}").reach=!0,at(")"),at("]"),at('"').reach=!0,at("'").reach=!0,at(";"),at(":").reach=!0,at("#"),dt("else"),dt("case").reach=!0,dt("catch"),dt("default").reach=!0,dt("finally"),mt("arguments",function(e){f.directive["use strict"]&&v["(global)"]&&W("E008",e)}),mt("eval"),mt("false"),mt("Infinity"),mt("null"),mt("this",function(e){f.directive["use strict"]&&!It()&&!f.option.validthis&&(v["(statement)"]&&v["(name)"].charAt(0)>"Z"||v["(global)"])&&W("W040",e)}),mt("true"),mt("undefined"),xt("=","assign",20),xt("+=","assignadd",20),xt("-=","assignsub",20),xt("*=","assignmult",20),xt("/=","assigndiv",20).nud=function(){V("E014")},xt("%=","assignmod",20),Nt("&="),Nt("|="),Nt("^="),Nt("<<="),Nt(">>="),Nt(">>>="),gt(",",function(e,t){var n;t.exprs=[e];if(!ot({peek:!0}))return t;for(;;){if(!(n=nt(10)))break;t.exprs.push(n);if(f.tokens.next.value!==","||!ot())break}return t},10,!0),gt("?",function(e,t){return Kt(),t.left=e,t.right=nt(10),Z(":"),t["else"]=nt(10),t},30);var jt=40;gt("||",function(e,t){return Kt(),t.left=e,t.right=nt(jt),t},jt),gt("&&","and",50),Tt("|","bitor",70),Tt("^","bitxor",80),Tt("&","bitand",90),bt("==",function(e,t){var n=f.option.eqnull&&(e.value==="null"||t.value==="null");switch(!0){case!n&&f.option.eqeqeq:this.from=this.character,W("W116",this,"===","==");break;case wt(e):W("W041",this,"===",e.value);break;case wt(t):W("W041",this,"===",t.value);break;case Et(t,e):W("W122",this,t.value);break;case Et(e,t):W("W122",this,e.value)}return this}),bt("===",function(e,t){return Et(t,e)?W("W122",this,t.value):Et(e,t)&&W("W122",this,e.value),this}),bt("!=",function(e,t){var n=f.option.eqnull&&(e.value==="null"||t.value==="null");return!n&&f.option.eqeqeq?(this.from=this.character,W("W116",this,"!==","!=")):wt(e)?W("W041",this,"!==",e.value):wt(t)?W("W041",this,"!==",t.value):Et(t,e)?W("W122",this,t.value):Et(e,t)&&W("W122",this,e.value),this}),bt("!==",function(e,t){return Et(t,e)?W("W122",this,t.value):Et(e,t)&&W("W122",this,e.value),this}),bt("<"),bt(">"),bt("<="),bt(">="),Tt("<<","shiftleft",120),Tt(">>","shiftright",120),Tt(">>>","shiftrightunsigned",120),gt("in","in",120),gt("instanceof","instanceof",120),gt("+",function(e,t){var n=nt(130);return e&&n&&e.id==="(string)"&&n.id==="(string)"?(e.value+=n.value,e.character=n.character,!f.option.scripturl&&a.javascriptURL.test(e.value)&&W("W050",e),e):(t.left=e,t.right=n,t)},130),ht("+","num"),ht("+++",function(){return W("W007"),this.right=nt(150),this.arity="unary",this}),gt("+++",function(e){return W("W007"),this.left=e,this.right=nt(130),this},130),gt("-","sub",130),ht("-","neg"),ht("---",function(){return W("W006"),this.right=nt(150),this.arity="unary",this}),gt("---",function(e){return W("W006"),this.left=e,this.right=nt(130),this},130),gt("*","mult",140),gt("/","div",140),gt("%","mod",140),Ct("++"),ht("++","preinc"),f.syntax["++"].exps=!0,Ct("--"),ht("--","predec"),f.syntax["--"].exps=!0,ht("delete",function(){var e=nt(10);return(!e||e.id!=="."&&e.id!=="[")&&W("W051"),this.first=e,e.identifier&&!f.directive["use strict"]&&(e.forgiveUndef=!0),this}).exps=!0,ht("~",function(){return f.option.bitwise&&W("W052",this,"~"),nt(150),this}),ht("...",function(){return f.option.esnext||W("W119",this,"spread/rest operator"),f.tokens.next.identifier||V("E030",f.tokens.next,f.tokens.next.value),nt(150),this}),ht("!",function(){return this.right=nt(150),this.arity="unary",this.right||R("E041",this.line||0),t[this.right.id]===!0&&W("W018",this,"!"),this}),ht("typeof",function(){var e=nt(150);return this.first=e,e.identifier&&(e.forgiveUndef=!0),this}),ht("new",function(){var e=nt(155),t;if(e&&e.id!=="function")if(e.identifier){e["new"]=!0;switch(e.value){case"Number":case"String":case"Boolean":case"Math":case"JSON":W("W053",f.tokens.prev,e.value);break;case"Symbol":f.option.esnext&&W("W053",f.tokens.prev,e.value);break;case"Function":f.option.evil||W("W054");break;case"Date":case"RegExp":case"this":break;default:e.id!=="function"&&(t=e.value.substr(0,1),f.option.newcap&&(t<"A"||t>"Z")&&!r.has(g,e.value)&&W("W055",f.tokens.curr))}}else e.id!=="."&&e.id!=="["&&e.id!=="("&&W("W056",f.tokens.curr);else f.option.supernew||W("W057",this);return f.tokens.next.id!=="("&&!f.option.supernew&&W("W058",f.tokens.curr,f.tokens.curr.value),this.first=e,this}),f.syntax["new"].exps=!0,ht("void").exps=!0,gt(".",function(e,t){var n=Lt(!1,!0);return typeof n=="string"&&Ht(n),t.left=e,t.right=n,n&&n==="hasOwnProperty"&&f.tokens.next.value==="="&&W("W001"),!e||e.value!=="arguments"||n!=="callee"&&n!=="caller"?!f.option.evil&&e&&e.value==="document"&&(n==="write"||n==="writeln")&&W("W060",e):f.option.noarg?W("W059",e,n):f.directive["use strict"]&&V("E008"),!f.option.evil&&(n==="eval"||n==="execScript")&&W("W061"),t},160,!0),gt("(",function(e,t){f.option.immed&&e&&!e.immed&&e.id==="function"&&W("W062");var n=0,r=[];e&&e.type==="(identifier)"&&e.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&"Number String Boolean Date Object Error Symbol".indexOf(e.value)===-1&&(e.value==="Math"?W("W063",e):f.option.newcap&&W("W064",e));if(f.tokens.next.id!==")")for(;;){r[r.length]=nt(10),n+=1;if(f.tokens.next.id!==",")break;ot()}return Z(")"),typeof e=="object"&&(f.option.inES3()&&e.value==="parseInt"&&n===1&&W("W065",f.tokens.curr),f.option.evil||(e.value==="eval"||e.value==="Function"||e.value==="execScript"?(W("W061",e),r[0]&&[0].id==="(string)"&&J(e,r[0].value)):!r[0]||r[0].id!=="(string)"||e.value!=="setTimeout"&&e.value!=="setInterval"?r[0]&&r[0].id==="(string)"&&e.value==="."&&e.left.value==="window"&&(e.right==="setTimeout"||e.right==="setInterval")&&(W("W066",e),J(e,r[0].value)):(W("W066",e),J(e,r[0].value))),!e.identifier&&e.id!=="."&&e.id!=="["&&e.id!=="("&&e.id!=="&&"&&e.id!=="||"&&e.id!=="?"&&(!f.option.esnext||!e["(name)"])&&W("W067",t)),t.left=e,t},155,!0).exps=!0,ht("(",function(){var e,t=[],n=f.tokens.next,i,s=-1,o,u,a=1;do n.value==="("?a+=1:n.value===")"&&(a-=1),s+=1,i=n,n=G(s);while((a!==0||i.value!==")")&&n.value!==";"&&n.type!=="(end)");f.tokens.next.id==="function"&&(u=f.tokens.next.immed=!0);if(n.value==="=>")return $t(null,null,null,{parsedParen:!0});var l=[];if(f.tokens.next.id!==")")for(;;){if(n.value==="=>"&&r.contains(["{","["],f.tokens.next.value)){e=f.tokens.next,e.left=Yt(),t.push(e);for(var c in e.left)l.push(e.left[c].token)}else l.push(nt(10));if(f.tokens.next.id!==",")break;ot()}Z(")",this),f.option.immed&&l[0]&&l[0].id==="function"&&f.tokens.next.id!=="("&&f.tokens.next.id!=="."&&f.tokens.next.id!=="["&&W("W068",this);if(f.tokens.next.value==="=>")return l;if(!l.length)return;return l.length>1?(o=Object.create(f.syntax[","]),o.exprs=l):o=l[0],o&&(o.paren=!0,o.triggerFnExpr=u),o}),yt("=>"),gt("[",function(e,t){var n=nt(10),r;return n&&n.type==="(string)"&&(!f.option.evil&&(n.value==="eval"||n.value==="execScript")&&W("W061",t),Ht(n.value),!f.option.sub&&a.identifier.test(n.value)&&(r=f.syntax[n.value],(!r||!B(r))&&W("W069",f.tokens.prev,n.value))),Z("]",t),n&&n.value==="hasOwnProperty"&&f.tokens.next.value==="="&&W("W001"),t.left=e,t.right=n,t},160,!0),ht("[",function(){var e=un();if(e.isCompArray)return f.option.inESNext()||W("W119",f.tokens.curr,"array comprehension"),Ft();e.isDestAssign&&!f.option.inESNext()&&W("W104",f.tokens.curr,"destructuring assignment");var t=f.tokens.curr.line!==f.tokens.next.line;this.first=[],t&&(w+=f.option.indent,f.tokens.next.from===w+f.option.indent&&(w+=f.option.indent));while(f.tokens.next.id!=="(end)"){while(f.tokens.next.id===","){if(!f.option.elision){if(!!f.option.inES5()){W("W128");do Z(",");while(f.tokens.next.id===",");continue}W("W070")}Z(",")}if(f.tokens.next.id==="]")break;this.first.push(nt(10));if(f.tokens.next.id!==",")break;ot({allowTrailing:!0});if(f.tokens.next.id==="]"&&!f.option.inES5(!0)){W("W070",f.tokens.curr);break}}return t&&(w-=f.option.indent),Z("]",this),this}),function(e){e.nud=function(){var e,t,n,r,i,s,o,u={};e=f.tokens.curr.line!==f.tokens.next.line,e&&(w+=f.option.indent,f.tokens.next.from===w+f.option.indent&&(w+=f.option.indent));for(;;){if(f.tokens.next.id==="}")break;o=f.tokens.next.value;if(G().id===":"||o!=="get"&&o!=="set"){s=!1,f.tokens.next.value==="*"&&f.tokens.next.type==="(punctuator)"&&(f.option.inESNext()||W("W104",f.tokens.next,"generator functions"),Z("*"),s=!0);if(!f.tokens.next.identifier||Y().id!==","&&Y().id!=="}"){if(f.tokens.next.id==="[")n=ln(),f.nameStack.set(n);else{f.nameStack.set(f.tokens.next),n=Rt(),an(u,n,f.tokens.next);if(typeof n!="string")break}f.tokens.next.value==="("?(f.option.inESNext()||W("W104",f.tokens.curr,"concise methods"),$t(null,undefined,s)):(Z(":"),nt(10))}else f.option.inESNext()||W("W104",f.tokens.next,"object short notation"),n=Rt(!0),an(u,n,f.tokens.next),nt(10)}else Z(o),f.option.inES5()||V("E034"),n=Rt(),!n&&!f.option.inESNext()&&V("E035"),n&&fn(o,u,n,f.tokens.curr),i=f.tokens.next,t=$t(),r=t["(params)"],o==="get"&&n&&r?W("W076",i,r[0],n):o==="set"&&n&&(!r||r.length!==1)&&W("W077",i,n);Ht(n);if(f.tokens.next.id!==",")break;ot({allowTrailing:!0,property:!0}),f.tokens.next.id===","?W("W070",f.tokens.curr):f.tokens.next.id==="}"&&!f.option.inES5(!0)&&W("W070",f.tokens.curr)}return e&&(w-=f.option.indent),Z("}",this),Gt(u),this},e.fud=function(){V("E036",f.tokens.curr)}}(at("{"));var en=ft("const",function(e){var t,n,i;f.option.inESNext()||W("W104",f.tokens.curr,"const"),this.first=[];for(;;){var s=[];r.contains(["{","["],f.tokens.next.value)?(t=Yt(),i=!1):(t=[{id:Lt(),token:f.tokens.curr}],i=!0);for(var o in t)t.hasOwnProperty(o)&&(o=t[o],v[o.id]==="const"&&W("E011",null,o.id),v["(global)"]&&N[o.id]===!1&&W("W079",o.token,o.id),o.id&&(K(o.id,{token:o.token,type:"const",unused:!0}),s.push(o.token)));if(e)break;this.first=this.first.concat(s),f.tokens.next.id!=="="&&W("E012",f.tokens.curr,f.tokens.curr.value),f.tokens.next.id==="="&&(Z("="),f.tokens.next.id==="undefined"&&W("W080",f.tokens.prev,f.tokens.prev.value),G(0).id==="="&&f.tokens.next.identifier&&W("W120",f.tokens.next,f.tokens.next.value),n=nt(10),i?t[0].first=n:Zt(s,n));if(f.tokens.next.id!==",")break;ot()}return this});en.exps=!0;var tn=ft("var",function(e){var t,n,i;this.first=[];for(;;){var s=[];r.contains(["{","["],f.tokens.next.value)?(t=Yt(),n=!1):(t=[{id:Lt(),token:f.tokens.curr}],n=!0);for(var o in t)t.hasOwnProperty(o)&&(o=t[o],f.option.inESNext()&&v[o.id]==="const"&&W("E011",null,o.id),v["(global)"]&&N[o.id]===!1&&W("W079",o.token,o.id),o.id&&(K(o.id,{type:"unused",token:o.token}),s.push(o.token)));if(e)break;this.first=this.first.concat(s),f.tokens.next.id==="="&&(f.nameStack.set(f.tokens.curr),Z("="),f.tokens.next.id==="undefined"&&W("W080",f.tokens.prev,f.tokens.prev.value),G(0).id==="="&&f.tokens.next.identifier&&(!v["(params)"]||v["(params)"].indexOf(f.tokens.next.value)===-1)&&W("W120",f.tokens.next,f.tokens.next.value),i=nt(10),n?t[0].first=i:Zt(s,i));if(f.tokens.next.id!==",")break;ot()}return this});tn.exps=!0;var nn=ft("let",function(e){var t,n,i,s;f.option.inESNext()||W("W104",f.tokens.curr,"let"),f.tokens.next.value==="("?(f.option.inMoz(!0)||W("W118",f.tokens.next,"let block"),Z("("),v["(blockscope)"].stack(),s=!0):v["(nolet)"]&&V("E048",f.tokens.curr),this.first=[];for(;;){var o=[];r.contains(["{","["],f.tokens.next.value)?(t=Yt(),n=!1):(t=[{id:Lt(),token:f.tokens.curr.value}],n=!0);for(var u in t)t.hasOwnProperty(u)&&(u=t[u],f.option.inESNext()&&v[u.id]==="const"&&W("E011",null,u.id),v["(global)"]&&N[u.id]===!1&&W("W079",u.token,u.id),u.id&&!v["(nolet)"]&&(K(u.id,{type:"unused",token:u.token,islet:!0}),o.push(u.token)));if(e)break;this.first=this.first.concat(o),f.tokens.next.id==="="&&(Z("="),f.tokens.next.id==="undefined"&&W("W080",f.tokens.prev,f.tokens.prev.value),G(0).id==="="&&f.tokens.next.identifier&&W("W120",f.tokens.next,f.tokens.next.value),i=nt(10),n?t[0].first=i:Zt(o,i));if(f.tokens.next.id!==",")break;ot()}return s&&(Z(")"),Pt(!0,!0),this.block=!0,v["(blockscope)"].unstack()),this});nn.exps=!0,lt("class",function(){return rn.call(this,!0)}),lt("function",function(){var e=!1;f.tokens.next.value==="*"&&(Z("*"),f.option.inESNext(!0)?e=!0:W("W119",f.tokens.curr,"function*")),b&&W("W082",f.tokens.curr);var t=kt();return t===undefined&&W("W025"),v[t]==="const"&&W("E011",null,t),K(t,{type:"unction",token:f.tokens.curr}),$t(t,{statement:!0},e),f.tokens.next.id==="("&&f.tokens.next.line===f.tokens.curr.line&&V("E039"),this}),ht("function",function(){function i(e){return e[0]!=="("}function s(e){return n[e]==="var"}var e=!1;f.tokens.next.value==="*"&&(f.option.inESNext()||W("W119",f.tokens.curr,"function*"),Z("*"),e=!0);var t=kt(),n=$t(t,undefined,e);return!f.option.loopfunc&&v["(loopage)"]&&r.some(n,function(e,t){return i(t)&&!s(t)})&&W("W083"),this}),lt("if",function(){var e=f.tokens.next;Kt(),f.condition=!0,Z("(");var t=nt(0);Qt(t);var n=null;f.option.forin&&f.forinifcheckneeded&&(f.forinifcheckneeded=!1,n=f.forinifchecks[f.forinifchecks.length-1],t.type==="(punctuator)"&&t.value==="!"?n.type="(negative)":n.type="(positive)"),Z(")",e),f.condition=!1;var r=Pt(!0,!0);return n&&n.type==="(negative)"&&r&&r.length===1&&r[0].type==="(identifier)"&&r[0].value==="continue"&&(n.type="(negative-with-continue)"),f.tokens.next.id==="else"&&(Z("else"),f.tokens.next.id==="if"||f.tokens.next.id==="switch"?Mt():Pt(!0,!0)),this}),lt("try",function(){function t(){var e=C,t;Z("catch"),Z("("),C=Object.create(e),t=f.tokens.next.value,f.tokens.next.type!=="(identifier)"&&(t=null,W("E030",f.tokens.next,t)),Z(),v=Xt("(catch)",f.tokens.next,C,{"(context)":v,"(breakage)":v["(breakage)"],"(loopage)":v["(loopage)"],"(statement)":!1,"(catch)":!0}),t&&K(t,{type:"exception"}),f.tokens.next.value==="if"&&(f.option.inMoz(!0)||W("W118",f.tokens.curr,"catch filter"),Z("if"),nt(0)),Z(")"),f.tokens.curr.funct=v,m.push(v),Pt(!1),C=e,v["(last)"]=f.tokens.curr.line,v["(lastcharacter)"]=f.tokens.curr.character,v=v["(context)"]}var e;Pt(!0);while(f.tokens.next.id==="catch")Kt(),e&&!f.option.inMoz(!0)&&W("W118",f.tokens.next,"multiple catch blocks"),t(),e=!0;if(f.tokens.next.id==="finally"){Z("finally"),Pt(!0);return}return e||V("E021",f.tokens.next,"catch",f.tokens.next.value),this}),lt("while",function(){var e=f.tokens.next;return v["(breakage)"]+=1,v["(loopage)"]+=1,Kt(),Z("("),Qt(nt(0)),Z(")",e),Pt(!0,!0),v["(breakage)"]-=1,v["(loopage)"]-=1,this}).labelled=!0,lt("with",function(){var e=f.tokens.next;return f.directive["use strict"]?V("E010",f.tokens.curr):f.option.withstmt||W("W085",f.tokens.curr),Z("("),nt(0),Z(")",e),Pt(!0,!0),this}),lt("switch",function(){var e=f.tokens.next,t=!1,n=!1;v["(breakage)"]+=1,Z("("),Qt(nt(0)),Z(")",e),e=f.tokens.next,Z("{"),f.tokens.next.from===w&&(n=!0),n||(w+=f.option.indent),this.cases=[];for(;;)switch(f.tokens.next.id){case"case":switch(v["(verb)"]){case"yield":case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:a.fallsThrough.test(f.lines[f.tokens.next.line-2])||W("W086",f.tokens.curr,"case")}Z("case"),this.cases.push(nt(0)),Kt(),t=!0,Z(":"),v["(verb)"]="case";break;case"default":switch(v["(verb)"]){case"yield":case"break":case"continue":case"return":case"throw":break;default:this.cases.length&&(a.fallsThrough.test(f.lines[f.tokens.next.line-2])||W("W086",f.tokens.curr,"default"))}Z("default"),t=!0,Z(":");break;case"}":n||(w-=f.option.indent),Z("}",e),v["(breakage)"]-=1,v["(verb)"]=undefined;return;case"(end)":V("E023",f.tokens.next,"}");return;default:w+=f.option.indent;if(t)switch(f.tokens.curr.id){case",":V("E040");return;case":":t=!1,_t();break;default:V("E025",f.tokens.curr);return}else{if(f.tokens.curr.id!==":"){V("E021",f.tokens.next,"case",f.tokens.next.value);return}Z(":"),V("E024",f.tokens.curr,":"),_t()}w-=f.option.indent}}).labelled=!0,ft("debugger",function(){return f.option.debug||W("W087",this),this}).exps=!0,function(){var e=ft("do",function(){v["(breakage)"]+=1,v["(loopage)"]+=1,Kt(),this.first=Pt(!0,!0),Z("while");var e=f.tokens.next;return Z("("),Qt(nt(0)),Z(")",e),v["(breakage)"]-=1,v["(loopage)"]-=1,this});e.labelled=!0,e.exps=!0}(),lt("for",function(){var e,t=f.tokens.next,n=!1,i=null;t.value==="each"&&(i=t,Z("each"),f.option.inMoz(!0)||W("W118",f.tokens.curr,"for each")),v["(breakage)"]+=1,v["(loopage)"]+=1,Kt(),Z("(");var s,o=0,u=["in","of"];do s=G(o),++o;while(!r.contains(u,s.value)&&s.value!==";"&&s.type!=="(end)");if(r.contains(u,s.value)){!f.option.inESNext()&&s.value==="of"&&V("W104",s,"for of");if(f.tokens.next.id==="var")Z("var"),f.syntax["var"].fud.call(f.syntax["var"].fud,!0);else if(f.tokens.next.id==="let")Z("let"),n=!0,v["(blockscope)"].stack(),f.syntax.let.fud.call(f.syntax.let.fud,!0);else if(!f.tokens.next.identifier)V("E030",f.tokens.next,f.tokens.next.type),Z();else{switch(v[f.tokens.next.value]){case"unused":v[f.tokens.next.value]="var";break;case"var":break;default:var a=f.tokens.next.value;!v["(blockscope)"].getlabel(a)&&!(C[a]||{})[a]&&W("W088",f.tokens.next,f.tokens.next.value)}Z()}Z(s.value),nt(20),Z(")",t),s.value==="in"&&f.option.forin&&(f.forinifcheckneeded=!0,f.forinifchecks===undefined&&(f.forinifchecks=[]),f.forinifchecks.push({type:"(none)"})),e=Pt(!0,!0);if(s.value==="in"&&f.option.forin){if(f.forinifchecks&&f.forinifchecks.length>0){var l=f.forinifchecks.pop();(e&&e.length>0&&(typeof e[0]!="object"||e[0].value!=="if")||l.type==="(positive)"&&e.length>1||l.type==="(negative)")&&W("W089",this)}f.forinifcheckneeded=!1}v["(breakage)"]-=1,v["(loopage)"]-=1}else{i&&V("E045",i);if(f.tokens.next.id!==";")if(f.tokens.next.id==="var")Z("var"),f.syntax["var"].fud.call(f.syntax["var"].fud);else if(f.tokens.next.id==="let")Z("let"),n=!0,v["(blockscope)"].stack(),f.syntax.let.fud.call(f.syntax.let.fud);else for(;;){nt(0,"for");if(f.tokens.next.id!==",")break;ot()}it(f.tokens.curr),Z(";"),f.tokens.next.id!==";"&&Qt(nt(0)),it(f.tokens.curr),Z(";"),f.tokens.next.id===";"&&V("E021",f.tokens.next,")",";");if(f.tokens.next.id!==")")for(;;){nt(0,"for");if(f.tokens.next.id!==",")break;ot()}Z(")",t),Pt(!0,!0),v["(breakage)"]-=1,v["(loopage)"]-=1}return n&&v["(blockscope)"].unstack(),this}).labelled=!0,ft("break",function(){var e=f.tokens.next.value;return v["(breakage)"]===0&&W("W052",f.tokens.next,this.value),f.option.asi||it(this),f.tokens.next.id!==";"&&!f.tokens.next.reach&&f.tokens.curr.line===f.tokens.next.line&&(v[e]!=="label"?W("W090",f.tokens.next,e):C[e]!==v&&W("W091",f.tokens.next,e),this.first=f.tokens.next,Z()),At(this),this}).exps=!0,ft("continue",function(){var e=f.tokens.next.value;return v["(breakage)"]===0&&W("W052",f.tokens.next,this.value),f.option.asi||it(this),f.tokens.next.id!==";"&&!f.tokens.next.reach?f.tokens.curr.line===f.tokens.next.line&&(v[e]!=="label"?W("W090",f.tokens.next,e):C[e]!==v&&W("W091",f.tokens.next,e),this.first=f.tokens.next,Z()):v["(loopage)"]||W("W052",f.tokens.next,this.value),At(this),this}).exps=!0,ft("return",function(){return this.line===f.tokens.next.line?f.tokens.next.id!==";"&&!f.tokens.next.reach&&(this.first=nt(0),this.first&&this.first.type==="(punctuator)"&&this.first.value==="="&&!this.first.paren&&!f.option.boss&&X("W093",this.first.line,this.first.character)):f.tokens.next.type==="(punctuator)"&&["[","{","+","-"].indexOf(f.tokens.next.value)>-1&&it(this),At(this),this}).exps=!0,function(e){e.exps=!0,e.lbp=25}(ht("yield",function(){var e=f.tokens.prev;f.option.inESNext(!0)&&!v["(generator)"]?("(catch)"!==v["(name)"]||!v["(context)"]["(generator)"])&&V("E046",f.tokens.curr,"yield"):f.option.inESNext()||W("W104",f.tokens.curr,"yield"),v["(generator)"]="yielded";var t=!1;f.tokens.next.value==="*"&&(t=!0,Z("*"));if(this.line===f.tokens.next.line||!f.option.inMoz(!0)){if(t||f.tokens.next.id!==";"&&!f.tokens.next.reach&&f.tokens.next.nud)rt(f.tokens.curr,f.tokens.next),this.first=nt(10),this.first.type==="(punctuator)"&&this.first.value==="="&&!this.first.paren&&!f.option.boss&&X("W093",this.first.line,this.first.character);f.option.inMoz(!0)&&f.tokens.next.id!==")"&&(e.lbp>30||!e.assign&&!tt()||e.id==="yield")&&V("E050",this)}else f.option.asi||it(this);return this})),ft("throw",function(){return it(this),this.first=nt(20),At(this),this}).exps=!0,ft("import",function(){f.option.inESNext()||W("W119",f.tokens.curr,"import");if(f.tokens.next.type==="(string)")return Z("(string)"),this;if(f.tokens.next.identifier)this.name=Lt(),K(this.name,{type:"unused",token:f.tokens.curr});else if(f.tokens.next.id==="*")Z("*"),Z("as"),f.tokens.next.identifier&&(this.name=Lt(),K(this.name,{type:"unused",token:f.tokens.curr}));else{Z("{");for(;;){if(f.tokens.next.value==="}"){Z("}");break}var e;f.tokens.next.type==="default"?(e="default",Z("default")):e=Lt(),f.tokens.next.value==="as"&&(Z("as"),e=Lt()),K(e,{type:"unused",token:f.tokens.curr});if(f.tokens.next.value!==","){if(f.tokens.next.value==="}"){Z("}");break}V("E024",f.tokens.next,f.tokens.next.value);break}Z(",")}}return Z("from"),Z("(string)"),this}).exps=!0,ft("export",function(){var e=!0;f.option.inESNext()||(W("W119",f.tokens.curr,"export"),e=!1);if(!v["(global)"]||!v["(blockscope)"].atTop())V("E053",f.tokens.curr),e=!1;if(f.tokens.next.value==="*")return Z("*"),Z("from"),Z("(string)"),this;if(f.tokens.next.type==="default"){f.nameStack.set(f.tokens.next),Z("default");if(f.tokens.next.id==="function"||f.tokens.next.id==="class")this.block=!0;return this.exportee=nt(10),this}if(f.tokens.next.value==="{"){Z("{");for(;;){var t;p[t=Lt(!1,!1,e)]=e,e&&v["(blockscope)"].setExported(t);if(f.tokens.next.value!==","){if(f.tokens.next.value==="}"){Z("}");break}V("E024",f.tokens.next,f.tokens.next.value);break}Z(",")}return this}return f.tokens.next.id==="var"?(Z("var"),p[f.tokens.next.value]=e,f.tokens.next.exported=!0,f.syntax["var"].fud.call(f.syntax["var"].fud)):f.tokens.next.id==="let"?(Z("let"),p[f.tokens.next.value]=e,f.tokens.next.exported=!0,f.syntax.let.fud.call(f.syntax.let.fud)):f.tokens.next.id==="const"?(Z("const"),p[f.tokens.next.value]=e,f.tokens.next.exported=!0,f.syntax["const"].fud.call(f.syntax["const"].fud)):f.tokens.next.id==="function"?(this.block=!0,Z("function"),p[f.tokens.next.value]=e,f.tokens.next.exported=!0,f.syntax["function"].fud()):f.tokens.next.id==="class"?(this.block=!0,Z("class"),p[f.tokens.next.value]=e,f.tokens.next.exported=!0,f.syntax["class"].fud()):V("E024",f.tokens.next,f.tokens.next.value),this}).exps=!0,vt("abstract"),vt("boolean"),vt("byte"),vt("char"),vt("class",{es5:!0,nud:rn}),vt("double"),vt("enum",{es5:!0}),vt("export",{es5:!0}),vt("extends",{es5:!0}),vt("final"),vt("float"),vt("goto"),vt("implements",{es5:!0,strictOnly:!0}),vt("import",{es5:!0}),vt("int"),vt("interface",{es5:!0,strictOnly:!0}),vt("long"),vt("native"),vt("package",{es5:!0,strictOnly:!0}),vt("private",{es5:!0,strictOnly:!0}),vt("protected",{es5:!0,strictOnly:!0}),vt("public",{es5:!0,strictOnly:!0}),vt("short"),vt("static",{es5:!0,strictOnly:!0}),vt("super",{es5:!0}),vt("synchronized"),vt("transient"),vt("volatile");var un=function(){var e,t,n=-1,r=0,i={};cn(f.tokens.curr,["[","{"])&&(r+=1);do{e=n===-1?f.tokens.next:G(n),t=G(n+1),n+=1,cn(e,["[","{"])?r+=1:cn(e,["]","}"])&&(r-=1);if(e.identifier&&e.value==="for"&&r===1){i.isCompArray=!0,i.notJson=!0;break}if(cn(e,["}","]"])&&r===0){if(t.value==="="){i.isDestAssign=!0,i.notJson=!0;break}if(t.value==="."){i.notJson=!0;break}}e.value===";"&&(i.isBlock=!0,i.notJson=!0)}while(r>0&&e.id!=="(end)"&&n<15);return i},pn=function(){function i(e){var t=n.variables.filter(function(t){if(t.value===e)return t.undef=!1,e}).length;return t!==0}function s(e){var t=n.variables.filter(function(t){if(t.value===e&&!t.undef)return t.unused===!0&&(t.unused=!1),e}).length;return t===0}var e=function(){this.mode="use",this.variables=[]},t=[],n;return{stack:function(){n=new e,t.push(n)},unstack:function(){n.variables.filter(function(e){e.unused&&W("W098",e.token,e.raw_text||e.value),e.undef&&U(e.funct,"W117",e.token,e.value)}),t.splice(-1,1),n=t[t.length-1]},setState:function(e){r.contains(["use","define","generate","filter"],e)&&(n.mode=e)},check:function(e){if(!n)return;return n&&n.mode==="use"?(s(e)&&n.variables.push({funct:v,token:f.tokens.curr,value:e,undef:!0,unused:!1}),!0):n&&n.mode==="define"?(i(e)||n.variables.push({funct:v,token:f.tokens.curr,value:e,undef:!1,unused:!0}),!0):n&&n.mode==="generate"?(U(v,"W117",f.tokens.curr,e),!0):n&&n.mode==="filter"?(s(e)&&U(v,"W117",f.tokens.curr,e),!0):!1}}},vn=function(){function n(){for(var t in e)if(e[t]["(type)"]==="unused"&&f.option.unused){var n=e[t]["(token)"];if(n.exported)continue;var r=n.line,i=n.character;X("W098",r,i,t)}}var e={},t=[e];return{stack:function(){e={},t.push(e)},unstack:function(){n(),t.splice(t.length-1,1),e=r.last(t)},getlabel:function(e){for(var n=t.length-1;n>=0;--n)if(r.has(t[n],e)&&!t[n][e]["(shadowed)"])return t[n]},shadow:function(e){for(var n=t.length-1;n>=0;n--)r.has(t[n],e)&&(t[n][e]["(shadowed)"]=!0)},unshadow:function(e){for(var n=t.length-1;n>=0;n--)r.has(t[n],e)&&(t[n][e]["(shadowed)"]=!1)},atTop:function(){return t.length===1},setExported:function(t){if(v["(blockscope)"].atTop()){var n=e[t];n&&n["(token)"]&&(n["(token)"].exported=!0)}},current:{has:function(t){return r.has(e,t)},add:function(t,n,r){e[t]={"(type)":n,"(token)":r,"(shadowed)":!1}}}}},mn=function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},gn=function(t,i,o){function U(e,t){if(!e)return;!Array.isArray(e)&&typeof e=="object"&&(e=Object.keys(e)),e.forEach(t)}var a,l,c,d,H,B,j={},I={};i=r.clone(i),f.reset(),i&&i.scope?h.scope=i.scope:(h.errors=[],h.undefs=[],h.internals=[],h.blacklist={},h.scope="(main)"),N=Object.create(null),F(N,s.ecmaIdentifiers),F(N,s.reservedVars),F(N,o||{}),n=Object.create(null),p=Object.create(null);if(i){U(i.predef||null,function(e){var t,n;e[0]==="-"?(t=e.slice(1),h.blacklist[t]=t,delete N[t]):(n=Object.getOwnPropertyDescriptor(i.predef,e),N[e]=n?n.value:!1)}),U(i.exported||null,function(e){p[e]=!0}),delete i.predef,delete i.exported,B=Object.keys(i);for(c=0;c<B.length;c++)/^-W\d{3}$/g.test(B[c])?I[B[c].slice(1)]=!0:(j[B[c]]=i[B[c]],B[c]==="newcap"&&i[B[c]]===!1&&(j["(explicitNewcap)"]=!0))}f.option=j,f.ignored=I,f.option.indent=f.option.indent||4,f.option.maxerr=f.option.maxerr||50,w=1,g=Object.create(N),C=g,v=Xt("(global)",null,C,{"(global)":!0,"(blockscope)":vn(),"(comparray)":pn(),"(metrics)":Jt(f.tokens.next)}),m=[v],A=[],k=null,x={},T=null,y={},b=!1,E=[],L=[];if(!P(t)&&!Array.isArray(t))return $("E004",0),!1;e={get isJSON(){return f.jsonMode},getOption:function(e){return f.option[e]||null},getCache:function(e){return f.cache[e]},setCache:function(e,t){f.cache[e]=t},warn:function(e,t){X.apply(null,[e,t.line,t.char].concat(t.data))},on:function(e,t){e.split(" ").forEach(function(e){M.on(e,t)}.bind(this))}},M.removeAllListeners(),(O||[]).forEach(function(t){t(e)}),f.tokens.prev=f.tokens.curr=f.tokens.next=f.syntax["(begin)"],i&&i.ignoreDelimiters&&(Array.isArray(i.ignoreDelimiters)||(i.ignoreDelimiters=[i.ignoreDelimiters]),i.ignoreDelimiters.forEach(function(e){if(!e.start||!e.end)return;d=mn(e.start)+"[\\s\\S]*?"+mn(e.end),H=new RegExp(d,"ig"),t=t.replace(H,function(e){return e.replace(/./g," ")})})),S=new u(t),S.on("warning",function(e){X.apply(null,[e.code,e.line,e.character].concat(e.data))}),S.on("error",function(e){$.apply(null,[e.code,e.line,e.character].concat(e.data))}),S.on("fatal",function(e){R("E041",e.line,e.from)}),S.on("Identifier",function(e){M.emit("Identifier",e)}),S.on("String",function(e){M.emit("String",e)}),S.on("Number",function(e){M.emit("Number",e)}),S.start();for(var z in i)r.has(i,z)&&D(z,f.tokens.curr);q(),F(N,o||{}),ot.first=!0;try{Z();switch(f.tokens.next.id){case"{":case"[":hn();break;default:Dt(),f.directive["use strict"]&&(f.option.globalstrict||f.option.node||f.option.phantom||f.option.browserify||W("W097",f.tokens.prev)),_t()}Z(f.tokens.next&&f.tokens.next.value!=="."?"(end)":undefined),v["(blockscope)"].unstack();var V=function(e,t){do{if(typeof t[e]=="string")return t[e]==="unused"?t[e]="var":t[e]==="unction"&&(t[e]="closure"),!0;t=t["(context)"]}while(t);return!1},J=function(e,t){if(!y[e])return;var n=[];for(var r=0;r<y[e].length;r+=1)y[e][r]!==t&&n.push(y[e][r]);n.length===0?delete y[e]:y[e]=n},K=function(e,t,n,r){var i=t.line,s=t.from,o=t.raw_text||e;r===undefined&&(r=f.option.unused),r===!0&&(r="last-param");var u={vars:["var"],"last-param":["var","param"],strict:["var","param","last-param"]};r&&u[r]&&u[r].indexOf(n)!==-1&&(t.exported||X("W098",i,s,o)),L.push({name:e,line:i,character:s})},Q=function(e,t){var n=e[t],i=e["(tokens)"][t];if(t.charAt(0)==="(")return;if(n!=="unused"&&n!=="unction"&&n!=="const")return;if(e["(params)"]&&e["(params)"].indexOf(t)!==-1)return;if(e["(global)"]&&r.has(p,t))return;if(n==="const"&&!Wt(e,t,"unused"))return;K(t,i,"var")};for(a=0;a<h.undefs.length;a+=1)l=h.undefs[a].slice(0),V(l[2].value,l[0])||l[2].forgiveUndef?J(l[2].value,l[2].line):f.option.undef&&W.apply(W,l.slice(1));m.forEach(function(e){if(e["(unusedOption)"]===!1)return;for(var t in e)r.has(e,t)&&Q(e,t);if(!e["(params)"])return;var n=e["(params)"].slice(),i=n.pop(),s,o;while(i){s=e[i],o=e["(unusedOption)"]||f.option.unused,o=o===!0?"last-param":o;if(i==="undefined")return;if(s==="unused"||s==="unction")K(i,e["(tokens)"][i],"param",e["(unusedOption)"]);else if(o==="last-param")return;i=n.pop()}});for(var G in n)r.has(n,G)&&!r.has(g,G)&&!r.has(p,G)&&K(G,n[G],"var")}catch(Y){if(!Y||Y.name!=="JSHintError")throw Y;var et=f.tokens.next||{};h.errors.push({scope:"(main)",raw:Y.raw,code:Y.code,reason:Y.message,line:Y.line||et.line,character:Y.character||et.from},null)}if(h.scope==="(main)"){i=i||{};for(a=0;a<h.internals.length;a+=1)l=h.internals[a],i.scope=l.elem,gn(l.value,i,o)}return h.errors.length===0};return gn.addModule=function(e){O.push(e)},gn.addModule(l.register),gn.data=function(){var e={functions:[],options:f.option},t=[],n=[],i,s,o,u,a,l;gn.errors.length&&(e.errors=gn.errors),f.jsonMode&&(e.json=!0);for(a in y)r.has(y,a)&&t.push({name:a,line:y[a]});t.length>0&&(e.implieds=t),A.length>0&&(e.urls=A),l=Object.keys(C),l.length>0&&(e.globals=l);for(o=1;o<m.length;o+=1){s=m[o],i={};for(u=0;u<d.length;u+=1)i[d[u]]=[];for(u=0;u<d.length;u+=1)i[d[u]].length===0&&delete i[d[u]];i.name=s["(name)"],i.param=s["(params)"],i.line=s["(line)"],i.character=s["(character)"],i.last=s["(last)"],i.lastcharacter=s["(lastcharacter)"],i.metrics={complexity:s["(metrics)"].ComplexityCount,parameters:(s["(params)"]||[]).length,statements:s["(metrics)"].statementCount},e.functions.push(i)}L.length>0&&(e.unused=L),n=[];for(a in x)if(typeof x[a]=="number"){e.member=x;break}return e},gn.jshint=gn,gn}();typeof n=="object"&&n&&(n.JSHINT=h)},{"./lex.js":4,"./messages.js":5,"./options.js":7,"./reg.js":8,"./state.js":9,"./style.js":10,"./vars.js":11,events:12,underscore:2}],4:[function(e,t,n){"use strict";function c(){var e=[];return{push:function(t){e.push(t)},check:function(){for(var t=0;t<e.length;++t)e[t]();e.splice(0,e.length)}}}function h(e){var t=e;typeof t=="string"&&(t=t.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n")),t[0]&&t[0].substr(0,2)==="#!"&&(t[0].indexOf("node")!==-1&&(o.option.node=!0),t[0]=""),this.emitter=new i.EventEmitter,this.source=e,this.setLines(t),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input="",this.inComment=!1,this.inTemplate=!1,this.templateLine=null,this.templateChar=null;for(var n=0;n<o.option.indent;n+=1)o.tab+=" "}var r=e("underscore"),i=e("events"),s=e("./reg.js"),o=e("./state.js").state,u=e("../data/ascii-identifier-data.js"),a=u.asciiIdentifierStartTable,f=u.asciiIdentifierPartTable,l={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12};h.prototype={_lines:[],getLines:function(){return this._lines=o.lines,this._lines},setLines:function(e){this._lines=e,o.lines=this._lines},peek:function(e){return this.input.charAt(e||0)},skip:function(e){e=e||1,this.char+=e,this.input=this.input.slice(e)},on:function(e,t){e.split(" ").forEach(function(e){this.emitter.on(e,t)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(e,t,n,r){n.push(function(){r()&&this.trigger(e,t)}.bind(this))},scanPunctuator:function(){var e=this.peek(),t,n,r;switch(e){case".":if(/^[0-9]$/.test(this.peek(1)))return null;if(this.peek(1)==="."&&this.peek(2)===".")return{type:l.Punctuator,value:"..."};case"(":case")":case";":case",":case"{":case"}":case"[":case"]":case":":case"~":case"?":return{type:l.Punctuator,value:e};case"#":return{type:l.Punctuator,value:e};case"":return null}return t=this.peek(1),n=this.peek(2),r=this.peek(3),e===">"&&t===">"&&n===">"&&r==="="?{type:l.Punctuator,value:">>>="}:e==="="&&t==="="&&n==="="?{type:l.Punctuator,value:"==="}:e==="!"&&t==="="&&n==="="?{type:l.Punctuator,value:"!=="}:e===">"&&t===">"&&n===">"?{type:l.Punctuator,value:">>>"}:e==="<"&&t==="<"&&n==="="?{type:l.Punctuator,value:"<<="}:e===">"&&t===">"&&n==="="?{type:l.Punctuator,value:">>="}:e==="="&&t===">"?{type:l.Punctuator,value:e+t}:e===t&&"+-<>&|".indexOf(e)>=0?{type:l.Punctuator,value:e+t}:"<>=!+-*%&|^".indexOf(e)>=0?t==="="?{type:l.Punctuator,value:e+t}:{type:l.Punctuator,value:e}:e==="/"?t==="="?{type:l.Punctuator,value:"/="}:{type:l.Punctuator,value:"/"}:null},scanComments:function(){function s(e,t,n){var r=["jshint","jslint","members","member","globals","global","exported"],i=!1,s=e+t,o="plain";return n=n||{},n.isMultiline&&(s+="*/"),t=t.replace(/\n/g," "),r.forEach(function(n){if(i)return;if(e==="//"&&n!=="jshint")return;t.charAt(n.length)===" "&&t.substr(0,n.length)===n&&(i=!0,e+=n,t=t.substr(n.length)),!i&&t.charAt(0)===" "&&t.charAt(n.length+1)===" "&&t.substr(1,n.length)===n&&(i=!0,e=e+" "+n,t=t.substr(n.length+1));if(!i)return;switch(n){case"member":o="members";break;case"global":o="globals";break;default:o=n}}),{type:l.Comment,commentType:o,value:s,body:t,isSpecial:i,isMultiline:n.isMultiline||!1,isMalformed:n.isMalformed||!1}}var e=this.peek(),t=this.peek(1),n=this.input.substr(2),r=this.line,i=this.char;if(e==="*"&&t==="/")return this.trigger("error",{code:"E018",line:r,character:i}),this.skip(2),null;if(e!=="/"||t!=="*"&&t!=="/")return null;if(t==="/")return this.skip(this.input.length),s("//",n);var o="";if(t==="*"){this.inComment=!0,this.skip(2);while(this.peek()!=="*"||this.peek(1)!=="/")if(this.peek()===""){o+="\n";if(!this.nextLine())return this.trigger("error",{code:"E017",line:r,character:i}),this.inComment=!1,s("/*",o,{isMultiline:!0,isMalformed:!0})}else o+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,s("/*",o,{isMultiline:!0})}},scanKeyword:function(){var e=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),t=["if","in","do","var","for","new","try","let","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];return e&&t.indexOf(e[0])>=0?{type:l.Keyword,value:e[0]}:null},scanIdentifier:function(){function i(e){return e>256}function s(e){return e>256}function o(e){return/^[0-9a-fA-F]$/.test(e)}function p(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,function(e,t){return String.fromCharCode(parseInt(t,16))})}var e="",t=0,n,r,u=function(){t+=1;if(this.peek(t)!=="u")return null;var e=this.peek(t+1),n=this.peek(t+2),r=this.peek(t+3),i=this.peek(t+4),u;return o(e)&&o(n)&&o(r)&&o(i)?(u=parseInt(e+n+r+i,16),f[u]||s(u)?(t+=5,"\\u"+e+n+r+i):null):null}.bind(this),c=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?a[n]?(t+=1,e):null:i(n)?(t+=1,e):null}.bind(this),h=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?f[n]?(t+=1,e):null:s(n)?(t+=1,e):null}.bind(this);r=c();if(r===null)return null;e=r;for(;;){r=h();if(r===null)break;e+=r}switch(e){case"true":case"false":n=l.BooleanLiteral;break;case"null":n=l.NullLiteral;break;default:n=l.Identifier}return{type:n,value:p(e),text:e,tokenLength:e.length}},scanNumericLiteral:function(){function f(e){return/^[0-9]$/.test(e)}function c(e){return/^[0-7]$/.test(e)}function h(e){return/^[01]$/.test(e)}function p(e){return/^[0-9a-fA-F]$/.test(e)}function d(e){return e==="$"||e==="_"||e==="\\"||e>="a"&&e<="z"||e>="A"&&e<="Z"}var e=0,t="",n=this.input.length,r=this.peek(e),i,s=f,u=10,a=!1;if(r!=="."&&!f(r))return null;if(r!=="."){t=this.peek(e),e+=1,r=this.peek(e);if(t==="0"){if(r==="x"||r==="X")s=p,u=16,e+=1,t+=r;if(r==="o"||r==="O")s=c,u=8,o.option.esnext||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Octal integer literal"]}),e+=1,t+=r;if(r==="b"||r==="B")s=h,u=2,o.option.esnext||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Binary integer literal"]}),e+=1,t+=r;c(r)&&(s=c,u=8,a=!0,i=!1,e+=1,t+=r),!c(r)&&f(r)&&(e+=1,t+=r)}while(e<n){r=this.peek(e);if(a&&f(r))i=!0;else if(!s(r))break;t+=r,e+=1}if(s!==f){if(!a&&t.length<=2)return{type:l.NumericLiteral,value:t,isMalformed:!0};if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isLegacy:a,isMalformed:!1}}}if(r==="."){t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(r==="e"||r==="E"){t+=r,e+=1,r=this.peek(e);if(r==="+"||r==="-")t+=this.peek(e),e+=1;r=this.peek(e);if(!f(r))return null;t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isMalformed:!isFinite(t)}},scanEscapeSequence:function(e){var t=!1,n=1;this.skip();var r=this.peek();switch(r){case"'":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\'"]},e,function(){return o.jsonMode});break;case"b":r="\\b";break;case"f":r="\\f";break;case"n":r="\\n";break;case"r":r="\\r";break;case"t":r="\\t";break;case"0":r="\\0";var i=parseInt(this.peek(1),10);this.triggerAsync("warning",{code:"W115",line:this.line,character:this.char},e,function(){return i>=0&&i<=7&&o.directive["use strict"]});break;case"u":r=String.fromCharCode(parseInt(this.input.substr(1,4),16)),n=5;break;case"v":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\v"]},e,function(){return o.jsonMode}),r="";break;case"x":var s=parseInt(this.input.substr(1,2),16);this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\x-"]},e,function(){return o.jsonMode}),r=String.fromCharCode(s),n=3;break;case"\\":r="\\\\";break;case'"':r='\\"';break;case"/":break;case"":t=!0,r=""}return{"char":r,jump:n,allowNewLine:t}},scanTemplateLiteral:function(e){var t,n="",r;if(!this.inTemplate){if(!o.option.esnext||this.peek()!=="`")return null;this.templateLine=this.line,this.templateChar=this.char,this.skip(1)}else if(this.peek()!=="}")return null;while(this.peek()!=="`"){while((r=this.peek())==="")if(!this.nextLine())return t=this.inTemplate?l.TemplateHead:l.TemplateMiddle,this.inTemplate=!1,this.trigger("error",{code:"E052",line:this.templateLine,character:this.templateChar}),{type:t,value:n,isUnclosed:!0};if(r==="$"&&this.peek(1)==="{")return n+="${",t=n.charAt(0)==="}"?l.TemplateMiddle:l.TemplateHead,this.skip(2),this.inTemplate=!0,{type:t,value:n,isUnclosed:!1};if(r==="\\"){var i=this.scanEscapeSequence(e);n+=i.char,this.skip(i.jump)}else{if(r==="`")break;n+=r,this.skip(1)}}return t=this.inTemplate?l.TemplateTail:l.StringLiteral,this.inTemplate=!1,this.skip(1),{type:t,value:n,isUnclosed:!1,quote:"`"}},scanStringLiteral:function(e){var t=this.peek();if(t!=='"'&&t!=="'")return null;this.triggerAsync("warning",{code:"W108",line:this.line,character:this.char},e,function(){return o.jsonMode&&t!=='"'});var n="",r=this.line,i=this.char,s=!1;this.skip();e:while(this.peek()!==t){while(this.peek()===""){s?(s=!1,this.triggerAsync("warning",{code:"W043",line:this.line,character:this.char},e,function(){return!o.option.multistr}),this.triggerAsync("warning",{code:"W042",line:this.line,character:this.char},e,function(){return o.jsonMode&&o.option.multistr})):this.trigger("warning",{code:"W112",line:this.line,character:this.char});if(!this.nextLine())return this.trigger("error",{code:"E029",line:r,character:i}),{type:l.StringLiteral,value:n,isUnclosed:!0,quote:t};if(this.peek()==t)break e}s=!1;var u=this.peek(),a=1;u<" "&&this.trigger("warning",{code:"W113",line:this.line,character:this.char,data:["<non-printable>"]});if(u==="\\"){var f=this.scanEscapeSequence(e);u=f.char,a=f.jump,s=f.allowNewLine}n+=u,this.skip(a)}return this.skip(),{type:l.StringLiteral,value:n,isUnclosed:!1,quote:t}},scanRegExp:function(){var e=0,t=this.input.length,n=this.peek(),r=n,i="",s=[],o=!1,u=!1,a,f=function(){n<" "&&(o=!0,this.trigger("warning",{code:"W048",line:this.line,character:this.char})),n==="<"&&(o=!0,this.trigger("warning",{code:"W049",line:this.line,character:this.char,data:[n]}))}.bind(this);if(!this.prereg||n!=="/")return null;e+=1,a=!1;while(e<t){n=this.peek(e),r+=n,i+=n;if(u){n==="]"&&(this.peek(e-1)!=="\\"||this.peek(e-2)==="\\")&&(u=!1),n==="\\"&&(e+=1,n=this.peek(e),i+=n,r+=n,f()),e+=1;continue}if(n==="\\"){e+=1,n=this.peek(e),i+=n,r+=n,f();if(n==="/"){e+=1;continue}if(n==="["){e+=1;continue}}if(n==="["){u=!0,e+=1;continue}if(n==="/"){i=i.substr(0,i.length-1),a=!0,e+=1;break}e+=1}if(!a)return this.trigger("error",{code:"E015",line:this.line,character:this.from}),void this.trigger("fatal",{line:this.line,from:this.from});while(e<t){n=this.peek(e);if(!/[gim]/.test(n))break;s.push(n),r+=n,e+=1}try{new RegExp(i,s.join(""))}catch(c){o=!0,this.trigger("error",{code:"E016",line:this.line,character:this.char,data:[c.message]})}return{type:l.RegExp,value:r,flags:s,isMalformed:o}},scanNonBreakingSpaces:function(){return o.option.nonbsp?this.input.search(/(\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(s.unsafeChars)},next:function(e){this.from=this.char;var t;if(/\s/.test(this.peek())){t=this.char;while(/\s/.test(this.peek()))this.from+=1,this.skip()}var n=this.scanComments()||this.scanStringLiteral(e)||this.scanTemplateLiteral(e);return n?n:(n=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),n?(this.skip(n.tokenLength||n.value.length),n):null)},nextLine:function(){var e;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var t=this.input.trim(),n=function(){return r.some(arguments,function(e){return t.indexOf(e)===0})},i=function(){return r.some(arguments,function(e){return t.indexOf(e,t.length-e.length)!==-1})};o.ignoreLinterErrors===!0&&!n("/*","//")&&(!this.inComment||!i("*/"))&&(this.input=""),e=this.scanNonBreakingSpaces(),e>=0&&this.trigger("warning",{code:"W125",line:this.line,character:e+1}),this.input=this.input.replace(/\t/g,o.tab),e=this.scanUnsafeChars(),e>=0&&this.trigger("warning",{code:"W100",line:this.line,character:e});if(o.option.maxlen&&o.option.maxlen<this.input.length){var u=this.inComment||n.call(t,"//")||n.call(t,"/*"),a=!u||!s.maxlenException.test(t);a&&this.trigger("warning",{code:"W101",line:this.line,character:this.input.length})}return!0},start:function(){this.nextLine()},token:function(){function n(e,t){if(!e.reserved)return!1;var n=e.meta;if(n&&n.isFutureReservedWord&&o.option.inES5()){if(!n.es5)return!1;if(n.strictOnly&&!o.option.strict&&!o.directive["use strict"])return!1;if(t)return!1}return!0}var e=c(),t,i=function(t,i,s,u){var a;t!=="(endline)"&&t!=="(end)"&&(this.prereg=!1);if(t==="(punctuator)"){switch(i){case".":case")":case"~":case"#":case"]":case"++":case"--":this.prereg=!1;break;default:this.prereg=!0}a=Object.create(o.syntax[i]||o.syntax["(error)"])}if(t==="(identifier)"){if(i==="return"||i==="case"||i==="typeof")this.prereg=!0;r.has(o.syntax,i)&&(a=Object.create(o.syntax[i]||o.syntax["(error)"]),n(a,s&&t==="(identifier)")||(a=null))}return a||(a=Object.create(o.syntax[t])),a.identifier=t==="(identifier)",a.type=a.type||t,a.value=i,a.line=this.line,a.character=this.char,a.from=this.from,a.identifier&&u&&(a.raw_text=u.text||u.value),s&&a.identifier&&(a.isProperty=s),a.check=e.check,a}.bind(this);for(;;){if(!this.input.length)return i(this.nextLine()?"(endline)":"(end)","");t=this.next(e);if(!t){this.input.length&&(this.trigger("error",{code:"E024",line:this.line,character:this.char,data:[this.peek()]}),this.input="");continue}switch(t.type){case l.StringLiteral:return this.triggerAsync("String",{line:this.line,"char":this.char,from:this.from,value:t.value,quote:t.quote},e,function(){return!0}),i("(string)",t.value);case l.TemplateHead:return this.trigger("TemplateHead",{line:this.line,"char":this.char,from:this.from,value:t.value}),i("(template)",t.value);case l.TemplateMiddle:return this.trigger("TemplateMiddle",{line:this.line,"char":this.char,from:this.from,value:t.value}),i("(template middle)",t.value);case l.TemplateTail:return this.trigger("TemplateTail",{line:this.line,"char":this.char,from:this.from,value:t.value}),i("(template tail)",t.value);case l.Identifier:this.trigger("Identifier",{line:this.line,"char":this.char,from:this.form,name:t.value,raw_name:t.text,isProperty:o.tokens.curr.id==="."});case l.Keyword:case l.NullLiteral:case l.BooleanLiteral:return i("(identifier)",t.value,o.tokens.curr.id===".",t);case l.NumericLiteral:return t.isMalformed&&this.trigger("warning",{code:"W045",line:this.line,character:this.char,data:[t.value]}),this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["0x-"]},e,function(){return t.base===16&&o.jsonMode}),this.triggerAsync("warning",{code:"W115",line:this.line,character:this.char},e,function(){return o.directive["use strict"]&&t.base===8&&t.isLegacy}),this.trigger("Number",{line:this.line,"char":this.char,from:this.from,value:t.value,base:t.base,isMalformed:t.malformed}),i("(number)",t.value);case l.RegExp:return i("(regexp)",t.value);case l.Comment:o.tokens.curr.comment=!0;if(t.isSpecial)return{id:"(comment)",value:t.value,body:t.body,type:t.commentType,isSpecial:t.isSpecial,line:this.line,character:this.char,from:this.from};break;case"":break;default:return i("(punctuator)",t.value)}}}},n.Lexer=h},{"../data/ascii-identifier-data.js":1,"./reg.js":8,"./state.js":9,events:12,underscore:2}],5:[function(e,t,n){"use strict";var r=e("underscore"),i={E001:"Bad option: '{a}'.",E002:"Bad option value.",E003:"Expected a JSON value.",E004:"Input is neither a string nor an array of strings.",E005:"Input is empty.",E006:"Unexpected early end of program.",E007:'Missing "use strict" statement.',E008:"Strict violation.",E009:"Option 'validthis' can't be used in a global scope.",E010:"'with' is not allowed in strict mode.",E011:"const '{a}' has already been declared.",E012:"const '{a}' is initialized to 'undefined'.",E013:"Attempting to override '{a}' which is a constant.",E014:"A regular expression literal can be confused with '/='.",E015:"Unclosed regular expression.",E016:"Invalid regular expression.",E017:"Unclosed comment.",E018:"Unbegun comment.",E019:"Unmatched '{a}'.",E020:"Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",E021:"Expected '{a}' and instead saw '{b}'.",E022:"Line breaking error '{a}'.",E023:"Missing '{a}'.",E024:"Unexpected '{a}'.",E025:"Missing ':' on a case clause.",E026:"Missing '}' to match '{' from line {a}.",E027:"Missing ']' to match '[' from line {a}.",E028:"Illegal comma.",E029:"Unclosed string.",E030:"Expected an identifier and instead saw '{a}'.",E031:"Bad assignment.",E032:"Expected a small integer or 'false' and instead saw '{a}'.",E033:"Expected an operator and instead saw '{a}'.",E034:"get/set are ES5 features.",E035:"Missing property name.",E036:"Expected to see a statement and instead saw a block.",E037:null,E038:null,E039:"Function declarations are not invocable. Wrap the whole function invocation in parens.",E040:"Each value should have its own case label.",E041:"Unrecoverable syntax error.",E042:"Stopping.",E043:"Too many errors.",E044:null,E045:"Invalid for each loop.",E046:"A yield statement shall be within a generator function (with syntax: `function*`)",E047:null,E048:"Let declaration not directly within block.",E049:"A {a} cannot be named '{b}'.",E050:"Mozilla requires the yield expression to be parenthesized here.",E051:"Regular parameters cannot come after default parameters.",E052:"Unclosed template literal.",E053:"Export declaration must be in global scope.",E054:"Class properties must be methods. Expected '(' but instead saw '{a}'."},s={W001:"'hasOwnProperty' is a really bad name.",W002:"Value of '{a}' may be overwritten in IE 8 and earlier.",W003:"'{a}' was used before it was defined.",W004:"'{a}' is already defined.",W005:"A dot following a number can be confused with a decimal point.",W006:"Confusing minuses.",W007:"Confusing plusses.",W008:"A leading decimal point can be confused with a dot: '{a}'.",W009:"The array literal notation [] is preferable.",W010:"The object literal notation {} is preferable.",W011:null,W012:null,W013:null,W014:"Bad line breaking before '{a}'.",W015:null,W016:"Unexpected use of '{a}'.",W017:"Bad operand.",W018:"Confusing use of '{a}'.",W019:"Use the isNaN function to compare with NaN.",W020:"Read only.",W021:"'{a}' is a function.",W022:"Do not assign to the exception parameter.",W023:"Expected an identifier in an assignment and instead saw a function invocation.",W024:"Expected an identifier and instead saw '{a}' (a reserved word).",W025:"Missing name in function declaration.",W026:"Inner functions should be listed at the top of the outer function.",W027:"Unreachable '{a}' after '{b}'.",W028:"Label '{a}' on {b} statement.",W030:"Expected an assignment or function call and instead saw an expression.",W031:"Do not use 'new' for side effects.",W032:"Unnecessary semicolon.",W033:"Missing semicolon.",W034:'Unnecessary directive "{a}".',W035:"Empty block.",W036:"Unexpected /*member '{a}'.",W037:"'{a}' is a statement label.",W038:"'{a}' used out of scope.",W039:"'{a}' is not allowed.",W040:"Possible strict violation.",W041:"Use '{a}' to compare with '{b}'.",W042:"Avoid EOL escaping.",W043:"Bad escaping of EOL. Use option multistr if needed.",W044:"Bad or unnecessary escaping.",W045:"Bad number '{a}'.",W046:"Don't use extra leading zeros '{a}'.",W047:"A trailing decimal point can be confused with a dot: '{a}'.",W048:"Unexpected control character in regular expression.",W049:"Unexpected escaped character '{a}' in regular expression.",W050:"JavaScript URL.",W051:"Variables should not be deleted.",W052:"Unexpected '{a}'.",W053:"Do not use {a} as a constructor.",W054:"The Function constructor is a form of eval.",W055:"A constructor name should start with an uppercase letter.",W056:"Bad constructor.",W057:"Weird construction. Is 'new' necessary?",W058:"Missing '()' invoking a constructor.",W059:"Avoid arguments.{a}.",W060:"document.write can be a form of eval.",W061:"eval can be harmful.",W062:"Wrap an immediate function invocation in parens to assist the reader in understanding that the expression is the result of a function, and not the function itself.",W063:"Math is not a function.",W064:"Missing 'new' prefix when invoking a constructor.",W065:"Missing radix parameter.",W066:"Implied eval. Consider passing a function instead of a string.",W067:"Bad invocation.",W068:"Wrapping non-IIFE function literals in parens is unnecessary.",W069:"['{a}'] is better written in dot notation.",W070:"Extra comma. (it breaks older versions of IE)",W071:"This function has too many statements. ({a})",W072:"This function has too many parameters. ({a})",W073:"Blocks are nested too deeply. ({a})",W074:"This function's cyclomatic complexity is too high. ({a})",W075:"Duplicate {a} '{b}'.",W076:"Unexpected parameter '{a}' in get {b} function.",W077:"Expected a single parameter in set {a} function.",W078:"Setter is defined without getter.",W079:"Redefinition of '{a}'.",W080:"It's not necessary to initialize '{a}' to 'undefined'.",W081:null,W082:"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",W083:"Don't make functions within a loop.",W084:"Assignment in conditional expression",W085:"Don't use 'with'.",W086:"Expected a 'break' statement before '{a}'.",W087:"Forgotten 'debugger' statement?",W088:"Creating global 'for' variable. Should be 'for (var {a} ...'.",W089:"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",W090:"'{a}' is not a statement label.",W091:"'{a}' is out of scope.",W093:"Did you mean to return a conditional instead of an assignment?",W094:"Unexpected comma.",W095:"Expected a string and instead saw {a}.",W096:"The '{a}' key may produce unexpected results.",W097:'Use the function form of "use strict".',W098:"'{a}' is defined but never used.",W099:null,W100:"This character may get silently deleted by one or more browsers.",W101:"Line is too long.",W102:null,W103:"The '{a}' property is deprecated.",W104:"'{a}' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).",W105:"Unexpected {a} in '{b}'.",W106:"Identifier '{a}' is not in camel case.",W107:"Script URL.",W108:"Strings must use doublequote.",W109:"Strings must use singlequote.",W110:"Mixed double and single quotes.",W112:"Unclosed string.",W113:"Control character in string: {a}.",W114:"Avoid {a}.",W115:"Octal literals are not allowed in strict mode.",W116:"Expected '{a}' and instead saw '{b}'.",W117:"'{a}' is not defined.",W118:"'{a}' is only available in Mozilla JavaScript extensions (use moz option).",W119:"'{a}' is only available in ES6 (use esnext option).",W120:"You might be leaking a variable ({a}) here.",W121:"Extending prototype of native object: '{a}'.",W122:"Invalid typeof value '{a}'",W123:"'{a}' is already defined in outer scope.",W124:"A generator function shall contain a yield statement.",W125:"This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp",W126:"Grouping operator is unnecessary for lone expressions.",W127:"Unexpected use of a comma operator.",W128:"Empty array elements require elision=true."},o={I001:"Comma warnings can be turned off with 'laxcomma'.",I002:null,I003:"ES5 option is now set per default"};n.errors={},n.warnings={},n.info={},r.each(i,function(e,t){n.errors[t]={code:t,desc:e}}),r.each(s,function(e,t){n.warnings[t]={code:t,desc:e}}),r.each(o,function(e,t){n.info[t]={code:t,desc:e}})},{underscore:2}],6:[function(e,t,n){"use strict";function r(){this._stack=[]}Object.defineProperty(r.prototype,"length",{get:function(){return this._stack.length}}),r.prototype.push=function(){this._stack.push(null)},r.prototype.pop=function(){this._stack.pop()},r.prototype.set=function(e){this._stack[this.length-1]=e},r.prototype.infer=function(){var e=this._stack[this.length-1],t="",n;if(!e||e.type==="class")e=this._stack[this.length-2];return e?(n=e.type,n!=="(string)"&&n!=="(number)"&&n!=="(identifier)"&&n!=="default"?"(expression)":(e.accessorType&&(t=e.accessorType+" "),t+e.value)):"(empty)"},t.exports=r},{}],7:[function(e,t,n){"use strict";n.bool={enforcing:{bitwise:!0,freeze:!0,camelcase:!0,curly:!0,eqeqeq:!0,notypeof:!0,es3:!0,es5:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,newcap:!0,noarg:!0,nocomma:!0,noempty:!0,nonbsp:!0,nonew:!0,undef:!0,singleGroups:!1,enforceall:!1},relaxing:{asi:!0,multistr:!0,debug:!0,boss:!0,phantom:!0,evil:!0,plusplus:!0,proto:!0,scripturl:!0,strict:!0,sub:!0,supernew:!0,laxbreak:!0,laxcomma:!0,validthis:!0,withstmt:!0,moz:!0,noyield:!0,eqnull:!0,lastsemic:!0,loopfunc:!0,expr:!0,esnext:!0,elision:!0},environments:{mootools:!0,couch:!0,jasmine:!0,jquery:!0,node:!0,qunit:!0,rhino:!0,shelljs:!0,prototypejs:!0,yui:!0,mocha:!0,wsh:!0,worker:!0,nonstandard:!0,browser:!0,browserify:!0,devel:!0,dojo:!0,typed:!0},obsolete:{onecase:!0,regexp:!0,regexdash:!0}},n.val={maxlen:!1,indent:!1,maxerr:!1,predef:!1,globals:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1,shadow:!1,unused:!0,latedef:!1,ignore:!1,ignoreDelimiters:!1},n.inverted={bitwise:!0,forin:!0,newcap:!0,plusplus:!0,regexp:!0,undef:!0,eqeqeq:!0,strict:!0},n.validNames=Object.keys(n.val).concat(Object.keys(n.bool.relaxing)).concat(Object.keys(n.bool.enforcing)).concat(Object.keys(n.bool.obsolete)).concat(Object.keys(n.bool.environments)),n.renamed={eqeq:"eqeqeq",windows:"wsh",sloppy:"strict"},n.removed={nomen:!0,onevar:!0,passfail:!0,white:!0,gcl:!0,smarttabs:!0,trailing:!0}},{}],8:[function(e,t,n){"use strict";n.unsafeString=/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i,n.unsafeChars=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,n.needEsc=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,n.needEscGlobal=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n.starSlash=/\*\//,n.identifier=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,n.javascriptURL=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\s*:/i,n.fallsThrough=/^\s*\/\*\s*falls?\sthrough\s*\*\/\s*$/,n.maxlenException=/^(?:(?:\/\/|\/\*|\*) ?)?[^ ]+$/},{}],9:[function(e,t,n){"use strict";var r=e("./name-stack.js"),i={syntax:{},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab="",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new r,this.ignoreLinterErrors=!1}};n.state=i},{"./name-stack.js":6}],10:[function(e,t,n){"use strict";n.register=function(e){e.on("Identifier",function(n){if(e.getOption("proto"))return;n.name==="__proto__"&&e.warn("W103",{line:n.line,"char":n.char,data:[n.name]})}),e.on("Identifier",function(n){if(e.getOption("iterator"))return;n.name==="__iterator__"&&e.warn("W104",{line:n.line,"char":n.char,data:[n.name]})}),e.on("Identifier",function(n){if(!e.getOption("camelcase"))return;n.name.replace(/^_+|_+$/g,"").indexOf("_")>-1&&!n.name.match(/^[A-Z0-9_]*$/)&&e.warn("W106",{line:n.line,"char":n.from,data:[n.name]})}),e.on("String",function(n){var r=e.getOption("quotmark"),i=e.getOption("esnext"),s;if(!r)return;if(i&&n.quote==="`")return;r==="single"&&n.quote!=="'"&&(s="W109"),r==="double"&&n.quote!=='"'&&(s="W108"),r===!0&&(e.getCache("quotmark")||e.setCache("quotmark",n.quote),e.getCache("quotmark")!==n.quote&&(s="W110")),s&&e.warn(s,{line:n.line,"char":n.char})}),e.on("Number",function(n){n.value.charAt(0)==="."&&e.warn("W008",{line:n.line,"char":n.char,data:[n.value]}),n.value.substr(n.value.length-1)==="."&&e.warn("W047",{line:n.line,"char":n.char,data:[n.value]}),/^00+/.test(n.value)&&e.warn("W046",{line:n.line,"char":n.char,data:[n.value]})}),e.on("String",function(n){var r=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\s*:/i;if(e.getOption("scripturl"))return;r.test(n.value)&&e.warn("W107",{line:n.line,"char":n.char})})}},{}],11:[function(e,t,n){"use strict";n.reservedVars={arguments:!1,NaN:!1},n.ecmaIdentifiers={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,Number:!1,Object:!1,Proxy:!1,Promise:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,Set:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1,WeakMap:!1,WeakSet:!1},n.newEcmaIdentifiers={Set:!1,Map:!1,WeakMap:!1,WeakSet:!1,Proxy:!1,Promise:!1,Reflect:!1,Symbol:!1,System:!1},n.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,FileReader:!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,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!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,requestAnimationFrame:!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,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},n.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},n.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},n.nonstandard={escape:!1,unescape:!1},n.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},n.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,require:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},n.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,require:!1,Buffer:!0,exports:!0,process:!0},n.phantom={phantom:!0,require:!0,WebPage:!0,console:!0,exports:!0},n.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},n.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},n.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},n.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},n.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},n.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},n.jquery={$:!1,jQuery:!1},n.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},n.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},n.yui={YUI:!1,Y:!1,YUI_config:!1},n.mocha={describe:!1,it:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},n.jasmine={jasmine:!1,describe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1}},{}],12:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e=="function"}function s(e){return typeof e=="number"}function o(e){return typeof e=="object"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e==="error")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),typeof console.trace=="function"&&console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}return this.removeAllListeners("removeListener"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}]},{},[3])(3)}),ace.define("ace/mode/javascript_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/javascript/jshint"],function(require,exports,module){"use strict";function startRegex(e){return RegExp("^("+e.join("|")+")")}var oop=require("../lib/oop"),Mirror=require("../worker/mirror").Mirror,lint=require("./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(e){Mirror.call(this,e),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(e){this.options=e||{esnext:!0,moz:!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(e){oop.mixin(this.options,e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval("throw 0;"+str)}catch(e){if(e===0)return!0}return!1},this.onUpdate=function(){var e=this.doc.getValue();e=e.replace(/^#!.*\n/,"\n");if(!e)return this.sender.emit("annotate",[]);var t=[],n=this.isValidJS(e)?"warning":"error";lint(e,this.options);var r=lint.errors,i=!1;for(var s=0;s<r.length;s++){var o=r[s];if(!o)continue;var u=o.raw,a="warning";if(u=="Missing semicolon."){var f=o.evidence.substr(o.character);f=f.charAt(f.search(/\S/)),n=="error"&&f&&/[\w\d{(['"]/.test(f)?(o.reason='Missing ";" before statement',a="error"):a="info"}else{if(disabledWarningsRe.test(u))continue;infoRe.test(u)?a="info":errorsRe.test(u)?(i=!0,a=n):u=="'{a}' is not defined."?a="warning":u=="'{a}' is defined but never used."&&(a="info")}t.push({row:o.line-1,column:o.character-1,text:o.reason,type:a,raw:u}),i}this.sender.emit("annotate",t)}}.call(JavaScriptWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-json.js b/js/ace/worker-json.js
new file mode 100644
index 0000000..727a999
--- /dev/null
+++ b/js/ace/worker-json.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(e,t,n){"use strict";var r,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"	"},o,u=function(e){throw{name:"SyntaxError",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u("Expected '"+e+"' instead of '"+i+"'"),i=o.charAt(r),r+=1,i},f=function(){var e,t="";i==="-"&&(t="-",a("-"));while(i>="0"&&i<="9")t+=i,a();if(i==="."){t+=".";while(a()&&i>="0"&&i<="9")t+=i}if(i==="e"||i==="E"){t+=i,a();if(i==="-"||i==="+")t+=i,a();while(i>="0"&&i<="9")t+=i,a()}e=+t;if(!isNaN(e))return e;u("Bad number")},l=function(){var e,t,n="",r;if(i==='"')while(a()){if(i==='"')return a(),n;if(i==="\\"){a();if(i==="u"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!="string")break;n+=s[i]}}else n+=i}u("Bad string")},c=function(){while(i&&i<=" ")a()},h=function(){switch(i){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}u("Unexpected '"+i+"'")},p,d=function(){var e=[];if(i==="["){a("["),c();if(i==="]")return a("]"),e;while(i){e.push(p()),c();if(i==="]")return a("]"),e;a(","),c()}}u("Bad array")},v=function(){var e,t={};if(i==="{"){a("{"),c();if(i==="}")return a("}"),t;while(i){e=l(),c(),a(":"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key "'+e+'"'),t[e]=p(),c();if(i==="}")return a("}"),t;a(","),c()}}u("Bad object")};return p=function(){c();switch(i){case"{":return v();case"[":return d();case'"':return l();case"-":return f();default:return i>="0"&&i<="9"?f():h()}},function(e,t){var n;return o=e,r=0,i=" ",n=p(),c(),i&&u("Syntax error"),typeof t=="function"?function s(e,n){var r,i,o=e[n];if(o&&typeof o=="object")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({"":n},""):n}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./json/json_parse"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-lua.js b/js/ace/worker-lua.js
new file mode 100644
index 0000000..98f09d4
--- /dev/null
+++ b/js/ace/worker-lua.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/lua/luaparse",["require","exports","module"],function(e,t,n){(function(e,n,r){r(t)})(this,"luaparse",function(e){"use strict";function m(e){if(mt){var t=vt.pop();t.complete(),n.locations&&(e.loc=t.loc),n.ranges&&(e.range=t.range)}return e}function w(e,t,n){for(var r=0,i=e.length;r<i;r++)if(e[r][t]===n)return r;return-1}function E(e){var t=g.call(arguments,1);return e=e.replace(/%(\d)/g,function(e,n){return""+t[n-1]||""}),e}function S(){var e=g.call(arguments),t={},n,r;for(var i=0,s=e.length;i<s;i++){n=e[i];for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t}function x(e){var t=E.apply(null,g.call(arguments,1)),n,r;throw"undefined"!=typeof e.line?(r=e.range[0]-e.lineStart,n=new SyntaxError(E("[%1:%2] %3",e.line,r,t)),n.line=e.line,n.index=e.range[0],n.column=r):(r=C-D+1,n=new SyntaxError(E("[%1:%2] %3",_,r,t)),n.index=C,n.line=_,n.column=r),n}function T(e,t){x(t,d.expectedToken,e,t.value)}function N(e,t){"undefined"==typeof t&&(t=A.value);if("undefined"!=typeof e.type){var n;switch(e.type){case o:n="string";break;case u:n="keyword";break;case a:n="identifier";break;case f:n="number";break;case l:n="symbol";break;case c:n="boolean";break;case h:return x(e,d.unexpected,"symbol","nil",t)}return x(e,d.unexpected,n,e.value,t)}return x(e,d.unexpected,"symbol",e,t)}function P(){H();while(45===t.charCodeAt(C)&&45===t.charCodeAt(C+1))X(),H();if(C>=r)return{type:s,value:"<eof>",line:_,lineStart:D,range:[C,C]};var e=t.charCodeAt(C),n=t.charCodeAt(C+1);M=C;if(et(e))return B();switch(e){case 39:case 34:return I();case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return R();case 46:if(Y(n))return R();if(46===n)return 46===t.charCodeAt(C+2)?F():j("..");return j(".");case 61:if(61===n)return j("==");return j("=");case 62:if(61===n)return j(">=");return j(">");case 60:if(61===n)return j("<=");return j("<");case 126:if(61===n)return j("~=");return x({},d.expected,"=","~");case 58:if(58===n)return j("::");return j(":");case 91:if(91===n||61===n)return q();return j("[");case 42:case 47:case 94:case 37:case 44:case 123:case 125:case 93:case 40:case 41:case 59:case 35:case 45:case 43:return j(t.charAt(C))}return N(t.charAt(C))}function H(){while(C<r){var e=t.charCodeAt(C);if(Q(e))C++;else{if(!G(e))break;_++,D=++C}}}function B(){var e,n;while(tt(t.charCodeAt(++C)));return e=t.slice(M,C),nt(e)?n=u:"true"===e||"false"===e?(n=c,e="true"===e):"nil"===e?(n=h,e=null):n=a,{type:n,value:e,line:_,lineStart:D,range:[M,C]}}function j(e){return C+=e.length,{type:l,value:e,line:_,lineStart:D,range:[M,C]}}function F(){return C+=3,{type:p,value:"...",line:_,lineStart:D,range:[M,C]}}function I(){var e=t.charCodeAt(C++),n=C,i="",s;while(C<r){s=t.charCodeAt(C++);if(e===s)break;if(92===s)i+=t.slice(n,C-1)+W(),n=C;else if(C>=r||G(s))i+=t.slice(n,C-1),x({},d.unfinishedString,i+String.fromCharCode(s))}return i+=t.slice(n,C-1),{type:o,value:i,line:_,lineStart:D,range:[M,C]}}function q(){var e=V();return!1===e&&x(k,d.expected,"[",k.value),{type:o,value:e,line:_,lineStart:D,range:[M,C]}}function R(){var e=t.charAt(C),n=t.charAt(C+1),r="0"===e&&"xX".indexOf(n||null)>=0?U():z();return{type:f,value:r,line:_,lineStart:D,range:[M,C]}}function U(){var e=0,n=1,r=1,i,s,o,u;u=C+=2,Z(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Z(t.charCodeAt(C)))C++;i=parseInt(t.slice(u,C),16);if("."===t.charAt(C)){s=++C;while(Z(t.charCodeAt(C)))C++;e=t.slice(s,C),e=s===C?0:parseInt(e,16)/Math.pow(16,C-s)}if("pP".indexOf(t.charAt(C)||null)>=0){C++,"+-".indexOf(t.charAt(C)||null)>=0&&(r="+"===t.charAt(C++)?1:-1),o=C,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++;n=t.slice(o,C),n=Math.pow(2,n*r)}return(i+e)*n}function z(){while(Y(t.charCodeAt(C)))C++;if("."===t.charAt(C)){C++;while(Y(t.charCodeAt(C)))C++}if("eE".indexOf(t.charAt(C)||null)>=0){C++,"+-".indexOf(t.charAt(C)||null)>=0&&C++,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++}return parseFloat(t.slice(M,C))}function W(){var e=C;switch(t.charAt(C)){case"n":return C++,"\n";case"r":return C++,"\r";case"t":return C++,"	";case"v":return C++,"";case"b":return C++,"\b";case"f":return C++,"\f";case"z":return C++,H(),"";case"x":if(Z(t.charCodeAt(C+1))&&Z(t.charCodeAt(C+2)))return C+=3,"\\"+t.slice(e,C);return"\\"+t.charAt(C++);default:if(Y(t.charCodeAt(C))){while(Y(t.charCodeAt(++C)));return"\\"+t.slice(e,C)}return t.charAt(C++)}}function X(){M=C,C+=2;var e=t.charAt(C),i="",s=!1,o=C,u=D,a=_;"["===e&&(i=V(),!1===i?i=e:s=!0);if(!s){while(C<r){if(G(t.charCodeAt(C)))break;C++}n.comments&&(i=t.slice(o,C))}if(n.comments){var f=v.comment(i,t.slice(M,C));n.locations&&(f.loc={start:{line:a,column:M-u},end:{line:_,column:C-D}}),n.ranges&&(f.range=[M,C]),O.push(f)}}function V(){var e=0,n="",i=!1,s,o;C++;while("="===t.charAt(C+e))e++;if("["!==t.charAt(C+e))return!1;C+=e+1,G(t.charCodeAt(C))&&(_++,D=C++),o=C;while(C<r){s=t.charAt(C++),G(s.charCodeAt(0))&&(_++,D=C);if("]"===s){i=!0;for(var u=0;u<e;u++)"="!==t.charAt(C+u)&&(i=!1);"]"!==t.charAt(C+e)&&(i=!1)}if(i)break}return n+=t.slice(o,C-1),C+=e+1,n}function $(){L=k,k=A,A=P()}function J(e){return e===k.value?($(),!0):!1}function K(e){e===k.value?$():x(k,d.expected,e,k.value)}function Q(e){return 9===e||32===e||11===e||12===e}function G(e){return 10===e||13===e}function Y(e){return e>=48&&e<=57}function Z(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function et(e){return e>=65&&e<=90||e>=97&&e<=122||95===e}function tt(e){return e>=65&&e<=90||e>=97&&e<=122||95===e||e>=48&&e<=57}function nt(e){switch(e.length){case 2:return"do"===e||"if"===e||"in"===e||"or"===e;case 3:return"and"===e||"end"===e||"for"===e||"not"===e;case 4:return"else"===e||"goto"===e||"then"===e;case 5:return"break"===e||"local"===e||"until"===e||"while"===e;case 6:return"elseif"===e||"repeat"===e||"return"===e;case 8:return"function"===e}return!1}function rt(e){return l===e.type?"#-".indexOf(e.value)>=0:u===e.type?"not"===e.value:!1}function it(e){switch(e.type){case"CallExpression":case"TableCallExpression":case"StringCallExpression":return!0}return!1}function st(e){if(s===e.type)return!0;if(u!==e.type)return!1;switch(e.value){case"else":case"elseif":case"end":case"until":return!0;default:return!1}}function ft(){ot.push(Array.apply(null,ot[ut++]))}function lt(){ot.pop(),ut--}function ct(e){if(-1!==b(ot[ut],e))return;ot[ut].push(e)}function ht(e){ct(e.name),pt(e,!0)}function pt(e,t){!t&&-1===w(at,"name",e.name)&&at.push(e),e.isLocal=t}function dt(e){return-1!==b(ot[ut],e)}function gt(){return new yt(k)}function yt(e){n.locations&&(this.loc={start:{line:e.line,column:e.range[0]-e.lineStart},end:{line:0,column:0}}),n.ranges&&(this.range=[e.range[0],0])}function bt(){mt&&vt.push(gt())}function wt(e){mt&&vt.push(e)}function Et(){$(),bt();var e=St();return s!==k.type&&N(k),mt&&!e.length&&(L=k),m(v.chunk(e))}function St(e){var t=[],r;n.scope&&ft();while(!st(k)){if("return"===k.value){t.push(xt());break}r=xt(),r&&t.push(r)}return n.scope&&lt(),t}function xt(){bt();if(u===k.type)switch(k.value){case"local":return $(),Dt();case"if":return $(),Mt();case"return":return $(),Ot();case"function":$();var e=jt();return Bt(e);case"while":return $(),Lt();case"for":return $(),_t();case"repeat":return $(),At();case"break":return $(),Nt();case"do":return $(),kt();case"goto":return $(),Ct()}if(l===k.type&&J("::"))return Tt();mt&&vt.pop();if(J(";"))return;return Pt()}function Tt(){var e=k.value,t=Ht();return n.scope&&(ct("::"+e+"::"),pt(t,!0)),K("::"),m(v.labelStatement(t))}function Nt(){return m(v.breakStatement())}function Ct(){var e=k.value,t=Ht();return n.scope&&(t.isLabel=dt("::"+e+"::")),m(v.gotoStatement(t))}function kt(){var e=St();return K("end"),m(v.doStatement(e))}function Lt(){var e=qt();K("do");var t=St();return K("end"),m(v.whileStatement(e,t))}function At(){var e=St();K("until");var t=qt();return m(v.repeatStatement(t,e))}function Ot(){var e=[];if("end"!==k.value){var t=It();null!=t&&e.push(t);while(J(","))t=qt(),e.push(t);J(";")}return m(v.returnStatement(e))}function Mt(){var e=[],t,n,r;mt&&(r=vt[vt.length-1],vt.push(r)),t=qt(),K("then"),n=St(),e.push(m(v.ifClause(t,n))),mt&&(r=gt());while(J("elseif"))wt(r),t=qt(),K("then"),n=St(),e.push(m(v.elseifClause(t,n))),mt&&(r=gt());return J("else")&&(mt&&(r=new yt(L),vt.push(r)),n=St(),e.push(m(v.elseClause(n)))),K("end"),m(v.ifStatement(e))}function _t(){var e=Ht(),t;n.scope&&ht(e);if(J("=")){var r=qt();K(",");var i=qt(),s=J(",")?qt():null;return K("do"),t=St(),K("end"),m(v.forNumericStatement(e,r,i,s,t))}var o=[e];while(J(","))e=Ht(),n.scope&&ht(e),o.push(e);K("in");var u=[];do{var a=qt();u.push(a)}while(J(","));return K("do"),t=St(),K("end"),m(v.forGenericStatement(o,u,t))}function Dt(){var e;if(a===k.type){var t=[],r=[];do e=Ht(),t.push(e);while(J(","));if(J("="))do{var i=qt();r.push(i)}while(J(","));if(n.scope)for(var s=0,o=t.length;s<o;s++)ht(t[s]);return m(v.localStatement(t,r))}if(J("function"))return e=Ht(),n.scope&&ht(e),Bt(e,!0);T("<name>",k)}function Pt(){var e=k,t,n;mt&&(n=gt()),t=zt();if(null==t)return N(k);if(",=".indexOf(k.value)>=0){var r=[t],i=[],s;while(J(","))s=zt(),null==s&&T("<expression>",k),r.push(s);K("=");do s=qt(),i.push(s);while(J(","));return wt(n),m(v.assignmentStatement(r,i))}return it(t)?(wt(n),m(v.callStatement(t))):N(e)}function Ht(){bt();var e=k.value;return a!==k.type&&T("<name>",k),$(),m(v.identifier(e))}function Bt(e,t){var r=[];K("(");if(!J(")"))for(;;)if(a===k.type){var i=Ht();n.scope&&ht(i),r.push(i);if(J(","))continue;if(J(")"))break}else{if(p===k.type){r.push(Xt()),K(")");break}T("<name> or '...'",k)}var s=St();return K("end"),t=t||!1,m(v.functionStatement(e,r,t,s))}function jt(){var e,t,r;mt&&(r=gt()),e=Ht(),n.scope&&pt(e,!1);while(J("."))wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,".",t));return J(":")&&(wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,":",t))),e}function Ft(){var e=[],t,n;for(;;){bt();if(l===k.type&&J("["))t=qt(),K("]"),K("="),n=qt(),e.push(m(v.tableKey(t,n)));else if(a===k.type)t=qt(),J("=")?(n=qt(),e.push(m(v.tableKeyString(t,n)))):e.push(m(v.tableValue(t)));else{if(null==(n=It())){vt.pop();break}e.push(m(v.tableValue(n)))}if(",;".indexOf(k.value)>=0){$();continue}if("}"===k.value)break}return K("}"),m(v.tableConstructorExpression(e))}function It(){var e=Ut(0);return e}function qt(){var e=It();if(null!=e)return e;T("<expression>",k)}function Rt(e){var t=e.charCodeAt(0),n=e.length;if(1===n)switch(t){case 94:return 10;case 42:case 47:case 37:return 7;case 43:case 45:return 6;case 60:case 62:return 3}else if(2===n)switch(t){case 46:return 5;case 60:case 62:case 61:case 126:return 3;case 111:return 1}else if(97===t&&"and"===e)return 2;return 0}function Ut(e){var t=k.value,n,r;mt&&(r=gt());if(rt(k)){bt(),$();var i=Ut(8);i==null&&T("<expression>",k),n=m(v.unaryExpression(t,i))}null==n&&(n=Xt(),null==n&&(n=zt()));if(null==n)return null;var s;for(;;){t=k.value,s=l===k.type||u===k.type?Rt(t):0;if(s===0||s<=e)break;("^"===t||".."===t)&&s--,$();var o=Ut(s);null==o&&T("<expression>",k),mt&&vt.push(r),n=m(v.binaryExpression(t,n,o))}return n}function zt(){var e,t,r,i;mt&&(r=gt());if(a===k.type)t=k.value,e=Ht(),n.scope&&pt(e,i=dt(t));else{if(!J("("))return null;e=qt(),K(")"),n.scope&&(i=e.isLocal)}var s,u;for(;;)if(l===k.type)switch(k.value){case"[":wt(r),$(),s=qt(),e=m(v.indexExpression(e,s)),K("]");break;case".":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,".",u));break;case":":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,":",u)),wt(r),e=Wt(e);break;case"(":case"{":wt(r),e=Wt(e);break;default:return e}else{if(o!==k.type)break;wt(r),e=Wt(e)}return e}function Wt(e){if(l===k.type)switch(k.value){case"(":$();var t=[],n=It();null!=n&&t.push(n);while(J(","))n=qt(),t.push(n);return K(")"),m(v.callExpression(e,t));case"{":bt(),$();var r=Ft();return m(v.tableCallExpression(e,r))}else if(o===k.type)return m(v.stringCallExpression(e,Xt()));T("function arguments",k)}function Xt(){var e=o|f|c|h|p,n=k.value,r=k.type,i;mt&&(i=gt());if(r&e){wt(i);var s=t.slice(k.range[0],k.range[1]);return $(),m(v.literal(r,n,s))}if(u===r&&"function"===n)return wt(i),$(),Bt(null);if(J("{"))return wt(i),Ft()}function Vt(s,o){return"undefined"==typeof o&&"object"==typeof s&&(o=s,s=undefined),o||(o={}),t=s||"",n=S(i,o),C=0,_=1,D=0,r=t.length,ot=[[]],ut=0,at=[],vt=[],n.comments&&(O=[]),n.wait?e:Jt()}function $t(n){return t+=String(n),r=t.length,e}function Jt(e){"undefined"!=typeof e&&$t(e),r=t.length,mt=n.locations||n.ranges,A=P();var i=Et();n.comments&&(i.comments=O),n.scope&&(i.globals=at);if(vt.length>0)throw new Error("Location tracking failed. This is most likely a bug in luaparse");return i}e.version="0.1.4";var t,n,r,i=e.defaultOptions={wait:!1,comments:!0,scope:!1,locations:!1,ranges:!1},s=1,o=2,u=4,a=8,f=16,l=32,c=64,h=128,p=256;e.tokenTypes={EOF:s,StringLiteral:o,Keyword:u,Identifier:a,NumericLiteral:f,Punctuator:l,BooleanLiteral:c,NilLiteral:h,VarargLiteral:p};var d=e.errors={unexpected:"Unexpected %1 '%2' near '%3'",expected:"'%1' expected near '%2'",expectedToken:"%1 expected near '%2'",unfinishedString:"unfinished string near '%1'",malformedNumber:"malformed number near '%1'"},v=e.ast={labelStatement:function(e){return{type:"LabelStatement",label:e}},breakStatement:function(){return{type:"BreakStatement"}},gotoStatement:function(e){return{type:"GotoStatement",label:e}},returnStatement:function(e){return{type:"ReturnStatement",arguments:e}},ifStatement:function(e){return{type:"IfStatement",clauses:e}},ifClause:function(e,t){return{type:"IfClause",condition:e,body:t}},elseifClause:function(e,t){return{type:"ElseifClause",condition:e,body:t}},elseClause:function(e){return{type:"ElseClause",body:e}},whileStatement:function(e,t){return{type:"WhileStatement",condition:e,body:t}},doStatement:function(e){return{type:"DoStatement",body:e}},repeatStatement:function(e,t){return{type:"RepeatStatement",condition:e,body:t}},localStatement:function(e,t){return{type:"LocalStatement",variables:e,init:t}},assignmentStatement:function(e,t){return{type:"AssignmentStatement",variables:e,init:t}},callStatement:function(e){return{type:"CallStatement",expression:e}},functionStatement:function(e,t,n,r){return{type:"FunctionDeclaration",identifier:e,isLocal:n,parameters:t,body:r}},forNumericStatement:function(e,t,n,r,i){return{type:"ForNumericStatement",variable:e,start:t,end:n,step:r,body:i}},forGenericStatement:function(e,t,n){return{type:"ForGenericStatement",variables:e,iterators:t,body:n}},chunk:function(e){return{type:"Chunk",body:e}},identifier:function(e){return{type:"Identifier",name:e}},literal:function(e,t,n){return e=e===o?"StringLiteral":e===f?"NumericLiteral":e===c?"BooleanLiteral":e===h?"NilLiteral":"VarargLiteral",{type:e,value:t,raw:n}},tableKey:function(e,t){return{type:"TableKey",key:e,value:t}},tableKeyString:function(e,t){return{type:"TableKeyString",key:e,value:t}},tableValue:function(e){return{type:"TableValue",value:e}},tableConstructorExpression:function(e){return{type:"TableConstructorExpression",fields:e}},binaryExpression:function(e,t,n){var r="and"===e||"or"===e?"LogicalExpression":"BinaryExpression";return{type:r,operator:e,left:t,right:n}},unaryExpression:function(e,t){return{type:"UnaryExpression",operator:e,argument:t}},memberExpression:function(e,t,n){return{type:"MemberExpression",indexer:t,identifier:n,base:e}},indexExpression:function(e,t){return{type:"IndexExpression",base:e,index:t}},callExpression:function(e,t){return{type:"CallExpression",base:e,arguments:t}},tableCallExpression:function(e,t){return{type:"TableCallExpression",base:e,arguments:t}},stringCallExpression:function(e,t){return{type:"StringCallExpression",base:e,argument:t}},comment:function(e,t){return{type:"Comment",value:e,raw:t}}},g=Array.prototype.slice,y=Object.prototype.toString,b=function(t,n){for(var r=0,i=t.length;r<i;r++)if(t[r]===n)return r;return-1},C,k,L,A,O,M,_,D;e.lex=P;var ot,ut,at,vt=[],mt;yt.prototype.complete=function(){n.locations&&(this.loc.end.line=L.line,this.loc.end.column=L.range[1]-L.lineStart),n.ranges&&(this.range[1]=L.range[1])},e.parse=Vt,e.write=$t,e.end=Jt})}),ace.define("ace/mode/lua_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/lua/luaparse"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("../mode/lua/luaparse"),o=t.Worker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.parse(e)}catch(n){n instanceof SyntaxError&&t.push({row:n.line-1,column:n.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-php.js b/js/ace/worker-php.js
new file mode 100644
index 0000000..5f42505
--- /dev/null
+++ b/js/ace/worker-php.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/php/php",["require","exports","module"],function(e,t,n){var r={Constants:{}};r.Constants.T_INCLUDE=262,r.Constants.T_INCLUDE_ONCE=261,r.Constants.T_EVAL=260,r.Constants.T_REQUIRE=259,r.Constants.T_REQUIRE_ONCE=258,r.Constants.T_LOGICAL_OR=263,r.Constants.T_LOGICAL_XOR=264,r.Constants.T_LOGICAL_AND=265,r.Constants.T_PRINT=266,r.Constants.T_PLUS_EQUAL=277,r.Constants.T_MINUS_EQUAL=276,r.Constants.T_MUL_EQUAL=275,r.Constants.T_DIV_EQUAL=274,r.Constants.T_CONCAT_EQUAL=273,r.Constants.T_MOD_EQUAL=272,r.Constants.T_AND_EQUAL=271,r.Constants.T_OR_EQUAL=270,r.Constants.T_XOR_EQUAL=269,r.Constants.T_SL_EQUAL=268,r.Constants.T_SR_EQUAL=267,r.Constants.T_BOOLEAN_OR=278,r.Constants.T_BOOLEAN_AND=279,r.Constants.T_IS_EQUAL=283,r.Constants.T_IS_NOT_EQUAL=282,r.Constants.T_IS_IDENTICAL=281,r.Constants.T_IS_NOT_IDENTICAL=280,r.Constants.T_IS_SMALLER_OR_EQUAL=285,r.Constants.T_IS_GREATER_OR_EQUAL=284,r.Constants.T_SL=287,r.Constants.T_SR=286,r.Constants.T_INSTANCEOF=288,r.Constants.T_INC=297,r.Constants.T_DEC=296,r.Constants.T_INT_CAST=295,r.Constants.T_DOUBLE_CAST=294,r.Constants.T_STRING_CAST=293,r.Constants.T_ARRAY_CAST=292,r.Constants.T_OBJECT_CAST=291,r.Constants.T_BOOL_CAST=290,r.Constants.T_UNSET_CAST=289,r.Constants.T_NEW=299,r.Constants.T_CLONE=298,r.Constants.T_EXIT=300,r.Constants.T_IF=301,r.Constants.T_ELSEIF=302,r.Constants.T_ELSE=303,r.Constants.T_ENDIF=304,r.Constants.T_LNUMBER=305,r.Constants.T_DNUMBER=306,r.Constants.T_STRING=307,r.Constants.T_STRING_VARNAME=308,r.Constants.T_VARIABLE=309,r.Constants.T_NUM_STRING=310,r.Constants.T_INLINE_HTML=311,r.Constants.T_CHARACTER=312,r.Constants.T_BAD_CHARACTER=313,r.Constants.T_ENCAPSED_AND_WHITESPACE=314,r.Constants.T_CONSTANT_ENCAPSED_STRING=315,r.Constants.T_ECHO=316,r.Constants.T_DO=317,r.Constants.T_WHILE=318,r.Constants.T_ENDWHILE=319,r.Constants.T_FOR=320,r.Constants.T_ENDFOR=321,r.Constants.T_FOREACH=322,r.Constants.T_ENDFOREACH=323,r.Constants.T_DECLARE=324,r.Constants.T_ENDDECLARE=325,r.Constants.T_AS=326,r.Constants.T_SWITCH=327,r.Constants.T_ENDSWITCH=328,r.Constants.T_CASE=329,r.Constants.T_DEFAULT=330,r.Constants.T_BREAK=331,r.Constants.T_CONTINUE=332,r.Constants.T_GOTO=333,r.Constants.T_FUNCTION=334,r.Constants.T_CONST=335,r.Constants.T_RETURN=336,r.Constants.T_TRY=337,r.Constants.T_CATCH=338,r.Constants.T_THROW=339,r.Constants.T_USE=340,r.Constants.T_GLOBAL=341,r.Constants.T_STATIC=347,r.Constants.T_ABSTRACT=346,r.Constants.T_FINAL=345,r.Constants.T_PRIVATE=344,r.Constants.T_PROTECTED=343,r.Constants.T_PUBLIC=342,r.Constants.T_VAR=348,r.Constants.T_UNSET=349,r.Constants.T_ISSET=350,r.Constants.T_EMPTY=351,r.Constants.T_HALT_COMPILER=352,r.Constants.T_CLASS=353,r.Constants.T_TRAIT=382,r.Constants.T_INTERFACE=354,r.Constants.T_EXTENDS=355,r.Constants.T_IMPLEMENTS=356,r.Constants.T_OBJECT_OPERATOR=357,r.Constants.T_DOUBLE_ARROW=358,r.Constants.T_LIST=359,r.Constants.T_ARRAY=360,r.Constants.T_CLASS_C=361,r.Constants.T_TRAIT_C=381,r.Constants.T_METHOD_C=362,r.Constants.T_FUNC_C=363,r.Constants.T_LINE=364,r.Constants.T_FILE=365,r.Constants.T_COMMENT=366,r.Constants.T_DOC_COMMENT=367,r.Constants.T_OPEN_TAG=368,r.Constants.T_OPEN_TAG_WITH_ECHO=369,r.Constants.T_CLOSE_TAG=370,r.Constants.T_WHITESPACE=371,r.Constants.T_START_HEREDOC=372,r.Constants.T_END_HEREDOC=373,r.Constants.T_DOLLAR_OPEN_CURLY_BRACES=374,r.Constants.T_CURLY_OPEN=375,r.Constants.T_PAAMAYIM_NEKUDOTAYIM=376,r.Constants.T_DOUBLE_COLON=376,r.Constants.T_NAMESPACE=377,r.Constants.T_NS_C=378,r.Constants.T_DIR=379,r.Constants.T_NS_SEPARATOR=380,r.Lexer=function(e,t){var n,i=function(e){if(e.match(/\n/)!==null){var t=e.substring(0,1);e="["+e.split(/\n/).join(t+","+t)+'].join("\\n")'}return e},s,o=t===undefined||/^(on|true|1)$/i.test(t.short_open_tag)?/(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i:/(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i,u=t===undefined||/^(on|true|1)$/i.test(t.short_open_tag)?/^(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i:/^(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i,a=[{value:r.Constants.T_NAMESPACE,re:/^namespace(?=\s)/i},{value:r.Constants.T_USE,re:/^use(?=\s)/i},{value:r.Constants.T_ABSTRACT,re:/^abstract(?=\s)/i},{value:r.Constants.T_IMPLEMENTS,re:/^implements(?=\s)/i},{value:r.Constants.T_INTERFACE,re:/^interface(?=\s)/i},{value:r.Constants.T_CONST,re:/^const(?=\s)/i},{value:r.Constants.T_STATIC,re:/^static(?=\s)/i},{value:r.Constants.T_FINAL,re:/^final(?=\s)/i},{value:r.Constants.T_VAR,re:/^var(?=\s)/i},{value:r.Constants.T_GLOBAL,re:/^global(?=\s)/i},{value:r.Constants.T_CLONE,re:/^clone(?=\s)/i},{value:r.Constants.T_THROW,re:/^throw(?=\s)/i},{value:r.Constants.T_EXTENDS,re:/^extends(?=\s)/i},{value:r.Constants.T_AND_EQUAL,re:/^&=/},{value:r.Constants.T_AS,re:/^as(?=\s)/i},{value:r.Constants.T_ARRAY_CAST,re:/^\(array\)/i},{value:r.Constants.T_BOOL_CAST,re:/^\((bool|boolean)\)/i},{value:r.Constants.T_DOUBLE_CAST,re:/^\((real|float|double)\)/i},{value:r.Constants.T_INT_CAST,re:/^\((int|integer)\)/i},{value:r.Constants.T_OBJECT_CAST,re:/^\(object\)/i},{value:r.Constants.T_STRING_CAST,re:/^\(string\)/i},{value:r.Constants.T_UNSET_CAST,re:/^\(unset\)/i},{value:r.Constants.T_TRY,re:/^try(?=\s*{)/i},{value:r.Constants.T_CATCH,re:/^catch(?=\s*\()/i},{value:r.Constants.T_INSTANCEOF,re:/^instanceof(?=\s)/i},{value:r.Constants.T_LOGICAL_OR,re:/^or(?=\s)/i},{value:r.Constants.T_LOGICAL_AND,re:/^and(?=\s)/i},{value:r.Constants.T_LOGICAL_XOR,re:/^xor(?=\s)/i},{value:r.Constants.T_BOOLEAN_AND,re:/^&&/},{value:r.Constants.T_BOOLEAN_OR,re:/^\|\|/},{value:r.Constants.T_CONTINUE,re:/^continue(?=\s|;)/i},{value:r.Constants.T_BREAK,re:/^break(?=\s|;)/i},{value:r.Constants.T_ENDDECLARE,re:/^enddeclare(?=\s|;)/i},{value:r.Constants.T_ENDFOR,re:/^endfor(?=\s|;)/i},{value:r.Constants.T_ENDFOREACH,re:/^endforeach(?=\s|;)/i},{value:r.Constants.T_ENDIF,re:/^endif(?=\s|;)/i},{value:r.Constants.T_ENDSWITCH,re:/^endswitch(?=\s|;)/i},{value:r.Constants.T_ENDWHILE,re:/^endwhile(?=\s|;)/i},{value:r.Constants.T_CASE,re:/^case(?=\s)/i},{value:r.Constants.T_DEFAULT,re:/^default(?=\s|:)/i},{value:r.Constants.T_SWITCH,re:/^switch(?=[ (])/i},{value:r.Constants.T_EXIT,re:/^(exit|die)(?=[ \(;])/i},{value:r.Constants.T_CLOSE_TAG,re:/^(\?\>|\%\>|\<\/script\>)\s?\s?/i,func:function(e){return c=!1,e}},{value:r.Constants.T_DOUBLE_ARROW,re:/^\=\>/},{value:r.Constants.T_DOUBLE_COLON,re:/^\:\:/},{value:r.Constants.T_METHOD_C,re:/^__METHOD__/},{value:r.Constants.T_LINE,re:/^__LINE__/},{value:r.Constants.T_FILE,re:/^__FILE__/},{value:r.Constants.T_FUNC_C,re:/^__FUNCTION__/},{value:r.Constants.T_NS_C,re:/^__NAMESPACE__/},{value:r.Constants.T_TRAIT_C,re:/^__TRAIT__/},{value:r.Constants.T_DIR,re:/^__DIR__/},{value:r.Constants.T_CLASS_C,re:/^__CLASS__/},{value:r.Constants.T_INC,re:/^\+\+/},{value:r.Constants.T_DEC,re:/^\-\-/},{value:r.Constants.T_CONCAT_EQUAL,re:/^\.\=/},{value:r.Constants.T_DIV_EQUAL,re:/^\/\=/},{value:r.Constants.T_XOR_EQUAL,re:/^\^\=/},{value:r.Constants.T_MUL_EQUAL,re:/^\*\=/},{value:r.Constants.T_MOD_EQUAL,re:/^\%\=/},{value:r.Constants.T_SL_EQUAL,re:/^<<=/},{value:r.Constants.T_START_HEREDOC,re:/^<<<[A-Z_0-9]+\s/i,func:function(e){return n=e.substring(3,e.length-1),e}},{value:r.Constants.T_SL,re:/^<</},{value:r.Constants.T_IS_SMALLER_OR_EQUAL,re:/^<=/},{value:r.Constants.T_SR_EQUAL,re:/^>>=/},{value:r.Constants.T_SR,re:/^>>/},{value:r.Constants.T_IS_GREATER_OR_EQUAL,re:/^>=/},{value:r.Constants.T_OR_EQUAL,re:/^\|\=/},{value:r.Constants.T_PLUS_EQUAL,re:/^\+\=/},{value:r.Constants.T_MINUS_EQUAL,re:/^-\=/},{value:r.Constants.T_OBJECT_OPERATOR,re:/^\-\>/i},{value:r.Constants.T_CLASS,re:/^class(?=[\s\{])/i,afterWhitespace:!0},{value:r.Constants.T_TRAIT,re:/^trait(?=[\s]+[A-Za-z])/i},{value:r.Constants.T_PUBLIC,re:/^public(?=[\s])/i},{value:r.Constants.T_PRIVATE,re:/^private(?=[\s])/i},{value:r.Constants.T_PROTECTED,re:/^protected(?=[\s])/i},{value:r.Constants.T_ARRAY,re:/^array(?=\s*?\()/i},{value:r.Constants.T_EMPTY,re:/^empty(?=[ \(])/i},{value:r.Constants.T_ISSET,re:/^isset(?=[ \(])/i},{value:r.Constants.T_UNSET,re:/^unset(?=[ \(])/i},{value:r.Constants.T_RETURN,re:/^return(?=[ "'(;])/i},{value:r.Constants.T_FUNCTION,re:/^function(?=[ "'(;])/i},{value:r.Constants.T_ECHO,re:/^echo(?=[ "'(;])/i},{value:r.Constants.T_LIST,re:/^list(?=\s*?\()/i},{value:r.Constants.T_PRINT,re:/^print(?=[ "'(;])/i},{value:r.Constants.T_INCLUDE,re:/^include(?=[ "'(;])/i},{value:r.Constants.T_INCLUDE_ONCE,re:/^include_once(?=[ "'(;])/i},{value:r.Constants.T_REQUIRE,re:/^require(?=[ "'(;])/i},{value:r.Constants.T_REQUIRE_ONCE,re:/^require_once(?=[ "'(;])/i},{value:r.Constants.T_NEW,re:/^new(?=[ ])/i},{value:r.Constants.T_COMMENT,re:/^\/\*([\S\s]*?)(?:\*\/|$)/},{value:r.Constants.T_COMMENT,re:/^\/\/.*(\s)?/},{value:r.Constants.T_COMMENT,re:/^\#.*(\s)?/},{value:r.Constants.T_ELSEIF,re:/^elseif(?=[\s(])/i},{value:r.Constants.T_GOTO,re:/^goto(?=[\s(])/i},{value:r.Constants.T_ELSE,re:/^else(?=[\s{:])/i},{value:r.Constants.T_IF,re:/^if(?=[\s(])/i},{value:r.Constants.T_DO,re:/^do(?=[ {])/i},{value:r.Constants.T_WHILE,re:/^while(?=[ (])/i},{value:r.Constants.T_FOREACH,re:/^foreach(?=[ (])/i},{value:r.Constants.T_ISSET,re:/^isset(?=[ (])/i},{value:r.Constants.T_IS_IDENTICAL,re:/^===/},{value:r.Constants.T_IS_EQUAL,re:/^==/},{value:r.Constants.T_IS_NOT_IDENTICAL,re:/^\!==/},{value:r.Constants.T_IS_NOT_EQUAL,re:/^(\!=|\<\>)/},{value:r.Constants.T_FOR,re:/^for(?=[ (])/i},{value:r.Constants.T_DNUMBER,re:/^[0-9]*\.[0-9]+([eE][-]?[0-9]*)?/},{value:r.Constants.T_LNUMBER,re:/^(0x[0-9A-F]+|[0-9]+)/i},{value:r.Constants.T_OPEN_TAG_WITH_ECHO,re:/^(\<\?=|\<\%=)/i},{value:r.Constants.T_OPEN_TAG,re:u},{value:r.Constants.T_VARIABLE,re:/^\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/},{value:r.Constants.T_WHITESPACE,re:/^\s+/},{value:r.Constants.T_CONSTANT_ENCAPSED_STRING,re:/^("(?:[^"\\]|\\[\s\S])*"|'(?:[^'\\]|\\[\s\S])*')/,func:function(e,t){var n=0,i,s=0;if(e.substring(0,1)==="'")return e;var o=e.match(/(?:[^\\]|\\.)*[^\\]\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/g);if(o!==null){while(e.length>0){i=e.length,o=e.match(/^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\@\^\%\"\'\{\}]/),o!==null&&(f.push(o[0]),e=e.substring(1),n>0&&o[0]==="}"&&n--,o[0]==="["&&s++,o[0]==="]"&&s--),o=e.match(/^\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/);if(o!==null){f.push([parseInt(r.Constants.T_VARIABLE,10),o[0],l]),e=e.substring(o[0].length),o=e.match(/^(\-\>)\s*([a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*)\s*(\()/),o!==null&&(f.push([parseInt(r.Constants.T_OBJECT_OPERATOR,10),o[1],l]),f.push([parseInt(r.Constants.T_STRING,10),o[2],l]),o[3]&&f.push(o[3]),e=e.substring(o[0].length));if(e.match(/^\[/g)!==null)continue}var u;n>0?u=/^([^\\\$"{}\]\(\)\->]|\\.)+/g:u=/^([^\\\$"{]|\\.|{[^\$]|\$(?=[^a-zA-Z_\x7f-\uffff]))+/g;var a,c;while((o=e.match(u))!==null){if(e.length===1)throw new Error(o);a=0,n>0?(c=o[0].match(/^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\$\~]/))?f.push(c[0]):a=r.Constants.T_STRING:a=r.Constants.T_ENCAPSED_AND_WHITESPACE,a&&f.push([parseInt(a,10),o[0].replace(/\n/g,"\\n").replace(/\r/g,""),l]),l+=o[0].split("\n").length-1,e=e.substring(o[0].length)}n>0&&e.match(/^\->/)!==null&&(f.push([parseInt(r.Constants.T_OBJECT_OPERATOR,10),"->",l]),e=e.substring(2)),e.match(/^{\$/)!==null&&(f.push([parseInt(r.Constants.T_CURLY_OPEN,10),"{",l]),e=e.substring(1),n++);if(i===e.length&&(o=e.match(/^(([^\\]|\\.)*?[^\\]\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*)/g))!==null)return}return undefined}return e=e.replace(/\r/g,""),e}},{value:r.Constants.T_NS_SEPARATOR,re:/^\\(?=[a-zA-Z_])/},{value:r.Constants.T_STRING,re:/^[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/},{value:-1,re:/^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\"\'\$\~]/}],f=[],l=1,c=!1,h=!0;if(e===null)return f;typeof e!="string"&&(e=e.toString());while(e.length>0&&h===!0)if(c===!0)if(n!==undefined){var p=new RegExp("([\\S\\s]*?)(\\r\\n|\\n|\\r)("+n+")(;|\\r\\n|\\n)","i"),d=e.match(p);d!==null&&(f.push([parseInt(r.Constants.T_ENCAPSED_AND_WHITESPACE,10),d[1].replace(/^\n/g,"").replace(/\\\$/g,"$")+"\n",l]),l+=d[1].split("\n").length,f.push([parseInt(r.Constants.T_END_HEREDOC,10),d[3],l]),e=e.substring(d[1].length+d[2].length+d[3].length),n=undefined);if(d===null)throw Error("sup")}else h=a.some(function(t){if(t.afterWhitespace===!0){var n=f[f.length-1];if(!Array.isArray(n)||n[0]!==r.Constants.T_WHITESPACE&&n[0]!==r.Constants.T_OPEN_TAG&&n[0]!==r.Constants.T_COMMENT)return!1}var i=e.match(t.re);if(i!==null){if(t.value!==-1){var s=i[0];t.func!==undefined&&(s=t.func(s,t)),s!==undefined&&(f.push([parseInt(t.value,10),s,l]),l+=s.split("\n").length-1)}else f.push(i[0]);return e=e.substring(i[0].length),!0}return!1});else{var d=o.exec(e);if(d===null)return f.push([parseInt(r.Constants.T_INLINE_HTML,10),e.replace(/^\n/,""),l]),f;if(d.index>0){var v=e.substring(0,d.index);f.push([parseInt(r.Constants.T_INLINE_HTML,10),v,l]),l+=v.split("\n").length-1,e=e.substring(d.index)}c=!0}return f},r.Parser=function(e,t){var n=this.yybase,i=this.yydefault,s=this.yycheck,o=this.yyaction,u=this.yylen,a=this.yygbase,f=this.yygcheck,l=this.yyp,c=this.yygoto,h=this.yylhs,p=this.terminals,d=this.translate,v=this.yygdefault;this.pos=-1,this.line=1,this.tokenMap=this.createTokenMap(),this.dropTokens={},this.dropTokens[r.Constants.T_WHITESPACE]=1,this.dropTokens[r.Constants.T_OPEN_TAG]=1;var m=[];e.forEach(function(e,t){typeof e=="object"&&e[0]===r.Constants.T_OPEN_TAG_WITH_ECHO?(m.push([r.Constants.T_OPEN_TAG,e[1],e[2]]),m.push([r.Constants.T_ECHO,e[1],e[2]])):m.push(e)}),this.tokens=m;var g=this.TOKEN_NONE;this.startAttributes={startLine:1},this.endAttributes={};var y=[this.startAttributes],b=0,w=[b];this.yyastk=[],this.stackPos=0;var E,S;for(;;){if(n[b]===0)E=i[b];else{g===this.TOKEN_NONE&&(S=this.getNextToken(),g=S>=0&&S<this.TOKEN_MAP_SIZE?d[S]:this.TOKEN_INVALID,y[this.stackPos]=this.startAttributes);if(((E=n[b]+g)>=0&&E<this.YYLAST&&s[E]===g||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+g)>=0&&E<this.YYLAST&&s[E]===g)&&(E=o[E])!==this.YYDEFAULT)if(E>0){++this.stackPos,w[this.stackPos]=b=E,this.yyastk[this.stackPos]=this.tokenValue,y[this.stackPos]=this.startAttributes,g=this.TOKEN_NONE;if(E<this.YYNLSTATES)continue;E-=this.YYNLSTATES}else E=-E;else E=i[b]}for(;;){if(E===0)return this.yyval;if(E===this.YYUNEXPECTED){if(t!==!0){var N=[];for(var C=0;C<this.TOKEN_MAP_SIZE;++C)if((E=n[b]+C)>=0&&E<this.YYLAST&&s[E]==C||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+C)&&E<this.YYLAST&&s[E]==C)if(o[E]!=this.YYUNEXPECTED){if(N.length==4){N=[];break}N.push(this.terminals[C])}var k="";throw N.length&&(k=", expecting "+N.join(" or ")),new r.ParseError("syntax error, unexpected "+p[g]+k,this.startAttributes.startLine)}return this.startAttributes.startLine}for(var x in this.endAttributes)y[this.stackPos-u[E]][x]=this.endAttributes[x];try{this["yyn"+E](y[this.stackPos-u[E]])}catch(T){throw T}this.stackPos-=u[E],E=h[E],(l=a[E]+w[this.stackPos])>=0&&l<this.YYGLAST&&f[l]===E?b=c[l]:b=v[E],++this.stackPos,w[this.stackPos]=b,this.yyastk[this.stackPos]=this.yyval,y[this.stackPos]=this.startAttributes;if(b<this.YYNLSTATES)break;E=b-this.YYNLSTATES}}},r.ParseError=function(e,t){this.message=e,this.line=t},r.Parser.prototype.MODIFIER_PUBLIC=1,r.Parser.prototype.MODIFIER_PROTECTED=2,r.Parser.prototype.MODIFIER_PRIVATE=4,r.Parser.prototype.MODIFIER_STATIC=8,r.Parser.prototype.MODIFIER_ABSTRACT=16,r.Parser.prototype.MODIFIER_FINAL=32,r.Parser.prototype.getNextToken=function(){this.startAttributes={},this.endAttributes={};var e,t;while(this.tokens[++this.pos]!==undefined){e=this.tokens[this.pos];if(typeof e=="string")return this.startAttributes.startLine=this.line,this.endAttributes.endLine=this.line,'b"'===e?(this.tokenValue='b"','"'.charCodeAt(0)):(this.tokenValue=e,e.charCodeAt(0));this.line+=(t=e[1].match(/\n/g))===null?0:t.length;if(r.Constants.T_COMMENT===e[0])Array.isArray(this.startAttributes.comments)||(this.startAttributes.comments=[]),this.startAttributes.comments.push({type:"comment",comment:e[1],line:e[2]});else if(r.Constants.T_DOC_COMMENT===e[0])this.startAttributes.comments.push(new PHPParser_Comment_Doc(e[1],e[2]));else if(this.dropTokens[e[0]]===undefined)return this.tokenValue=e[1],this.startAttributes.startLine=e[2],this.endAttributes.endLine=this.line,this.tokenMap[e[0]]}return this.startAttributes.startLine=this.line,0},r.Parser.prototype.tokenName=function(e){var t=["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_DOUBLE_COLON","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR"],n="UNKNOWN";return t.some(function(t){return r.Constants[t]===e?(n=t,!0):!1}),n},r.Parser.prototype.createTokenMap=function(){var e={},t,n,i=r.Constants.T_PAAMAYIM_NEKUDOTAYIM;for(n=256;n<1e3;++n)i===n?e[n]=this.T_PAAMAYIM_NEKUDOTAYIM:r.Constants.T_OPEN_TAG_WITH_ECHO===n?e[n]=r.Constants.T_ECHO:r.Constants.T_CLOSE_TAG===n?e[n]=59:"UNKNOWN"!==(t=this.tokenName(n))&&(e[n]=this[t]);return e};var i=function(){this.yyval=this.yyastk[this.stackPos-0]};r.Parser.prototype.MakeArray=function(e){return Array.isArray(e)?e:[e]},r.Parser.prototype.parseString=function(e){var t=0;return"b"===e[0]&&(t=1),"'"===e[t]?e=e.replace(["\\\\","\\'"],["\\","'"]):e=this.parseEscapeSequences(e,'"'),e},r.Parser.prototype.parseEscapeSequences=function(e,t){undefined!==t&&(e=e.replace(new RegExp("\\"+t,"g"),t));var n={"\\":"\\",$:"$",n:"\n",r:"\r",t:"	",f:"\f",v:"",e:""};return e.replace(/~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~/g,function(e){var t=e[1];return n[t]!==undefined?n[t]:"x"===t[0]||"X"===t[0]?chr(hexdec(t)):chr(octdec(t))})},r.Parser.prototype.TOKEN_NONE=-1,r.Parser.prototype.TOKEN_INVALID=149,r.Parser.prototype.TOKEN_MAP_SIZE=384,r.Parser.prototype.YYLAST=913,r.Parser.prototype.YY2TBLSTATE=328,r.Parser.prototype.YYGLAST=415,r.Parser.prototype.YYNLSTATES=544,r.Parser.prototype.YYUNEXPECTED=32767,r.Parser.prototype.YYDEFAULT=-32766,r.Parser.prototype.YYERRTOK=256,r.Parser.prototype.T_INCLUDE=257,r.Parser.prototype.T_INCLUDE_ONCE=258,r.Parser.prototype.T_EVAL=259,r.Parser.prototype.T_REQUIRE=260,r.Parser.prototype.T_REQUIRE_ONCE=261,r.Parser.prototype.T_LOGICAL_OR=262,r.Parser.prototype.T_LOGICAL_XOR=263,r.Parser.prototype.T_LOGICAL_AND=264,r.Parser.prototype.T_PRINT=265,r.Parser.prototype.T_PLUS_EQUAL=266,r.Parser.prototype.T_MINUS_EQUAL=267,r.Parser.prototype.T_MUL_EQUAL=268,r.Parser.prototype.T_DIV_EQUAL=269,r.Parser.prototype.T_CONCAT_EQUAL=270,r.Parser.prototype.T_MOD_EQUAL=271,r.Parser.prototype.T_AND_EQUAL=272,r.Parser.prototype.T_OR_EQUAL=273,r.Parser.prototype.T_XOR_EQUAL=274,r.Parser.prototype.T_SL_EQUAL=275,r.Parser.prototype.T_SR_EQUAL=276,r.Parser.prototype.T_BOOLEAN_OR=277,r.Parser.prototype.T_BOOLEAN_AND=278,r.Parser.prototype.T_IS_EQUAL=279,r.Parser.prototype.T_IS_NOT_EQUAL=280,r.Parser.prototype.T_IS_IDENTICAL=281,r.Parser.prototype.T_IS_NOT_IDENTICAL=282,r.Parser.prototype.T_IS_SMALLER_OR_EQUAL=283,r.Parser.prototype.T_IS_GREATER_OR_EQUAL=284,r.Parser.prototype.T_SL=285,r.Parser.prototype.T_SR=286,r.Parser.prototype.T_INSTANCEOF=287,r.Parser.prototype.T_INC=288,r.Parser.prototype.T_DEC=289,r.Parser.prototype.T_INT_CAST=290,r.Parser.prototype.T_DOUBLE_CAST=291,r.Parser.prototype.T_STRING_CAST=292,r.Parser.prototype.T_ARRAY_CAST=293,r.Parser.prototype.T_OBJECT_CAST=294,r.Parser.prototype.T_BOOL_CAST=295,r.Parser.prototype.T_UNSET_CAST=296,r.Parser.prototype.T_NEW=297,r.Parser.prototype.T_CLONE=298,r.Parser.prototype.T_EXIT=299,r.Parser.prototype.T_IF=300,r.Parser.prototype.T_ELSEIF=301,r.Parser.prototype.T_ELSE=302,r.Parser.prototype.T_ENDIF=303,r.Parser.prototype.T_LNUMBER=304,r.Parser.prototype.T_DNUMBER=305,r.Parser.prototype.T_STRING=306,r.Parser.prototype.T_STRING_VARNAME=307,r.Parser.prototype.T_VARIABLE=308,r.Parser.prototype.T_NUM_STRING=309,r.Parser.prototype.T_INLINE_HTML=310,r.Parser.prototype.T_CHARACTER=311,r.Parser.prototype.T_BAD_CHARACTER=312,r.Parser.prototype.T_ENCAPSED_AND_WHITESPACE=313,r.Parser.prototype.T_CONSTANT_ENCAPSED_STRING=314,r.Parser.prototype.T_ECHO=315,r.Parser.prototype.T_DO=316,r.Parser.prototype.T_WHILE=317,r.Parser.prototype.T_ENDWHILE=318,r.Parser.prototype.T_FOR=319,r.Parser.prototype.T_ENDFOR=320,r.Parser.prototype.T_FOREACH=321,r.Parser.prototype.T_ENDFOREACH=322,r.Parser.prototype.T_DECLARE=323,r.Parser.prototype.T_ENDDECLARE=324,r.Parser.prototype.T_AS=325,r.Parser.prototype.T_SWITCH=326,r.Parser.prototype.T_ENDSWITCH=327,r.Parser.prototype.T_CASE=328,r.Parser.prototype.T_DEFAULT=329,r.Parser.prototype.T_BREAK=330,r.Parser.prototype.T_CONTINUE=331,r.Parser.prototype.T_GOTO=332,r.Parser.prototype.T_FUNCTION=333,r.Parser.prototype.T_CONST=334,r.Parser.prototype.T_RETURN=335,r.Parser.prototype.T_TRY=336,r.Parser.prototype.T_CATCH=337,r.Parser.prototype.T_THROW=338,r.Parser.prototype.T_USE=339,r.Parser.prototype.T_INSTEADOF=340,r.Parser.prototype.T_GLOBAL=341,r.Parser.prototype.T_STATIC=342,r.Parser.prototype.T_ABSTRACT=343,r.Parser.prototype.T_FINAL=344,r.Parser.prototype.T_PRIVATE=345,r.Parser.prototype.T_PROTECTED=346,r.Parser.prototype.T_PUBLIC=347,r.Parser.prototype.T_VAR=348,r.Parser.prototype.T_UNSET=349,r.Parser.prototype.T_ISSET=350,r.Parser.prototype.T_EMPTY=351,r.Parser.prototype.T_HALT_COMPILER=352,r.Parser.prototype.T_CLASS=353,r.Parser.prototype.T_TRAIT=354,r.Parser.prototype.T_INTERFACE=355,r.Parser.prototype.T_EXTENDS=356,r.Parser.prototype.T_IMPLEMENTS=357,r.Parser.prototype.T_OBJECT_OPERATOR=358,r.Parser.prototype.T_DOUBLE_ARROW=359,r.Parser.prototype.T_LIST=360,r.Parser.prototype.T_ARRAY=361,r.Parser.prototype.T_CALLABLE=362,r.Parser.prototype.T_CLASS_C=363,r.Parser.prototype.T_TRAIT_C=364,r.Parser.prototype.T_METHOD_C=365,r.Parser.prototype.T_FUNC_C=366,r.Parser.prototype.T_LINE=367,r.Parser.prototype.T_FILE=368,r.Parser.prototype.T_COMMENT=369,r.Parser.prototype.T_DOC_COMMENT=370,r.Parser.prototype.T_OPEN_TAG=371,r.Parser.prototype.T_OPEN_TAG_WITH_ECHO=372,r.Parser.prototype.T_CLOSE_TAG=373,r.Parser.prototype.T_WHITESPACE=374,r.Parser.prototype.T_START_HEREDOC=375,r.Parser.prototype.T_END_HEREDOC=376,r.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES=377,r.Parser.prototype.T_CURLY_OPEN=378,r.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM=379,r.Parser.prototype.T_NAMESPACE=380,r.Parser.prototype.T_NS_C=381,r.Parser.prototype.T_DIR=382,r.Parser.prototype.T_NS_SEPARATOR=383,r.Parser.prototype.terminals=["$EOF","error","T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","','","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","'='","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","'?'","':'","T_BOOLEAN_OR","T_BOOLEAN_AND","'|'","'^'","'&'","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","'<'","T_IS_SMALLER_OR_EQUAL","'>'","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","'+'","'-'","'.'","'*'","'/'","'%'","'!'","T_INSTANCEOF","'~'","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","'@'","'['","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR","';'","'{'","'}'","'('","')'","'$'","']'","'`'","'\"'","???"],r.Parser.prototype.translate=[0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,47,148,149,145,46,30,149,143,144,44,41,7,42,43,45,149,149,149,149,149,149,149,149,149,149,25,140,35,12,37,24,59,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,60,149,146,29,149,147,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,141,28,142,49,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,1,2,3,4,5,6,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,26,27,31,32,33,34,36,38,39,40,48,50,51,52,53,54,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,149,149,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,149,149,149,149,149,149,131,132,133,134,135,136,137,138,139],r.Parser.prototype.yyaction=[61,62,363,63,64,-32766,-32766,-32766,509,65,708,709,710,707,706,705,-32766,-32766,-32766,-32766,-32766,-32766,132,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32766,335,-32766,-32766,-32766,-32766,-32766,66,67,351,663,664,40,68,548,69,232,233,70,71,72,73,74,75,76,77,30,246,78,336,364,-112,0,469,833,834,365,641,890,436,590,41,835,53,27,366,294,367,687,368,921,369,923,922,370,-32766,-32766,-32766,42,43,371,339,126,44,372,337,79,297,349,292,293,-32766,918,-32766,-32766,373,374,375,376,377,391,199,361,338,573,613,378,379,380,381,845,839,840,841,842,836,837,253,-32766,87,88,89,391,843,838,338,597,519,128,80,129,273,332,257,261,47,673,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,799,247,884,108,109,110,226,247,21,-32766,310,-32766,-32766,-32766,642,548,-32766,-32766,-32766,-32766,56,353,-32766,-32766,-32766,55,-32766,-32766,-32766,-32766,-32766,58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,557,-32766,-32766,518,-32766,548,890,-32766,390,-32766,228,252,-32766,-32766,-32766,-32766,-32766,275,-32766,234,-32766,587,588,-32766,-32766,-32766,-32766,-32766,-32766,-32766,46,236,-32766,-32766,281,-32766,682,348,-32766,390,-32766,346,333,521,-32766,-32766,-32766,271,911,262,237,446,911,-32766,894,59,700,358,135,548,123,538,35,-32766,333,122,-32766,-32766,-32766,271,-32766,124,-32766,692,-32766,-32766,-32766,-32766,700,273,22,-32766,-32766,-32766,-32766,239,-32766,-32766,612,-32766,548,134,-32766,390,-32766,462,354,-32766,-32766,-32766,-32766,-32766,227,-32766,238,-32766,845,542,-32766,856,611,200,-32766,-32766,-32766,259,280,-32766,-32766,201,-32766,855,129,-32766,390,130,202,333,206,-32766,-32766,-32766,271,-32766,-32766,-32766,125,601,-32766,136,299,700,489,28,548,105,106,107,-32766,498,499,-32766,-32766,-32766,207,-32766,133,-32766,525,-32766,-32766,-32766,-32766,663,664,527,-32766,-32766,-32766,-32766,528,-32766,-32766,610,-32766,548,427,-32766,390,-32766,532,539,-32766,-32766,-32766,-32766,-32766,240,-32766,247,-32766,697,543,-32766,554,523,608,-32766,-32766,-32766,686,535,-32766,-32766,54,-32766,57,60,-32766,390,246,-155,278,345,-32766,-32766,-32766,506,347,-152,471,402,403,-32766,405,404,272,493,416,548,318,417,505,-32766,517,548,-32766,-32766,-32766,549,-32766,562,-32766,916,-32766,-32766,-32766,-32766,564,826,848,-32766,-32766,-32766,-32766,694,-32766,-32766,485,-32766,548,487,-32766,390,-32766,504,802,-32766,-32766,-32766,-32766,-32766,279,-32766,911,-32766,502,492,-32766,413,483,269,-32766,-32766,-32766,243,337,-32766,-32766,418,-32766,454,229,-32766,390,274,373,374,344,-32766,-32766,-32766,360,614,-32766,573,613,378,379,-274,548,615,-332,844,-32766,258,51,-32766,-32766,-32766,270,-32766,346,-32766,52,-32766,260,0,-32766,-333,-32766,-32766,-32766,-32766,-32766,-32766,205,-32766,-32766,49,-32766,548,424,-32766,390,-32766,-266,264,-32766,-32766,-32766,-32766,-32766,409,-32766,343,-32766,265,312,-32766,470,513,-275,-32766,-32766,-32766,920,337,-32766,-32766,530,-32766,531,600,-32766,390,592,373,374,578,581,-32766,-32766,644,629,-32766,573,613,378,379,635,548,636,576,627,-32766,625,693,-32766,-32766,-32766,691,-32766,591,-32766,582,-32766,203,204,-32766,584,583,-32766,-32766,-32766,-32766,586,599,-32766,-32766,589,-32766,690,558,-32766,390,197,683,919,86,520,522,-32766,524,833,834,529,533,-32766,534,537,541,835,48,111,112,113,114,115,116,117,118,119,120,121,127,31,633,337,330,634,585,-32766,32,291,337,330,478,373,374,917,291,891,889,875,373,374,553,613,378,379,737,739,887,553,613,378,379,824,451,675,839,840,841,842,836,837,320,895,277,885,23,33,843,838,556,277,337,330,-32766,34,-32766,555,291,36,37,38,373,374,39,45,50,81,82,83,84,553,613,378,379,-32767,-32767,-32767,-32767,103,104,105,106,107,337,85,131,137,337,138,198,224,225,277,373,374,-332,230,373,374,24,337,231,573,613,378,379,573,613,378,379,373,374,235,248,249,250,337,251,0,573,613,378,379,276,329,331,373,374,-32766,337,574,490,792,337,609,573,613,378,379,373,374,25,300,373,374,319,337,795,573,613,378,379,573,613,378,379,373,374,516,355,359,445,482,796,507,573,613,378,379,508,548,337,890,775,791,337,604,803,808,806,698,373,374,888,807,373,374,-32766,-32766,-32766,573,613,378,379,573,613,378,379,873,832,804,872,851,-32766,809,-32766,-32766,-32766,-32766,805,20,26,29,298,480,515,770,778,827,457,0,900,455,774,0,0,0,874,870,886,823,915,852,869,488,0,391,793,0,338,0,0,0,340,0,273],r.Parser.prototype.yycheck=[2,3,4,5,6,8,9,10,70,11,104,105,106,107,108,109,8,9,10,8,9,24,60,26,27,28,29,30,31,32,33,34,24,7,26,27,28,29,30,41,42,7,123,124,7,47,70,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,144,0,75,68,69,70,25,72,70,74,7,76,77,78,79,7,81,142,83,70,85,72,73,88,8,9,10,92,93,94,95,7,97,98,95,100,7,7,103,104,24,142,26,27,105,106,111,112,113,136,7,7,139,114,115,116,117,122,123,132,125,126,127,128,129,130,131,8,8,9,10,136,137,138,139,140,141,25,143,141,145,142,147,148,24,72,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,144,48,72,44,45,46,30,48,144,64,72,8,9,10,140,70,8,9,10,74,60,25,77,78,79,60,81,24,83,26,85,60,24,88,26,27,28,92,93,94,64,140,97,98,70,100,70,72,103,104,74,145,7,77,78,79,111,81,7,83,30,85,140,140,88,8,9,10,92,93,94,133,134,97,98,145,100,140,7,103,104,24,139,96,141,140,141,111,101,75,75,30,70,75,64,70,60,110,121,12,70,141,25,143,74,96,141,77,78,79,101,81,141,83,140,85,140,141,88,110,145,144,92,93,94,64,7,97,98,142,100,70,141,103,104,74,145,141,77,78,79,111,81,7,83,30,85,132,25,88,132,142,12,92,93,94,120,60,97,98,12,100,148,141,103,104,141,12,96,12,140,141,111,101,8,9,10,141,25,64,90,91,110,65,66,70,41,42,43,74,65,66,77,78,79,12,81,25,83,25,85,140,141,88,123,124,25,92,93,94,64,25,97,98,142,100,70,120,103,104,74,25,25,77,78,79,111,81,30,83,48,85,140,141,88,140,141,30,92,93,94,140,141,97,98,60,100,60,60,103,104,61,72,75,70,140,141,111,67,70,87,99,70,70,64,70,72,102,89,70,70,71,70,70,74,70,70,77,78,79,70,81,70,83,70,85,140,141,88,70,144,70,92,93,94,64,70,97,98,72,100,70,72,103,104,74,72,72,77,78,79,111,81,75,83,75,85,89,86,88,79,101,118,92,93,94,87,95,97,98,87,100,87,87,103,104,118,105,106,95,140,141,111,95,115,64,114,115,116,117,135,70,115,120,132,74,120,140,77,78,79,119,81,139,83,140,85,120,-1,88,120,140,141,92,93,94,64,121,97,98,121,100,70,122,103,104,74,135,135,77,78,79,111,81,139,83,139,85,135,135,88,135,135,135,92,93,94,142,95,97,98,140,100,140,140,103,104,140,105,106,140,140,141,111,140,140,64,114,115,116,117,140,70,140,140,140,74,140,140,77,78,79,140,81,140,83,140,85,41,42,88,140,140,141,92,93,94,140,140,97,98,140,100,140,140,103,104,60,140,142,141,141,141,111,141,68,69,141,141,72,141,141,141,76,12,13,14,15,16,17,18,19,20,21,22,23,141,143,142,95,96,142,140,141,143,101,95,96,142,105,106,142,101,142,142,142,105,106,114,115,116,117,50,51,142,114,115,116,117,142,123,142,125,126,127,128,129,130,131,142,136,142,144,143,137,138,142,136,95,96,143,143,145,142,101,143,143,143,105,106,143,143,143,143,143,143,143,114,115,116,117,35,36,37,38,39,40,41,42,43,95,143,143,143,95,143,143,143,143,136,105,106,120,143,105,106,144,95,143,114,115,116,117,114,115,116,117,105,106,143,143,143,143,95,143,-1,114,115,116,117,143,143,143,105,106,143,95,142,80,146,95,142,114,115,116,117,105,106,144,144,105,106,144,95,142,114,115,116,117,114,115,116,117,105,106,82,144,144,144,144,142,84,114,115,116,117,144,70,95,72,144,144,95,142,144,146,144,142,105,106,146,144,105,106,8,9,10,114,115,116,117,114,115,116,117,144,144,144,144,144,24,104,26,27,28,29,144,144,144,144,144,144,144,144,144,144,144,-1,144,144,144,-1,-1,-1,146,146,146,146,146,146,146,146,-1,136,147,-1,139,-1,-1,-1,143,-1,145],r.Parser.prototype.yybase=[0,574,581,623,655,2,718,402,747,659,672,688,743,701,705,483,483,483,483,483,351,356,366,366,367,366,344,-2,-2,-2,200,200,231,231,231,231,231,231,231,231,200,231,451,482,532,316,370,115,146,285,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,44,474,429,476,481,487,488,739,740,741,734,733,416,736,539,541,342,542,543,552,557,559,536,567,737,755,569,735,738,123,123,123,123,123,123,123,123,123,122,11,336,336,336,336,336,336,336,336,336,336,336,336,336,336,336,227,227,173,577,577,577,577,577,577,577,577,577,577,577,79,178,846,8,-3,-3,-3,-3,642,706,706,706,706,157,179,242,431,431,360,431,525,368,767,767,767,767,767,767,767,767,767,767,767,767,350,375,315,315,652,652,-81,-81,-81,-81,251,185,188,184,-62,348,195,195,195,408,392,410,1,192,129,129,129,-24,-24,-24,-24,499,-24,-24,-24,113,108,108,12,161,349,526,271,398,529,438,130,206,265,427,76,414,427,288,295,76,166,44,262,422,141,491,372,494,413,71,92,93,267,135,100,34,415,745,746,742,-38,420,-10,135,147,744,498,107,26,493,144,377,363,369,332,363,400,377,588,377,376,377,360,37,582,376,377,374,376,388,363,364,412,369,377,441,443,390,106,332,377,390,377,400,64,590,591,323,592,589,593,649,608,362,500,399,407,620,625,636,365,354,614,524,425,359,355,423,570,578,357,406,414,394,352,403,531,433,403,653,434,385,417,411,444,310,318,501,425,668,757,380,637,684,403,609,387,87,325,638,382,403,639,403,696,503,615,403,697,384,435,425,352,352,352,700,66,699,583,702,707,704,748,721,749,584,750,358,583,722,751,682,215,613,422,436,389,447,221,257,752,403,403,506,499,403,395,685,397,426,753,392,391,647,683,403,418,754,221,723,587,724,450,568,507,648,509,327,725,353,497,610,454,622,455,461,404,510,373,732,612,247,361,664,463,405,692,641,464,465,511,343,437,335,409,396,665,293,467,468,472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,0,0,0,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,0,0,0,0,0,0,0,0,0,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,767,767,767,767,767,767,767,767,767,767,767,123,123,123,123,123,123,123,123,0,129,129,129,129,-94,-94,-94,767,767,767,767,767,767,0,0,0,0,0,0,0,0,0,0,0,0,-94,-94,129,129,767,767,-24,-24,-24,-24,-24,108,108,108,-24,108,145,145,145,108,108,108,100,100,0,0,0,0,0,0,0,145,0,0,0,376,0,0,0,145,260,260,221,260,260,135,0,0,425,376,0,364,376,0,0,0,0,0,0,531,0,87,637,241,425,0,0,0,0,0,0,0,425,289,289,306,0,358,0,0,0,306,241,0,0,221],r.Parser.prototype.yydefault=[3,32767,32767,1,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,104,96,110,95,106,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,358,358,122,122,122,122,122,122,122,122,316,32767,32767,32767,32767,32767,32767,32767,32767,32767,173,173,173,32767,348,348,348,348,348,348,348,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,363,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,232,233,235,236,172,125,349,362,171,199,201,250,200,177,182,183,184,185,186,187,188,189,190,191,192,176,229,228,197,313,313,316,32767,32767,32767,32767,32767,32767,32767,32767,198,202,204,203,219,220,217,218,175,221,222,223,224,157,157,157,357,357,32767,357,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,158,32767,211,212,276,276,117,117,117,117,117,32767,32767,32767,32767,284,32767,32767,32767,32767,32767,286,32767,32767,206,207,205,32767,32767,32767,32767,32767,32767,32767,32767,32767,285,32767,32767,32767,32767,32767,32767,32767,32767,334,321,272,32767,32767,32767,265,32767,107,109,32767,32767,32767,32767,302,339,32767,32767,32767,17,32767,32767,32767,370,334,32767,32767,19,32767,32767,32767,32767,227,32767,338,332,32767,32767,32767,32767,32767,32767,63,32767,32767,32767,32767,32767,63,281,63,32767,63,32767,315,287,32767,63,74,32767,72,32767,32767,76,32767,63,93,93,254,315,54,63,254,63,32767,32767,32767,32767,4,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,267,32767,323,32767,337,336,324,32767,265,32767,215,194,266,32767,196,32767,32767,270,273,32767,32767,32767,134,32767,268,180,32767,32767,32767,32767,365,32767,32767,174,32767,32767,32767,130,32767,61,332,32767,32767,355,32767,32767,332,269,208,209,210,32767,121,32767,310,32767,32767,32767,32767,32767,32767,327,32767,333,32767,32767,32767,32767,111,32767,302,32767,32767,32767,75,32767,32767,178,126,32767,32767,364,32767,32767,32767,320,32767,32767,32767,32767,32767,62,32767,32767,77,32767,32767,32767,32767,332,32767,32767,32767,115,32767,169,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,332,32767,32767,32767,32767,32767,32767,32767,4,32767,151,32767,32767,32767,32767,32767,32767,32767,25,25,3,137,3,137,25,101,25,25,137,93,93,25,25,25,144,25,25,25,25,25,25,25,25],r.Parser.prototype.yygoto=[141,141,173,173,173,173,173,173,173,173,141,173,142,143,144,148,153,155,181,175,172,172,172,172,174,174,174,174,174,174,174,168,169,170,171,179,757,758,392,760,781,782,783,784,785,786,787,789,725,145,146,147,149,150,151,152,154,177,178,180,196,208,209,210,211,212,213,214,215,217,218,219,220,244,245,266,267,268,430,431,432,182,183,184,185,186,187,188,189,190,191,192,156,157,158,159,176,160,194,161,162,163,164,195,165,193,139,166,167,452,452,452,452,452,452,452,452,452,452,452,453,453,453,453,453,453,453,453,453,453,453,551,551,551,464,491,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,407,552,552,552,810,810,662,662,662,662,662,594,283,595,510,399,399,567,679,632,849,850,863,660,714,426,222,622,622,622,622,223,617,623,494,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,465,472,514,904,398,398,425,425,459,425,419,322,421,421,393,396,412,422,428,460,463,473,481,501,5,476,284,327,1,15,2,6,7,550,550,550,8,9,10,668,16,11,17,12,18,13,19,14,704,328,881,881,643,628,626,626,624,626,526,401,652,647,847,847,847,847,847,847,847,847,847,847,847,437,438,441,447,477,479,497,290,910,910,400,400,486,880,880,263,913,910,303,255,723,306,822,821,306,896,896,896,861,304,323,410,913,913,897,316,420,769,658,559,879,671,536,324,466,565,311,311,311,801,241,676,496,439,440,442,444,448,475,631,858,311,285,286,603,495,712,0,406,321,0,0,0,314,0,0,429,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411],r.Parser.prototype.yygcheck=[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,35,35,35,35,35,35,35,35,35,35,35,86,86,86,86,86,86,86,86,86,86,86,6,6,6,21,21,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,71,7,7,7,35,35,35,35,35,35,35,29,44,29,35,86,86,12,12,12,12,12,12,12,12,75,40,35,35,35,35,40,35,35,35,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,36,36,36,104,82,82,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,13,42,42,42,2,13,2,13,13,5,5,5,13,13,13,54,13,13,13,13,13,13,13,13,67,67,83,83,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,52,52,52,52,52,52,52,4,105,105,89,89,94,84,84,92,105,105,26,92,71,4,91,91,4,84,84,84,97,30,70,30,105,105,102,27,30,72,50,10,84,55,46,9,30,11,90,90,90,80,30,56,30,85,85,85,85,85,85,43,96,90,44,44,34,77,69,-1,4,90,-1,-1,-1,4,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,71],r.Parser.prototype.yygbase=[0,0,-286,0,10,239,130,154,0,-10,25,-23,-29,-289,0,-30,0,0,0,0,0,83,0,0,0,0,245,84,-11,142,-28,0,0,0,-13,-88,-42,0,0,0,-344,0,-38,-12,-188,0,23,0,0,0,66,0,247,0,205,24,-18,0,0,0,0,0,0,0,0,0,0,13,0,-15,85,74,70,0,0,148,0,-14,0,0,-6,0,-35,11,47,278,-77,0,0,44,68,43,38,72,94,0,-16,109,0,0,0,0,87,0,170,34,0],r.Parser.prototype.yygdefault=[-32768,362,3,546,382,570,571,572,307,305,560,566,467,4,568,140,295,575,296,500,577,414,579,580,308,309,415,315,216,593,503,313,596,357,602,301,449,383,350,461,221,423,456,630,282,638,540,646,649,450,657,352,433,434,667,672,677,680,334,325,474,684,685,256,689,511,512,703,242,711,317,724,342,788,790,397,408,484,797,326,800,384,385,386,387,435,818,815,289,866,287,443,254,853,468,356,903,862,288,388,389,302,898,341,905,912,458],r.Parser.prototype.yylhs=[0,1,2,2,4,4,3,3,3,3,3,3,3,3,3,8,8,10,10,10,10,9,9,11,13,13,14,14,14,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,33,33,34,27,27,30,30,6,7,7,7,37,37,37,38,38,41,41,39,39,42,42,22,22,29,29,32,32,31,31,43,23,23,23,23,44,44,45,45,46,46,20,20,16,16,47,18,18,48,17,17,19,19,36,36,49,49,50,50,51,51,51,51,52,52,53,53,54,54,24,24,55,55,55,25,25,56,56,40,40,57,57,57,57,62,62,63,63,64,64,64,64,65,66,66,61,61,58,58,60,60,68,68,67,67,67,67,67,67,59,59,69,69,26,26,21,21,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,71,77,77,79,79,80,81,81,81,81,81,81,86,86,35,35,35,72,72,87,87,82,82,88,88,88,88,88,73,73,73,76,76,76,78,78,93,93,93,93,93,93,93,93,93,93,93,93,93,93,12,12,12,12,12,12,74,74,74,74,94,94,96,96,95,95,97,97,28,28,28,28,99,99,98,98,98,98,98,100,100,84,84,89,89,83,83,101,101,101,101,90,90,90,90,85,85,91,91,91,70,70,102,102,102,75,75,103,103,104,104,104,104,92,92,92,92,105,105,105,105,105,105,105,106,106,106],r.Parser.prototype.yylen=[1,1,2,0,1,3,1,1,1,1,3,5,4,3,3,3,1,1,3,2,4,3,1,3,2,0,1,1,1,1,3,7,10,5,7,9,5,2,3,2,3,2,3,3,3,3,1,2,5,7,8,10,5,1,5,3,3,2,1,2,8,1,3,0,1,9,7,6,5,1,2,2,0,2,0,2,0,2,1,3,1,4,1,4,1,4,1,3,3,3,4,4,5,0,2,4,3,1,1,1,4,0,2,5,0,2,6,0,2,0,3,1,0,1,3,3,5,0,1,1,1,1,0,1,3,1,2,3,1,1,2,4,3,1,1,3,2,0,3,3,8,3,1,3,0,2,4,5,4,4,3,1,1,1,3,1,1,0,1,1,2,1,1,1,1,1,1,1,3,1,3,3,1,0,1,1,6,3,4,4,1,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,5,4,4,4,2,2,4,2,2,2,2,2,2,2,2,2,2,2,1,4,3,3,2,9,10,3,0,4,1,3,2,4,6,8,4,4,4,1,1,1,2,3,1,1,1,1,1,1,0,3,3,4,4,0,2,3,0,1,1,0,3,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,3,2,2,4,3,1,3,3,3,0,2,0,1,3,1,3,1,1,1,1,1,6,4,3,6,4,4,4,1,3,1,2,1,1,4,1,3,6,4,4,4,4,1,4,0,1,1,3,1,3,1,1,4,0,0,2,3,1,3,1,4,2,2,2,1,2,1,4,3,3,3,6,3,1,1,1],r.Parser.prototype.yyn0=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn1=function(e){this.yyval=this.Stmt_Namespace_postprocess(this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn2=function(e){Array.isArray(this.yyastk[this.stackPos-0])?this.yyval=this.yyastk[this.stackPos-1].concat(this.yyastk[this.stackPos-0]):(this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1])},r.Parser.prototype.yyn3=function(e){this.yyval=[]},r.Parser.prototype.yyn4=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn5=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn6=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn7=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn8=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn9=function(e){this.yyval=this.Node_Stmt_HaltCompiler(e)},r.Parser.prototype.yyn10=function(e){this.yyval=this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[this.stackPos-1],e),null,e)},r.Parser.prototype.yyn11=function(e){this.yyval=this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[this.stackPos-3],e),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn12=function(e){this.yyval=this.Node_Stmt_Namespace(null,this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn13=function(e){this.yyval=this.Node_Stmt_Use(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn14=function(e){this.yyval=this.Node_Stmt_Const(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn15=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn16=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn17=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-0],e),null,e)},r.Parser.prototype.yyn18=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-2],e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn19=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-0],e),null,e)},r.Parser.prototype.yyn20=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-2],e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn21=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn22=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn23=function(e){this.yyval=this.Node_Const(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn24=function(e){Array.isArray(this.yyastk[this.stackPos-0])?this.yyval=this.yyastk[this.stackPos-1].concat(this.yyastk[this.stackPos-0]):(this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1])},r.Parser.prototype.yyn25=function(e){this.yyval=[]},r.Parser.prototype.yyn26=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn27=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn28=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn29=function(e){throw new Error("__halt_compiler() can only be used from the outermost scope")},r.Parser.prototype.yyn30=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn31=function(e){this.yyval=this.Node_Stmt_If(this.yyastk[this.stackPos-4],{stmts:Array.isArray(this.yyastk[this.stackPos-2])?this.yyastk[this.stackPos-2]:[this.yyastk[this.stackPos-2]],elseifs:this.yyastk[this.stackPos-1],Else:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn32=function(e){this.yyval=this.Node_Stmt_If(this.yyastk[this.stackPos-7],{stmts:this.yyastk[this.stackPos-4],elseifs:this.yyastk[this.stackPos-3],"else":this.yyastk[this.stackPos-2]},e)},r.Parser.prototype.yyn33=function(e){this.yyval=this.Node_Stmt_While(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn34=function(e){this.yyval=this.Node_Stmt_Do(this.yyastk[this.stackPos-2],Array.isArray(this.yyastk[this.stackPos-5])?this.yyastk[this.stackPos-5]:[this.yyastk[this.stackPos-5]],e)},r.Parser.prototype.yyn35=function(e){this.yyval=this.Node_Stmt_For({init:this.yyastk[this.stackPos-6],cond:this.yyastk[this.stackPos-4],loop:this.yyastk[this.stackPos-2],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn36=function(e){this.yyval=this.Node_Stmt_Switch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn37=function(e){this.yyval=this.Node_Stmt_Break(null,e)},r.Parser.prototype.yyn38=function(e){this.yyval=this.Node_Stmt_Break(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn39=function(e){this.yyval=this.Node_Stmt_Continue(null,e)},r.Parser.prototype.yyn40=function(e){this.yyval=this.Node_Stmt_Continue(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn41=function(e){this.yyval=this.Node_Stmt_Return(null,e)},r.Parser.prototype.yyn42=function(e){this.yyval=this.Node_Stmt_Return(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn43=function(e){this.yyval=this.Node_Stmt_Global(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn44=function(e){this.yyval=this.Node_Stmt_Static(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn45=function(e){this.yyval=this.Node_Stmt_Echo(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn46=function(e){this.yyval=this.Node_Stmt_InlineHTML(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn47=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn48=function(e){this.yyval=this.Node_Stmt_Unset(this.yyastk[this.stackPos-2],e)},r.Parser.prototype.yyn49=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-2],{keyVar:null,byRef:!1,stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn50=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-2],{keyVar:null,byRef:!0,stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn51=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-7],this.yyastk[this.stackPos-2],{keyVar:this.yyastk[this.stackPos-5],byRef:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn52=function(e){this.yyval=this.Node_Stmt_Declare(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn53=function(e){this.yyval=[]},r.Parser.prototype.yyn54=function(e){this.yyval=this.Node_Stmt_TryCatch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn55=function(e){this.yyval=this.Node_Stmt_Throw(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn56=function(e){this.yyval=this.Node_Stmt_Goto(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn57=function(e){this.yyval=this.Node_Stmt_Label(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn58=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn59=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn60=function(e){this.yyval=this.Node_Stmt_Catch(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-4].substring(1),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn61=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn62=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn63=function(e){this.yyval=!1},r.Parser.prototype.yyn64=function(e){this.yyval=!0},r.Parser.prototype.yyn65=function(e){this.yyval=this.Node_Stmt_Function(this.yyastk[this.stackPos-6],{byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-4],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn66=function(e){this.yyval=this.Node_Stmt_Class(this.yyastk[this.stackPos-5],{type:this.yyastk[this.stackPos-6],Extends:this.yyastk[this.stackPos-4],Implements:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn67=function(e){this.yyval=this.Node_Stmt_Interface(this.yyastk[this.stackPos-4],{Extends:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn68=function(e){this.yyval=this.Node_Stmt_Trait(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn69=function(e){this.yyval=0},r.Parser.prototype.yyn70=function(e){this.yyval=this.MODIFIER_ABSTRACT},r.Parser.prototype.yyn71=function(e){this.yyval=this.MODIFIER_FINAL},r.Parser.prototype.yyn72=function(e){this.yyval=null},r.Parser.prototype.yyn73=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn74=function(e){this.yyval=[]},r.Parser.prototype.yyn75=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn76=function(e){this.yyval=[]},r.Parser.prototype.yyn77=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn78=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn79=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn80=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn81=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn82=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn83=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn84=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn85=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn86=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn87=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn88=function(e){this.yyval=this.Node_Stmt_DeclareDeclare(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn89=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn90=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn91=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn92=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn93=function(e){this.yyval=[]},r.Parser.prototype.yyn94=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn95=function(e){this.yyval=this.Node_Stmt_Case(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn96=function(e){this.yyval=this.Node_Stmt_Case(null,this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn97=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn98=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn99=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn100=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn101=function(e){this.yyval=[]},r.Parser.prototype.yyn102=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn103=function(e){this.yyval=this.Node_Stmt_ElseIf(this.yyastk[this.stackPos-2],Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]],e)},r.Parser.prototype.yyn104=function(e){this.yyval=[]},r.Parser.prototype.yyn105=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn106=function(e){this.yyval=this.Node_Stmt_ElseIf(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn107=function(e){this.yyval=null},r.Parser.prototype.yyn108=function(e){this.yyval=this.Node_Stmt_Else(Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]],e)},r.Parser.prototype.yyn109=function(e){this.yyval=null},r.Parser.prototype.yyn110=function(e){this.yyval=this.Node_Stmt_Else(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn111=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn112=function(e){this.yyval=[]},r.Parser.prototype.yyn113=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn114=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn115=function(e){this.yyval=this.Node_Param(this.yyastk[this.stackPos-0].substring(1),null,this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn116=function(e){this.yyval=this.Node_Param(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-3],e)},r.Parser.prototype.yyn117=function(e){this.yyval=null},r.Parser.prototype.yyn118=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn119=function(e){this.yyval="array"},r.Parser.prototype.yyn120=function(e){this.yyval="callable"},r.Parser.prototype.yyn121=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn122=function(e){this.yyval=[]},r.Parser.prototype.yyn123=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn124=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn125=function(e){this.yyval=this.Node_Arg(this.yyastk[this.stackPos-0],!1,e)},r.Parser.prototype.yyn126=function(e){this.yyval=this.Node_Arg(this.yyastk[this.stackPos-0],!0,e)},r.Parser.prototype.yyn127=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn128=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn129=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn130=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn131=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn132=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn133=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn134=function(e){this.yyval=this.Node_Stmt_StaticVar(this.yyastk[this.stackPos-0].substring(1),null,e)},r.Parser.prototype.yyn135=function(e){this.yyval=this.Node_Stmt_StaticVar(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn136=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn137=function(e){this.yyval=[]},r.Parser.prototype.yyn138=function(e){this.yyval=this.Node_Stmt_Property(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn139=function(e){this.yyval=this.Node_Stmt_ClassConst(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn140=function(e){this.yyval=this.Node_Stmt_ClassMethod(this.yyastk[this.stackPos-4],{type:this.yyastk[this.stackPos-7],byRef:this.yyastk[this.stackPos-5],params:this.yyastk[this.stackPos-2],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn141=function(e){this.yyval=this.Node_Stmt_TraitUse(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn142=function(e){this.yyval=[]},r.Parser.prototype.yyn143=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn144=function(e){this.yyval=[]},r.Parser.prototype.yyn145=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn146=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn147=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-4][0],this.yyastk[this.stackPos-4][1],this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn148=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],this.yyastk[this.stackPos-1],null,e)},r.Parser.prototype.yyn149=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],null,this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn150=function(e){this.yyval=array(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn151=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn152=function(e){this.yyval=array(null,this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn153=function(e){this.yyval=null},r.Parser.prototype.yyn154=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn155=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn156=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn157=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn158=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn159=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn160=function(e){this.Stmt_Class_verifyModifier(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]|this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn161=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn162=function(e){this.yyval=this.MODIFIER_PROTECTED},r.Parser.prototype.yyn163=function(e){this.yyval=this.MODIFIER_PRIVATE},r.Parser.prototype.yyn164=function(e){this.yyval=this.MODIFIER_STATIC},r.Parser.prototype.yyn165=function(e){this.yyval=this.MODIFIER_ABSTRACT},r.Parser.prototype.yyn166=function(e){this.yyval=this.MODIFIER_FINAL},r.Parser.prototype.yyn167=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn168=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn169=function(e){this.yyval=this.Node_Stmt_PropertyProperty(this.yyastk[this.stackPos-0].substring(1),null,e)},r.Parser.prototype.yyn170=function(e){this.yyval=this.Node_Stmt_PropertyProperty(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn171=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn172=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn173=function(e){this.yyval=[]},r.Parser.prototype.yyn174=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn175=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn176=function(e){this.yyval=this.Node_Expr_AssignList(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn177=function(e){this.yyval=this.Node_Expr_Assign(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn178=function(e){this.yyval=this.Node_Expr_AssignRef(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn179=function(e){this.yyval=this.Node_Expr_AssignRef(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn180=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn181=function(e){this.yyval=this.Node_Expr_Clone(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn182=function(e){this.yyval=this.Node_Expr_AssignPlus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn183=function(e){this.yyval=this.Node_Expr_AssignMinus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn184=function(e){this.yyval=this.Node_Expr_AssignMul(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn185=function(e){this.yyval=this.Node_Expr_AssignDiv(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn186=function(e){this.yyval=this.Node_Expr_AssignConcat(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn187=function(e){this.yyval=this.Node_Expr_AssignMod(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn188=function(e){this.yyval=this.Node_Expr_AssignBitwiseAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn189=function(e){this.yyval=this.Node_Expr_AssignBitwiseOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn190=function(e){this.yyval=this.Node_Expr_AssignBitwiseXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn191=function(e){this.yyval=this.Node_Expr_AssignShiftLeft(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn192=function(e){this.yyval=this.Node_Expr_AssignShiftRight(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn193=function(e){this.yyval=this.Node_Expr_PostInc(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn194=function(e){this.yyval=this.Node_Expr_PreInc(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn195=function(e){this.yyval=this.Node_Expr_PostDec(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn196=function(e){this.yyval=this.Node_Expr_PreDec(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn197=function(e){this.yyval=this.Node_Expr_BooleanOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn198=function(e){this.yyval=this.Node_Expr_BooleanAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn199=function(e){this.yyval=this.Node_Expr_LogicalOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn200=function(e){this.yyval=this.Node_Expr_LogicalAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn201=function(e){this.yyval=this.Node_Expr_LogicalXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn202=function(e){this.yyval=this.Node_Expr_BitwiseOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn203=function(e){this.yyval=this.Node_Expr_BitwiseAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn204=function(e){this.yyval=this.Node_Expr_BitwiseXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn205=function(e){this.yyval=this.Node_Expr_Concat(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn206=function(e){this.yyval=this.Node_Expr_Plus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn207=function(e){this.yyval=this.Node_Expr_Minus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn208=function(e){this.yyval=this.Node_Expr_Mul(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn209=function(e){this.yyval=this.Node_Expr_Div(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn210=function(e){this.yyval=this.Node_Expr_Mod(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn211=function(e){this.yyval=this.Node_Expr_ShiftLeft(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn212=function(e){this.yyval=this.Node_Expr_ShiftRight(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn213=function(e){this.yyval=this.Node_Expr_UnaryPlus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn214=function(e){this.yyval=this.Node_Expr_UnaryMinus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn215=function(e){this.yyval=this.Node_Expr_BooleanNot(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn216=function(e){this.yyval=this.Node_Expr_BitwiseNot(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn217=function(e){this.yyval=this.Node_Expr_Identical(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn218=function(e){this.yyval=this.Node_Expr_NotIdentical(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn219=function(e){this.yyval=this.Node_Expr_Equal(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn220=function(e){this.yyval=this.Node_Expr_NotEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn221=function(e){this.yyval=this.Node_Expr_Smaller(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn222=function(e){this.yyval=this.Node_Expr_SmallerOrEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn223=function(e){this.yyval=this.Node_Expr_Greater(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn224=function(e){this.yyval=this.Node_Expr_GreaterOrEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn225=function(e){this.yyval=this.Node_Expr_Instanceof(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn226=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn227=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn228=function(e){this.yyval=this.Node_Expr_Ternary(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn229=function(e){this.yyval=this.Node_Expr_Ternary(this.yyastk[this.stackPos-3],null,this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn230=function(e){this.yyval=this.Node_Expr_Isset(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn231=function(e){this.yyval=this.Node_Expr_Empty(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn232=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],"Node_Expr_Include",e)},r.Parser.prototype.yyn233=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],"Node_Expr_IncludeOnce",e)},r.Parser.prototype.yyn234=function(e){this.yyval=this.Node_Expr_Eval(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn235=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],"Node_Expr_Require",e)},r.Parser.prototype.yyn236=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],"Node_Expr_RequireOnce",e)},r.Parser.prototype.yyn237=function(e){this.yyval=this.Node_Expr_Cast_Int(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn238=function(e){this.yyval=this.Node_Expr_Cast_Double(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn239=function(e){this.yyval=this.Node_Expr_Cast_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn240=function(e){this.yyval=this.Node_Expr_Cast_Array(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn241=function(e){this.yyval=this.Node_Expr_Cast_Object(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn242=function(e){this.yyval=this.Node_Expr_Cast_Bool(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn243=function(e){this.yyval=this.Node_Expr_Cast_Unset(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn244=function(e){this.yyval=this.Node_Expr_Exit(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn245=function(e){this.yyval=this.Node_Expr_ErrorSuppress(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn246=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn247=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn248=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn249=function(e){this.yyval=this.Node_Expr_ShellExec(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn250=function(e){this.yyval=this.Node_Expr_Print(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn251=function(e){this.yyval=this.Node_Expr_Closure({"static":!1,byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-5],uses:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn252=function(e){this.yyval=this.Node_Expr_Closure({"static":!0,byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-5],uses:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn253=function(e){this.yyval=this.Node_Expr_New(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn254=function(e){this.yyval=[]},r.Parser.prototype.yyn255=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn256=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn257=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn258=function(e){this.yyval=this.Node_Expr_ClosureUse(this.yyastk[this.stackPos-0].substring(1),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn259=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn260=function(e){this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn261=function(e){this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-7],this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn262=function(e){if(this.yyastk[this.stackPos-3].type==="Node_Expr_StaticPropertyFetch")this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-3].Class,this.Node_Expr_Variable(this.yyastk[this.stackPos-3].name,e),this.yyastk[this.stackPos-1],e);else{if(this.yyastk[this.stackPos-3].type!=="Node_Expr_ArrayDimFetch")throw new Exception;var t=this.yyastk[this.stackPos-3];while(t.variable.type==="Node_Expr_ArrayDimFetch")t=t.variable;this.yyval=this.Node_Expr_StaticCall(t.variable.Class,this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e),t.variable=this.Node_Expr_Variable(t.variable.name,e)}},r.Parser.prototype.yyn263=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn264=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn265=function(e){this.yyval=this.Node_Name("static",e)},r.Parser.prototype.yyn266=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn267=function(e){this.yyval=this.Node_Name(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn268=function(e){this.yyval=this.Node_Name_FullyQualified(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn269=function(e){this.yyval=this.Node_Name_Relative(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn270=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn271=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn272=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn273=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn274=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn275=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn276=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn277=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn278=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn279=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn280=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn281=function(e){this.yyval=null},r.Parser.prototype.yyn282=function(e){this.yyval=null},r.Parser.prototype.yyn283=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn284=function(e){this.yyval=[]},r.Parser.prototype.yyn285=function(e){this.yyval=[this.Scalar_String_parseEscapeSequences(this.yyastk[this.stackPos-0],"`")]},r.Parser.prototype.yyn286=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn287=function(e){this.yyval=[]},r.Parser.prototype.yyn288=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn289=function(e){this.yyval=this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[this.stackPos-0]),e)},r.Parser.prototype.yyn290=function(e){this.yyval=this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[this.stackPos-0]),e)},r.Parser.prototype.yyn291=function(e){this.yyval=this.Scalar_String_create(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn292=function(e){this.yyval={type:"Node_Scalar_LineConst",attributes:e}},r.Parser.prototype.yyn293=function(e){this.yyval={type:"Node_Scalar_FileConst",attributes:e}},r.Parser.prototype.yyn294=function(e){this.yyval={type:"Node_Scalar_DirConst",attributes:e}},r.Parser.prototype.yyn295=function(e){this.yyval={type:"Node_Scalar_ClassConst",attributes:e}},r.Parser.prototype.yyn296=function(e){this.yyval={type:"Node_Scalar_TraitConst",attributes:e}},r.Parser.prototype.yyn297=function(e){this.yyval={type:"Node_Scalar_MethodConst",attributes:e}},r.Parser.prototype.yyn298=function(e){this.yyval={type:"Node_Scalar_FuncConst",attributes:e}},r.Parser.prototype.yyn299=function(e){this.yyval={type:"Node_Scalar_NSConst",attributes:e}},r.Parser.prototype.yyn300=function(e){this.yyval=this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1]),e)},r.Parser.prototype.yyn301=function(e){this.yyval=this.Node_Scalar_String("",e)},r.Parser.prototype.yyn302=function(e){this.yyval=this.Node_Expr_ConstFetch(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn303=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn304=function(e){this.yyval=this.Node_Expr_ClassConstFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn305=function(e){this.yyval=this.Node_Expr_UnaryPlus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn306=function(e){this.yyval=this.Node_Expr_UnaryMinus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn307=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn308=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn309=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn310=function(e){this.yyval=this.Node_Expr_ClassConstFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn311=function(e){this.yyval=this.Node_Scalar_Encapsed(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn312=function(e){this.yyval=this.Node_Scalar_Encapsed(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn313=function(e){this.yyval=[]},r.Parser.prototype.yyn314=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn315=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn316=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn317=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn318=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn319=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-2],!1,e)},r.Parser.prototype.yyn320=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!1,e)},r.Parser.prototype.yyn321=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn322=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn323=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn324=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn325=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn326=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn327=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn328=function(e){this.yyval=this.Node_Expr_MethodCall(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn329=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn330=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn331=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn332=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn333=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn334=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn335=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn336=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn337=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn338=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn339=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn340=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn341=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn342=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn343=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn344=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn345=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn346=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn347=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn348=function(e){this.yyval=null},r.Parser.prototype.yyn349=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn350=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn351=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn352=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn353=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn354=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn355=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn356=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn357=function(e){this.yyval=null},r.Parser.prototype.yyn358=function(e){this.yyval=[]},r.Parser.prototype.yyn359=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn360=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn361=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn362=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-2],!1,e)},r.Parser.prototype.yyn363=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!1,e)},r.Parser.prototype.yyn364=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-3],!0,e)},r.Parser.prototype.yyn365=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!0,e)},r.Parser.prototype.yyn366=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn367=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn368=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn369=function(e){this.yyval=[this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn370=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn371=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-3].substring(1),e),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn372=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-2].substring(1),e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn373=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn374=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn375=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-4],e),this.yyastk[this.stackPos-2],e)},r.Parser.prototype.yyn376=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn377=function(e){this.yyval=this.Node_Scalar_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn378=function(e){this.yyval=this.Node_Scalar_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn379=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.Stmt_Namespace_postprocess=function(e){return e},r.Parser.prototype.Node_Stmt_Echo=function(){return{type:"Node_Stmt_Echo",exprs:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_If=function(){return{type:"Node_Stmt_If",cond:arguments[0],stmts:arguments[1].stmts,elseifs:arguments[1].elseifs,Else:arguments[1].Else||null,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_For=function(){return{type:"Node_Stmt_For",init:arguments[0].init,cond:arguments[0].cond,loop:arguments[0].loop,stmts:arguments[0].stmts,attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Function=function(){return{type:"Node_Stmt_Function",name:arguments[0],byRef:arguments[1].byRef,params:arguments[1].params,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Stmt_Class_verifyModifier=function(){},r.Parser.prototype.Node_Stmt_Namespace=function(){return{type:"Node_Stmt_Namespace",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Use=function(){return{type:"Node_Stmt_Use",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_UseUse=function(){return{type:"Node_Stmt_UseUse",name:arguments[0],as:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUseAdaptation_Precedence=function(){return{type:"Node_Stmt_TraitUseAdaptation_Precedence",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUseAdaptation_Alias=function(){return{type:"Node_Stmt_TraitUseAdaptation_Alias",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Trait=function(){return{type:"Node_Stmt_Trait",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUse=function(){return{type:"Node_Stmt_TraitUse",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Class=function(){return{type:"Node_Stmt_Class",name:arguments[0],Type:arguments[1].type,Extends:arguments[1].Extends,Implements:arguments[1].Implements,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_ClassMethod=function(){return{type:"Node_Stmt_ClassMethod",name:arguments[0],Type:arguments[1].type,byRef:arguments[1].byRef,params:arguments[1].params,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_ClassConst=function(){return{type:"Node_Stmt_ClassConst",consts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Interface=function(){return{type:"Node_Stmt_Interface",name:arguments[0],Extends:arguments[1].Extends,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Throw=function(){return{type:"Node_Stmt_Throw",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Catch=function(){return{type:"Node_Stmt_Catch",Type:arguments[0],variable:arguments[1],stmts:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Stmt_TryCatch=function(){return{type:"Node_Stmt_TryCatch",stmts:arguments[0],catches:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Foreach=function(){return{type:"Node_Stmt_Foreach",expr:arguments[0],valueVar:arguments[1],keyVar:arguments[2].keyVar,byRef:arguments[2].byRef,stmts:arguments[2].stmts,attributes:arguments[3]}},r.Parser.prototype.Node_Stmt_While=function(){return{type:"Node_Stmt_While",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Do=function(){return{type:"Node_Stmt_Do",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Break=function(){return{type:"Node_Stmt_Break",num:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Continue=function(){return{type:"Node_Stmt_Continue",num:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Return=function(){return{type:"Node_Stmt_Return",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Case=function(){return{type:"Node_Stmt_Case",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Switch=function(){return{type:"Node_Stmt_Switch",cond:arguments[0],cases:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Else=function(){return{type:"Node_Stmt_Else",stmts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_ElseIf=function(){return{type:"Node_Stmt_ElseIf",cond:arguments[0],stmts:arguments[1],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_InlineHTML=function(){return{type:"Node_Stmt_InlineHTML",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_StaticVar=function(){return{type:"Node_Stmt_StaticVar",name:arguments[0],def:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Static=function(){return{type:"Node_Stmt_Static",vars:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Global=function(){return{type:"Node_Stmt_Global",vars:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_PropertyProperty=function(){return{type:"Node_Stmt_PropertyProperty",name:arguments[0],def:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Property=function(){return{type:"Node_Stmt_Property",Type:arguments[0],props:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Unset=function(){return{type:"Node_Stmt_Unset",variables:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Variable=function(e){return{type:"Node_Expr_Variable",name:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_FuncCall=function(){return{type:"Node_Expr_FuncCall",func:arguments[0],args:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_MethodCall=function(){return{type:"Node_Expr_MethodCall",variable:arguments[0],name:arguments[1],args:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_StaticCall=function(){return{type:"Node_Expr_StaticCall",Class:arguments[0],func:arguments[1],args:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_Ternary=function(){return{type:"Node_Expr_Ternary",cond:arguments[0],If:arguments[1],Else:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_AssignList=function(){return{type:"Node_Expr_AssignList",assignList:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Assign=function(){return{type:"Node_Expr_Assign",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignConcat=function(){return{type:"Node_Expr_AssignConcat",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMinus=function(){return{type:"Node_Expr_AssignMinus",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignPlus=function(){return{type:"Node_Expr_AssignPlus",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignDiv=function(){return{type:"Node_Expr_AssignDiv",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignRef=function(){return{type:"Node_Expr_AssignRef",variable:arguments[0],refVar:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMul=function(){return{type:"Node_Expr_AssignMul",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMod=function(){return{type:"Node_Expr_AssignMod",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Plus=function(){return{type:"Node_Expr_Plus",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Minus=function(){return{type:"Node_Expr_Minus",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Mul=function(){return{type:"Node_Expr_Mul",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Div=function(){return{type:"Node_Expr_Div",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Mod=function(){return{type:"Node_Expr_Mod",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Greater=function(){return{type:"Node_Expr_Greater",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Equal=function(){return{type:"Node_Expr_Equal",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_NotEqual=function(){return{type:"Node_Expr_NotEqual",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Identical=function(){return{type:"Node_Expr_Identical",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_NotIdentical=function(){return{type:"Node_Expr_NotIdentical",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_GreaterOrEqual=function(){return{type:"Node_Expr_GreaterOrEqual",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_SmallerOrEqual=function(){return{type:"Node_Expr_SmallerOrEqual",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Concat=function(){return{type:"Node_Expr_Concat",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Smaller=function(){return{type:"Node_Expr_Smaller",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_PostInc=function(){return{type:"Node_Expr_PostInc",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PostDec=function(){return{type:"Node_Expr_PostDec",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PreInc=function(){return{type:"Node_Expr_PreInc",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PreDec=function(){return{type:"Node_Expr_PreDec",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Include=function(){return{expr:arguments[0],type:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ArrayDimFetch=function(){return{type:"Node_Expr_ArrayDimFetch",variable:arguments[0],dim:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_StaticPropertyFetch=function(){return{type:"Node_Expr_StaticPropertyFetch",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ClassConstFetch=function(){return{type:"Node_Expr_ClassConstFetch",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_StaticPropertyFetch=function(){return{type:"Node_Expr_StaticPropertyFetch",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ConstFetch=function(){return{type:"Node_Expr_ConstFetch",name:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_ArrayItem=function(){return{type:"Node_Expr_ArrayItem",value:arguments[0],key:arguments[1],byRef:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_Array=function(){return{type:"Node_Expr_Array",items:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PropertyFetch=function(){return{type:"Node_Expr_PropertyFetch",variable:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_New=function(){return{type:"Node_Expr_New",Class:arguments[0],args:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Print=function(){return{type:"Node_Expr_Print",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Exit=function(){return{type:"Node_Expr_Exit",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Bool=function(){return{type:"Node_Expr_Cast_Bool",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Int=function(){return{type:"Node_Expr_Cast_Int",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_String=function(){return{type:"Node_Expr_Cast_String",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Double=function(){return{type:"Node_Expr_Cast_Double",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Array=function(){return{type:"Node_Expr_Cast_Array",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Object=function(){return{type:"Node_Expr_Cast_Object",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_ErrorSuppress=function(){return{type:"Node_Expr_ErrorSuppress",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Isset=function(){return{type:"Node_Expr_Isset",variables:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_UnaryMinus=function(){return{type:"Node_Expr_UnaryMinus",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_UnaryPlus=function(){return{type:"Node_Expr_UnaryPlus",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Empty=function(){return{type:"Node_Expr_Empty",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanOr=function(){return{type:"Node_Expr_BooleanOr",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalOr=function(){return{type:"Node_Expr_LogicalOr",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalAnd=function(){return{type:"Node_Expr_LogicalAnd",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalXor=function(){return{type:"Node_Expr_LogicalXor",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseAnd=function(){return{type:"Node_Expr_BitwiseAnd",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseOr=function(){return{type:"Node_Expr_BitwiseOr",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseXor=function(){return{type:"Node_Expr_BitwiseXor",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseNot=function(){return{type:"Node_Expr_BitwiseNot",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanNot=function(){return{type:"Node_Expr_BooleanNot",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanAnd=function(){return{type:"Node_Expr_BooleanAnd",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Instanceof=function(){return{type:"Node_Expr_Instanceof",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Clone=function(){return{type:"Node_Expr_Clone",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Scalar_LNumber_parse=function(e){return e},r.Parser.prototype.Scalar_DNumber_parse=function(e){return e},r.Parser.prototype.Scalar_String_parseDocString=function(){return'"'+arguments[1].replace(/([^"\\]*(?:\\.[^"\\]*)*)"/g,'$1\\"')+'"'},r.Parser.prototype.Node_Scalar_String=function(){return{type:"Node_Scalar_String",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Scalar_String_create=function(){return{type:"Node_Scalar_String",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_LNumber=function(){return{type:"Node_Scalar_LNumber",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_DNumber=function(){return{type:"Node_Scalar_DNumber",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_Encapsed=function(){return{type:"Node_Scalar_Encapsed",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name=function(){return{type:"Node_Name",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name_FullyQualified=function(){return{type:"Node_Name_FullyQualified",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name_Relative=function(){return{type:"Node_Name_Relative",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Param=function(){return{type:"Node_Param",name:arguments[0],def:arguments[1],Type:arguments[2],byRef:arguments[3],attributes:arguments[4]}},r.Parser.prototype.Node_Arg=function(){return{type:"Node_Name",value:arguments[0],byRef:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Const=function(){return{type:"Node_Const",name:arguments[0],value:arguments[1],attributes:arguments[2]}},t.PHP=r}),ace.define("ace/mode/php_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/php/php"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./php/php").PHP,o=t.PhpWorker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.setOptions=function(e){this.inlinePhp=e&&e.inline},this.onUpdate=function(){var e=this.doc.getValue(),t=[];this.inlinePhp&&(e="<?"+e+"?>");var n=s.Lexer(e,{short_open_tag:1});try{new s.Parser(n)}catch(r){t.push({row:r.line-1,column:null,text:r.message.charAt(0).toUpperCase()+r.message.substring(1),type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-xml.js b/js/ace/worker-xml.js
new file mode 100644
index 0000000..5b949e1
--- /dev/null
+++ b/js/ace/worker-xml.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/xml/sax",["require","exports","module"],function(e,t,n){function d(){}function v(e,t,n,r,i){function s(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function o(e){var t=e.slice(1,-1);return t in n?n[t]:t.charAt(0)==="#"?s(parseInt(t.substr(1).replace("x","0x"))):(i.error("entity not found:"+e),e)}function u(t){var n=e.substring(v,t).replace(/&#?\w+;/g,o);h&&a(v),r.characters(n,0,t-v),v=t}function a(t,n){while(t>=l&&(n=c.exec(e)))f=n.index,l=f+n[0].length,h.lineNumber++;h.columnNumber=t-f+1}var f=0,l=0,c=/.+(?:\r\n?|\n)|.*$/g,h=r.locator,p=[{currentNSMap:t}],d={},v=0;for(;;){var E=e.indexOf("<",v);if(E<0){if(!e.substr(v).match(/^\s*$/)){var N=r.document,C=N.createTextNode(e.substr(v));N.appendChild(C),r.currentElement=C}return}E>v&&u(E);switch(e.charAt(E+1)){case"/":var k=e.indexOf(">",E+3),L=e.substring(E+2,k),A;if(!(p.length>1)){i.fatalError("end tag name not found for: "+L);break}A=p.pop();var O=A.localNSMap;A.tagName!=L&&i.fatalError("end tag name: "+L+" does not match the current start tagName: "+A.tagName),r.endElement(A.uri,A.localName,L);if(O)for(var M in O)r.endPrefixMapping(M);k++;break;case"?":h&&a(E),k=x(e,E,r);break;case"!":h&&a(E),k=S(e,E,r,i);break;default:try{h&&a(E);var _=new T,k=g(e,E,_,o,i),D=_.length;if(D&&h){var P=m(h,{});for(var E=0;E<D;E++){var H=_[E];a(H.offset),H.offset=m(h,{})}m(P,h)}!_.closed&&w(e,k,_.tagName,d)&&(_.closed=!0,n.nbsp||i.warning("unclosed xml attribute")),y(_,r,p),_.uri==="http://www.w3.org/1999/xhtml"&&!_.closed?k=b(e,k,_.tagName,o,r):k++}catch(B){i.error("element parse error: "+B),k=-1}}k<0?u(E+1):v=k}}function m(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function g(e,t,n,r,i){var s,d,v=++t,m=o;for(;;){var g=e.charAt(v);switch(g){case"=":if(m===u)s=e.slice(t,v),m=f;else{if(m!==a)throw new Error("attribute equal must after attrName");m=f}break;case"'":case'"':if(m===f){t=v+1,v=e.indexOf(g,t);if(!(v>0))throw new Error("attribute value no end '"+g+"' match");d=e.slice(t,v).replace(/&#?\w+;/g,r),n.add(s,d,t-1),m=c}else{if(m!=l)throw new Error('attribute value must after "="');d=e.slice(t,v).replace(/&#?\w+;/g,r),n.add(s,d,t),i.warning('attribute "'+s+'" missed start quot('+g+")!!"),t=v+1,m=c}break;case"/":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:m=p,n.closed=!0;case l:case u:case a:break;default:throw new Error("attribute invalid close char('/')")}break;case"":i.error("unexpected end of input");case">":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:break;case l:case u:d=e.slice(t,v),d.slice(-1)==="/"&&(n.closed=!0,d=d.slice(0,-1));case a:m===a&&(d=s),m==l?(i.warning('attribute "'+d+'" missed quot(")!!'),n.add(s,d.replace(/&#?\w+;/g,r),t)):(i.warning('attribute "'+d+'" missed value!! "'+d+'" instead!!'),n.add(d,d,t));break;case f:throw new Error("attribute value missed!!")}return v;case"\u0080":g=" ";default:if(g<=" ")switch(m){case o:n.setTagName(e.slice(t,v)),m=h;break;case u:s=e.slice(t,v),m=a;break;case l:var d=e.slice(t,v).replace(/&#?\w+;/g,r);i.warning('attribute "'+d+'" missed quot(")!!'),n.add(s,d,t);case c:m=h}else switch(m){case a:i.warning('attribute "'+s+'" missed value!! "'+s+'" instead!!'),n.add(s,s,t),t=v,m=u;break;case c:i.warning('attribute space is required"'+s+'"!!');case h:m=u,t=v;break;case f:m=l,t=v;break;case p:throw new Error("elements closed character '/' and '>' must be connected to")}}v++}}function y(e,t,n){var r=e.tagName,i=null,s=n[n.length-1].currentNSMap,o=e.length;while(o--){var u=e[o],a=u.qName,f=u.value,l=a.indexOf(":");if(l>0)var c=u.prefix=a.slice(0,l),h=a.slice(l+1),p=c==="xmlns"&&h;else h=a,c=null,p=a==="xmlns"&&"";u.localName=h,p!==!1&&(i==null&&(i={},E(s,s={})),s[p]=i[p]=f,u.uri="http://www.w3.org/2000/xmlns/",t.startPrefixMapping(p,f))}var o=e.length;while(o--){u=e[o];var c=u.prefix;c&&(c==="xml"&&(u.uri="http://www.w3.org/XML/1998/namespace"),c!=="xmlns"&&(u.uri=s[c]))}var l=r.indexOf(":");l>0?(c=e.prefix=r.slice(0,l),h=e.localName=r.slice(l+1)):(c=null,h=e.localName=r);var d=e.uri=s[c||""];t.startElement(d,h,r,e);if(e.closed){t.endElement(d,h,r);if(i)for(c in i)t.endPrefixMapping(c)}else e.currentNSMap=s,e.localNSMap=i,n.push(e)}function b(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf("</"+n+">",t),o=e.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(n)?(i.characters(o,0,o.length),s):(o=o.replace(/&#?\w+;/g,r),i.characters(o,0,o.length),s)}return t+1}function w(e,t,n,r){var i=r[n];return i==null&&(i=r[n]=e.lastIndexOf("</"+n+">")),i<t}function E(e,t){for(var n in e)t[n]=e[n]}function S(e,t,n,r){var i=e.charAt(t+2);switch(i){case"-":if(e.charAt(t+3)==="-"){var s=e.indexOf("-->",t+4);return s>t?(n.comment(e,t+4,s-t-4),s+3):(r.error("Unclosed comment"),-1)}return-1;default:if(e.substr(t+3,6)=="CDATA["){var s=e.indexOf("]]>",t+9);return n.startCDATA(),n.characters(e,t+9,s-t-9),n.endCDATA(),s+3}var o=C(e,t),u=o.length;if(u>1&&/!doctype/i.test(o[0][0])){var a=o[1][0],f=u>3&&/^public$/i.test(o[2][0])&&o[3][0],l=u>4&&o[4][0],c=o[u-1];return n.startDTD(a,f&&f.replace(/^(['"])(.*?)\1$/,"$2"),l&&l.replace(/^(['"])(.*?)\1$/,"$2")),n.endDTD(),c.index+c[0].length}}return-1}function x(e,t,n){var r=e.indexOf("?>",t);if(r){var i=e.substring(t,r).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i){var s=i[0].length;return n.processingInstruction(i[1],i[2]),r+2}return-1}return-1}function T(e){}function N(e,t){return e.__proto__=t,e}function C(e,t){var n,r=[],i=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;i.lastIndex=t,i.exec(e);while(n=i.exec(e)){r.push(n);if(n[1])return r}}var r=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,i=new RegExp("[\\-\\.0-9"+r.source.slice(1,-1)+"\u00b7\u0300-\u036f\\ux203F-\u2040]"),s=new RegExp("^"+r.source+i.source+"*(?::"+r.source+i.source+"*)?$"),o=0,u=1,a=2,f=3,l=4,c=5,h=6,p=7;return d.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),E(t,t={}),v(e,t,n,r,this.errorHandler),r.endDocument()}},T.prototype={setTagName:function(e){if(!s.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},add:function(e,t,n){if(!s.test(e))throw new Error("invalid attribute:"+e);this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getOffset:function(e){return this[e].offset},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},N({},N.prototype)instanceof N||(N=function(e,t){function n(){}n.prototype=t,n=new n;for(t in e)n[t]=e[t];return n}),d}),ace.define("ace/mode/xml/dom",["require","exports","module"],function(e,t,n){function r(e,t){for(var n in e)t[n]=e[n]}function i(e,t){var n=e.prototype;if(Object.create){var i=Object.create(t.prototype);n.__proto__=i}if(!(n instanceof t)){function s(){}s.prototype=t.prototype,s=new s,r(n,s),e.prototype=n=s}n.constructor!=e&&(typeof e!="function"&&console.error("unknow Class:"+e),n.constructor=e)}function B(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,w[e]),this.message=w[e],Error.captureStackTrace&&Error.captureStackTrace(this,B);return n.code=e,t&&(this.message=this.message+": "+t),n}function j(){}function F(e,t){this._node=e,this._refresh=t,I(this)}function I(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!=t){var n=e._refresh(e._node);gt(e,"length",n.length),r(n,e),e._inc=t}}function q(){}function R(e,t){var n=e.length;while(n--)if(e[n]===t)return n}function U(e,t,n,r){r?t[R(t,r)]=n:t[t.length++]=n;if(e){n.ownerElement=e;var i=e.ownerDocument;i&&(r&&Q(i,e,r),K(i,e,n))}}function z(e,t,n){var r=R(t,n);if(!(r>=0))throw B(L,new Error);var i=t.length-1;while(r<i)t[r]=t[++r];t.length=i;if(e){var s=e.ownerDocument;s&&(Q(s,e,n),n.ownerElement=null)}}function W(e){this._features={};if(e)for(var t in e)this._features=e[t]}function X(){}function V(e){return e=="<"&&"&lt;"||e==">"&&"&gt;"||e=="&"&&"&amp;"||e=='"'&&"&quot;"||"&#"+e.charCodeAt()+";"}function $(e,t){if(t(e))return!0;if(e=e.firstChild)do if($(e,t))return!0;while(e=e.nextSibling)}function J(){}function K(e,t,n){e&&e._inc++;var r=n.namespaceURI;r=="http://www.w3.org/2000/xmlns/"&&(t._nsMap[n.prefix?n.localName:""]=n.value)}function Q(e,t,n,r){e&&e._inc++;var i=n.namespaceURI;i=="http://www.w3.org/2000/xmlns/"&&delete t._nsMap[n.prefix?n.localName:""]}function G(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{var i=t.firstChild,s=0;while(i)r[s++]=i,i=i.nextSibling;r.length=s}}}function Y(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,G(e.ownerDocument,e),t}function Z(e,t,n){var r=t.parentNode;r&&r.removeChild(t);if(t.nodeType===g){var i=t.firstChild;if(i==null)return t;var s=t.lastChild}else i=s=t;var o=n?n.previousSibling:e.lastChild;i.previousSibling=o,s.nextSibling=n,o?o.nextSibling=i:e.firstChild=i,n==null?e.lastChild=s:n.previousSibling=s;do i.parentNode=e;while(i!==s&&(i=i.nextSibling));return G(e.ownerDocument||e,e),t.nodeType==g&&(t.firstChild=t.lastChild=null),t}function et(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t);var r=e.lastChild}var r=e.lastChild;return t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,G(e.ownerDocument,e,t),t}function tt(){this._nsMap={}}function nt(){}function rt(){}function it(){}function st(){}function ot(){}function ut(){}function at(){}function ft(){}function lt(){}function ct(){}function ht(){}function pt(){}function dt(e,t){switch(e.nodeType){case u:var n=e.attributes,r=n.length,i=e.firstChild,o=e.tagName,h=s===e.namespaceURI;t.push("<",o);for(var y=0;y<r;y++)dt(n.item(y),t,h);if(i||h&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(o)){t.push(">");if(h&&/^script$/i.test(o))i&&t.push(i.data);else while(i)dt(i,t),i=i.nextSibling;t.push("</",o,">")}else t.push("/>");return;case v:case g:var i=e.firstChild;while(i)dt(i,t),i=i.nextSibling;return;case a:return t.push(" ",e.name,'="',e.value.replace(/[<&"]/g,V),'"');case f:return t.push(e.data.replace(/[<&]/g,V));case l:return t.push("<![CDATA[",e.data,"]]>");case d:return t.push("<!--",e.data,"-->");case m:var b=e.publicId,w=e.systemId;t.push("<!DOCTYPE ",e.name);if(b)t.push(' PUBLIC "',b),w&&w!="."&&t.push('" "',w),t.push('">');else if(w&&w!=".")t.push(' SYSTEM "',w,'">');else{var E=e.internalSubset;E&&t.push(" [",E,"]"),t.push(">")}return;case p:return t.push("<?",e.target," ",e.data,"?>");case c:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function vt(e,t,n){var r;switch(t.nodeType){case u:r=t.cloneNode(!1),r.ownerDocument=e;case g:break;case a:n=!0}r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null;if(n){var i=t.firstChild;while(i)r.appendChild(vt(e,i,n)),i=i.nextSibling}return r}function mt(e,t,n){var r=new t.constructor;for(var i in t){var s=t[i];typeof s!="object"&&s!=r[i]&&(r[i]=s)}t.childNodes&&(r.childNodes=new j),r.ownerDocument=e;switch(r.nodeType){case u:var o=t.attributes,f=r.attributes=new q,l=o.length;f._ownerElement=r;for(var c=0;c<l;c++)r.setAttributeNode(mt(e,o.item(c),!0));break;case a:n=!0}if(n){var h=t.firstChild;while(h)r.appendChild(mt(e,h,n)),h=h.nextSibling}return r}function gt(e,t,n){e[t]=n}var s="http://www.w3.org/1999/xhtml",o={},u=o.ELEMENT_NODE=1,a=o.ATTRIBUTE_NODE=2,f=o.TEXT_NODE=3,l=o.CDATA_SECTION_NODE=4,c=o.ENTITY_REFERENCE_NODE=5,h=o.ENTITY_NODE=6,p=o.PROCESSING_INSTRUCTION_NODE=7,d=o.COMMENT_NODE=8,v=o.DOCUMENT_NODE=9,m=o.DOCUMENT_TYPE_NODE=10,g=o.DOCUMENT_FRAGMENT_NODE=11,y=o.NOTATION_NODE=12,b={},w={},E=b.INDEX_SIZE_ERR=(w[1]="Index size error",1),S=b.DOMSTRING_SIZE_ERR=(w[2]="DOMString size error",2),x=b.HIERARCHY_REQUEST_ERR=(w[3]="Hierarchy request error",3),T=b.WRONG_DOCUMENT_ERR=(w[4]="Wrong document",4),N=b.INVALID_CHARACTER_ERR=(w[5]="Invalid character",5),C=b.NO_DATA_ALLOWED_ERR=(w[6]="No data allowed",6),k=b.NO_MODIFICATION_ALLOWED_ERR=(w[7]="No modification allowed",7),L=b.NOT_FOUND_ERR=(w[8]="Not found",8),A=b.NOT_SUPPORTED_ERR=(w[9]="Not supported",9),O=b.INUSE_ATTRIBUTE_ERR=(w[10]="Attribute in use",10),M=b.INVALID_STATE_ERR=(w[11]="Invalid state",11),_=b.SYNTAX_ERR=(w[12]="Syntax error",12),D=b.INVALID_MODIFICATION_ERR=(w[13]="Invalid modification",13),P=b.NAMESPACE_ERR=(w[14]="Invalid namespace",14),H=b.INVALID_ACCESS_ERR=(w[15]="Invalid access",15);B.prototype=Error.prototype,r(b,B),j.prototype={length:0,item:function(e){return this[e]||null}},F.prototype.item=function(e){return I(this),this[e]},i(F,j),q.prototype={length:0,item:j.prototype.item,getNamedItem:function(e){var t=this.length;while(t--){var n=this[t];if(n.nodeName==e)return n}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new B(O);var n=this.getNamedItem(e.nodeName);return U(this._ownerElement,this,e,n),n},setNamedItemNS:function(e){var t=e.ownerElement,n;if(t&&t!=this._ownerElement)throw new B(O);return n=this.getNamedItemNS(e.namespaceURI,e.localName),U(this._ownerElement,this,e,n),n},removeNamedItem:function(e){var t=this.getNamedItem(e);return z(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var n=this.getNamedItemNS(e,t);return z(this._ownerElement,this,n),n},getNamedItemNS:function(e,t){var n=this.length;while(n--){var r=this[n];if(r.localName==t&&r.namespaceURI==e)return r}return null}},W.prototype={hasFeature:function(e,t){var n=this._features[e.toLowerCase()];return n&&(!t||t in n)?!0:!1},createDocument:function(e,t,n){var r=new J;r.implementation=this,r.childNodes=new j,r.doctype=n,n&&r.appendChild(n);if(t){var i=r.createElementNS(e,t);r.appendChild(i)}return r},createDocumentType:function(e,t,n){var r=new ut;return r.name=e,r.nodeName=e,r.publicId=t,r.systemId=n,r}},X.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return Z(this,e,t)},replaceChild:function(e,t){this.insertBefore(e,t),t&&this.removeChild(t)},removeChild:function(e){return Y(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return mt(this.ownerDocument||this,this,e)},normalize:function(){var e=this.firstChild;while(e){var t=e.nextSibling;t&&t.nodeType==f&&e.nodeType==f?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t)}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){var t=this;while(t){var n=t._nsMap;if(n)for(var r in n)if(n[r]==e)return r;t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){var t=this;while(t){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){var t=this.lookupPrefix(e);return t==null}},r(o,X),r(o,X.prototype),J.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==g){var n=e.firstChild;while(n){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return this.documentElement==null&&e.nodeType==1&&(this.documentElement=e),Z(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),Y(this,e)},importNode:function(e,t){return vt(this,e,t)},getElementById:function(e){var t=null;return $(this.documentElement,function(n){if(n.nodeType==1&&n.getAttribute("id")==e)return t=n,!0}),t},createElement:function(e){var t=new tt;t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new j;var n=t.attributes=new q;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new ct;return e.ownerDocument=this,e.childNodes=new j,e},createTextNode:function(e){var t=new it;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new st;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new ot;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new ht;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new nt;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new lt;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new tt,r=t.split(":"),i=n.attributes=new q;return n.childNodes=new j,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new nt,r=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},i(J,X),tt.prototype={nodeType:u,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===g?this.insertBefore(e,null):et(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=""+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new F(this,function(t){var n=[];return $(t,function(r){r!==t&&r.nodeType==u&&(e==="*"||r.tagName==e)&&n.push(r)}),n})},getElementsByTagNameNS:function(e,t){return new F(this,function(n){var r=[];return $(n,function(i){i!==n&&i.nodeType===u&&(e==="*"||i.namespaceURI===e)&&(t==="*"||i.localName==t)&&r.push(i)}),r})}},J.prototype.getElementsByTagName=tt.prototype.getElementsByTagName,J.prototype.getElementsByTagNameNS=tt.prototype.getElementsByTagNameNS,i(tt,X),nt.prototype.nodeType=a,i(nt,X),rt.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(w[3])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}},i(rt,X),it.prototype={nodeName:"#text",nodeType:f,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},i(it,rt),st.prototype={nodeName:"#comment",nodeType:d},i(st,rt),ot.prototype={nodeName:"#cdata-section",nodeType:l},i(ot,rt),ut.prototype.nodeType=m,i(ut,X),at.prototype.nodeType=y,i(at,X),ft.prototype.nodeType=h,i(ft,X),lt.prototype.nodeType=c,i(lt,X),ct.prototype.nodeName="#document-fragment",ct.prototype.nodeType=g,i(ct,X),ht.prototype.nodeType=p,i(ht,X),pt.prototype.serializeToString=function(e){var t=[];return dt(e,t),t.join("")},X.prototype.toString=function(){return pt.prototype.serializeToString(this)};try{if(Object.defineProperty){Object.defineProperty(F.prototype,"length",{get:function(){return I(this),this.$$length}}),Object.defineProperty(X.prototype,"textContent",{get:function(){return yt(this)},set:function(e){switch(this.nodeType){case 1:case 11:while(this.firstChild)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=value,this.nodeValue=e}}});function yt(e){switch(e.nodeType){case 1:case 11:var t=[];e=e.firstChild;while(e)e.nodeType!==7&&e.nodeType!==8&&t.push(yt(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}gt=function(e,t,n){e["$$"+t]=n}}}catch(bt){}return W}),ace.define("ace/mode/xml/dom-parser",["require","exports","module","ace/mode/xml/sax","ace/mode/xml/dom"],function(e,t,n){"use strict";function s(e){this.options=e||{locator:{}}}function o(e,t,n){function s(t){var s=e[t];if(!s)if(i)s=e.length==2?function(n){e(t,n)}:e;else{var o=arguments.length;while(--o)if(s=e[arguments[o]])break}r[t]=s&&function(e){s(e+f(n),e,n)}||function(){}}if(!e){if(t instanceof u)return t;e=t}var r={},i=e instanceof Function;return n=n||{},s("warning","warn"),s("error","warn","warning"),s("fatalError","warn","warning","error"),r}function u(){this.cdata=!1}function a(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function f(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function l(e,t,n){return typeof e=="string"?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+"":e}function c(e,t){e.currentElement?e.currentElement.appendChild(t):e.document.appendChild(t)}var r=e("./sax"),i=e("./dom");return s.prototype.parseFromString=function(e,t){var n=this.options,i=new r,s=n.domBuilder||new u,a=n.errorHandler,f=n.locator,l=n.xmlns||{},c={lt:"<",gt:">",amp:"&",quot:'"',apos:"'"};return f&&s.setDocumentLocator(f),i.errorHandler=o(a,s,f),i.domBuilder=n.domBuilder||s,/\/x?html?$/.test(t)&&(c.nbsp="\u00a0",c.copy="\u00a9",l[""]="http://www.w3.org/1999/xhtml"),e?i.parse(e,l,c):i.errorHandler.error("invalid document source"),s.document},u.prototype={startDocument:function(){this.document=(new i).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.document,s=i.createElementNS(e,n||t),o=r.length;c(this,s),this.currentElement=s,this.locator&&a(this.locator,s);for(var u=0;u<o;u++){var e=r.getURI(u),f=r.getValue(u),n=r.getQName(u),l=i.createAttributeNS(e,n);l.getOffset&&a(l.getOffset(1),l),l.value=l.nodeValue=f,s.setAttributeNode(l)}},endElement:function(e,t,n){var r=this.currentElement,i=r.tagName;this.currentElement=r.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var n=this.document.createProcessingInstruction(e,t);this.locator&&a(this.locator,n),c(this,n)},ignorableWhitespace:function(e,t,n){},characters:function(e,t,n){e=l.apply(this,arguments);if(this.currentElement&&e){if(this.cdata){var r=this.document.createCDATASection(e);this.currentElement.appendChild(r)}else{var r=this.document.createTextNode(e);this.currentElement.appendChild(r)}this.locator&&a(this.locator,r)}},skippedEntity:function(e){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(e){if(this.locator=e)e.lineNumber=0},comment:function(e,t,n){e=l.apply(this,arguments);var r=this.document.createComment(e);this.locator&&a(this.locator,r),c(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,n){var r=this.document.implementation;if(r&&r.createDocumentType){var i=r.createDocumentType(e,t,n);this.locator&&a(this.locator,i),c(this,i)}},warning:function(e){console.warn(e,f(this.locator))},error:function(e){console.error(e,f(this.locator))},fatalError:function(e){throw console.error(e,f(this.locator)),e}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){u.prototype[e]=function(){return null}}),{DOMParser:s}}),ace.define("ace/mode/xml_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/xml/dom-parser"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./xml/dom-parser").DOMParser,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(u,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[];t.options.errorHandler={fatalError:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:"error"})},error:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:"error"})},warning:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:"warning"})}},t.parseFromString(e),this.sender.emit("error",n)}}.call(u.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/ace/worker-xquery.js b/js/ace/worker-xquery.js
new file mode 100644
index 0000000..7231d74
--- /dev/null
+++ b/js/ace/worker-xquery.js
@@ -0,0 +1 @@
+"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(t){require.tlns=t},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.command){if(!t[i.command])throw new Error("Unknown command:"+i.command);t[i.command].apply(t,i.args)}else if(i.init){initBaseUrls(i.tlns),require("ace/lib/es5-shim"),n=e.sender=initSender();var s=require(i.module)[i.classname];t=e.main=new s(n)}else i.event&&n&&n._signal(i.event,i.data)}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row<r&&(r+=o.row-s.row);else t.action==="insertLines"?(s.row!==r||i!==0||!this.$insertRight)&&s.row<=r&&(r+=o.row-s.row):t.action==="removeText"?s.row===r&&s.column<i?o.column>=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row<r?(o.row===r&&(i=Math.max(0,i-o.column)+s.column),r-=o.row-s.row):o.row===r&&(r-=o.row-s.row,i=Math.max(0,i-o.column)+s.column):t.action=="removeLines"&&s.row<=r&&(o.row<=r?r-=o.row-s.row:(r=s.row,i=0));this.setPosition(r,i,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length===0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};while(t.length>61440){var n=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=n.row}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._signal("change",{data:o}),i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._signal("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._signal("change",{data:i}),r},this.remove=function(e){e instanceof s||(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._signal("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._signal("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._signal("change",{data:o})},this.replace=function(e,t){e instanceof s||(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.insertLines(r.start.row,n.lines):n.action=="insertText"?this.insert(r.start,n.text):n.action=="removeLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="removeText"&&this.remove(r)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(u.prototype),t.Document=u}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function(e){if(typeof e!="object"||!e)return e;var n=e.constructor;if(n===RegExp)return e;var r=n();for(var i in e)typeof e[i]=="object"?r[i]=t.deepCopy(e[i]):r[i]=e[i];return r},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../document").Document,i=e("../lib/lang"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(""),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on("change",function(e){t.applyDeltas(e.data);if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/xquery/xqlint",["require","exports","module","ace/mode/tree_ops","ace/mode/xquery/errors","ace/mode/tree_ops","ace/mode/xquery/errors","ace/mode/xquery/schema_built-in_types","ace/mode/xquery/errors","ace/mode/tree_ops","ace/mode/xquery/static_context","ace/mode/xquery/handlers","ace/mode/tree_ops","ace/mode/xquery/parsers/JSONiqParser","ace/mode/xquery/parsers/XQueryParser","ace/mode/xquery/parsers/JSONParseTreeHandler","ace/mode/xquery/compiler/translator","ace/mode/xquery/formatter/style_checker","ace/mode/lib/completion/completer","ace/mode/xquery/compiler/static_context"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);var l=new Error("Cannot find module '"+u+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return s(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){"use strict";var r=function(e,t,n,r,i){if(!t)throw new Error(i+" code is missing.");if(!n)throw new Error(i+" message is missing.");if(!r)throw new Error(i+" position is missing.");e.getCode=function(){return t},e.getMessage=function(){return n},e.getPos=function(){return r}},i={},s={};i.prototype=new Error,s.prototype=new Error,n.StaticError=i.prototype.constructor=function(e,t,n){r(this,e,t,n,"Error")},n.StaticWarning=s.prototype.constructor=function(e,t,n){r(this,e,t,n,"Warning")}},{}],2:[function(e,t,n){"use strict";var r=e("../tree_ops").TreeOps,i=e("./errors"),s=i.StaticWarning;n.ModuleDecl=function(e,t,n){var i="";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.moduleNamespace=s,t.addNamespace(s,i,n.pos,"moduleDecl")})}}},n.ModuleImport=function(e,t,n){var i="",s;return{NCName:function(e){i=r.flatten(e)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.importModule(o,i,n.pos)})}}},n.SchemaImport=function(e,t,n){var i="",s;return{SchemaPrefix:function(t){var n=function(){this.NCName=function(e){i=r.flatten(e)}};e.visitChildren(t,new n)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.addNamespace(o,i,n.pos,"schema")})}}},n.DefaultNamespaceDecl=function(e,t,n){var i=!1,o="";return{TOKEN:function(e){i=i?!0:e.value==="function"},URILiteral:function(u){o=r.flatten(u),o=o.substring(1,o.length-1),i?t.defaultFunctionNamespace=o:(e.apply(function(){throw new s("W06","Avoid default element namespace declarations.",n.pos)}),t.defaultElementNamespace=o)}}},n.NamespaceDecl=function(e,t,n){var i="";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.addNamespace(s,i,n.pos,"declare")})}}},n.VarHandler=function(e,t,n){var i=function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,i.pos);t.addVariable(e,n.name,i.pos)})};return{ExprSingle:function(){return!0},VarValue:function(){return!0},VarDefaultValue:function(){return!0},VarName:i,EQName:i}},n.VarRefHandler=function(e,t,n){return{VarName:function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,n.pos);e.uri!==""&&(t.root.namespaces[e.uri].used=!0),t.addVarRef(e,i.pos)})}}}},{"../tree_ops":11,"./errors":1}],3:[function(e,t,n){"use strict";n.getSchemaBuiltinTypes=function(){var e="http://www.w3.org/2001/XMLSchema",t={};return t[e]={variables:{},functions:{}},t[e].functions[e+"#string#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"string",arity:1,eqname:{uri:e,name:"string"}},t[e].functions[e+"#boolean#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"boolean",arity:1,eqname:{uri:e,name:"boolean"}},t[e].functions[e+"#decimal#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"decimal",arity:1,eqname:{uri:e,name:"decimal"}},t[e].functions[e+"#float#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"float",arity:1,eqname:{uri:e,name:"float"}},t[e].functions[e+"#double#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"double",arity:1,eqname:{uri:e,name:"double"}},t[e].functions[e+"#duration#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"duration",arity:1,eqname:{uri:e,name:"duration"}},t[e].functions[e+"#dateTime#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"dateTime",arity:1,eqname:{uri:e,name:"dateTime"}},t[e].functions[e+"#time#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"time",arity:1,eqname:{uri:e,name:"time"}},t[e].functions[e+"#date#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"date",arity:1,eqname:{uri:e,name:"date"}},t[e].functions[e+"#gYearMonth#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"gYearMonth",arity:1,eqname:{uri:e,name:"gYearMonth"}},t[e].functions[e+"#gYear#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"gYear",arity:1,eqname:{uri:e,name:"gYear"}},t[e].functions[e+"#gMonthDay#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"gMonthDay",arity:1,eqname:{uri:e,name:"gMonthDay"}},t[e].functions[e+"#gDay#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"gDay",arity:1,eqname:{uri:e,name:"gDay"}},t[e].functions[e+"#gMonth#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"gMonth",arity:1,eqname:{uri:e,name:"gMonth"}},t[e].functions[e+"#hexBinary#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"hexBinary",arity:1,eqname:{uri:e,name:"hexBinary"}},t[e].functions[e+"#base64Binary#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"base64Binary",arity:1,eqname:{uri:e,name:"base64Binary"}},t[e].functions[e+"#anyURI#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"anyURI",arity:1,eqname:{uri:e,name:"anyURI"}},t[e].functions[e+"#QName#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"QName",arity:1,eqname:{uri:e,name:"QName"}},t[e].functions[e+"#normalizedString#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"normalizedString",arity:1,eqname:{uri:e,name:"normalizedString"}},t[e].functions[e+"#token#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"token",arity:1,eqname:{uri:e,name:"token"}},t[e].functions[e+"#language#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"language",arity:1,eqname:{uri:e,name:"language"}},t[e].functions[e+"#NMTOKEN#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"NMTOKEN",arity:1,eqname:{uri:e,name:"NMTOKEN"}},t[e].functions[e+"#Name#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"Name",arity:1,eqname:{uri:e,name:"Name"}},t[e].functions[e+"#NCName#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"NCName",arity:1,eqname:{uri:e,name:"NCName"}},t[e].functions[e+"#ID#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"ID",arity:1,eqname:{uri:e,name:"ID"}},t[e].functions[e+"#IDREF#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"IDREF",arity:1,eqname:{uri:e,name:"IDREF"}},t[e].functions[e+"#ENTITY#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"ENTITY",arity:1,eqname:{uri:e,name:"ENTITY"}},t[e].functions[e+"#integer#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"integer",arity:1,eqname:{uri:e,name:"integer"}},t[e].functions[e+"#nonPositiveInteger#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"nonPositiveInteger",arity:1,eqname:{uri:e,name:"nonPositiveInteger"}},t[e].functions[e+"#negativeInteger#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"negativeInteger",arity:1,eqname:{uri:e,name:"negativeInteger"}},t[e].functions[e+"#long#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"long",arity:1,eqname:{uri:e,name:"long"}},t[e].functions[e+"#int#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"int",arity:1,eqname:{uri:e,name:"int"}},t[e].functions[e+"#short#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"short",arity:1,eqname:{uri:e,name:"short"}},t[e].functions[e+"#byte#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"byte",arity:1,eqname:{uri:e,name:"byte"}},t[e].functions[e+"#nonNegativeInteger#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"nonNegativeInteger",arity:1,eqname:{uri:e,name:"nonNegativeInteger"}},t[e].functions[e+"#unsignedLong#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"unsignedLong",arity:1,eqname:{uri:e,name:"unsignedLong"}},t[e].functions[e+"#unsignedInt#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"unsignedInt",arity:1,eqname:{uri:e,name:"unsignedInt"}},t[e].functions[e+"#unsignedShort#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"unsignedShort",arity:1,eqname:{uri:e,name:"unsignedShort"}},t[e].functions[e+"#unsignedByte#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"unsignedByte",arity:1,eqname:{uri:e,name:"unsignedByte"}},t[e].functions[e+"#positiveInteger#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"positiveInteger",arity:1,eqname:{uri:e,name:"positiveInteger"}},t[e].functions[e+"#yearMonthDuration#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"yearMonthDuration",arity:1,eqname:{uri:e,name:"yearMonthDuration"}},t[e].functions[e+"#dayTimeDuration#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"dayTimeDuration",arity:1,eqname:{uri:e,name:"dayTimeDuration"}},t[e].functions[e+"#untypedAtomic#1"]={params:["$arg as xs:anyAtomicType?"],annotations:[],name:"untypedAtomic",arity:1,eqname:{uri:e,name:"untypedAtomic"}},t}},{}],4:[function(e,t,n){n.StaticContext=function(t,n){"use strict";var r=e("../tree_ops").TreeOps,i=e("./errors"),s=i.StaticError,o=i.StaticWarning,u=e("./schema_built-in_types").getSchemaBuiltinTypes,a={sl:0,sc:0,el:0,ec:0},f={},l=function(e){return e.uri+"#"+e.name},c=function(e,t){return l(e)+"#"+t};t||(f["http://jsoniq.org/functions"]={prefix:"jn",pos:a,type:"module",override:!0},f["http://www.28msec.com/modules/collections"]={prefix:"db",pos:a,type:"module",override:!0},f["http://www.28msec.com/modules/store"]={prefix:"store",pos:a,type:"module",override:!0},f["http://jsoniq.org/function-library"]={prefix:"libjn",pos:a,type:"module",override:!0},f["http://www.w3.org/2005/xpath-functions"]={prefix:"fn",pos:a,type:"module",override:!0},f["http://www.w3.org/2005/xquery-local-functions"]={prefix:"local",pos:a,type:"declare",override:!0},f["http://www.w3.org/2001/XMLSchema-instance"]={prefix:"xsi",pos:a,type:"declare"},f["http://www.w3.org/2001/XMLSchema"]={prefix:"xs",pos:a,type:"declare"},f["http://www.w3.org/XML/1998/namespace"]={prefix:"xml",pos:a,type:"declare"},f["http://zorba.io/annotations"]={prefix:"an",pos:a,type:"declare",override:!0},f["http://www.28msec.com/annotations/rest"]={prefix:"rest",pos:a,type:"declare",override:!0},f["http://www.w3.org/2005/xqt-errors"]={prefix:"err",pos:a,type:"declare",override:!0},f["http://zorba.io/errors"]={prefix:"zerr",pos:a,type:"declare",override:!0});var h={parent:t,children:[],pos:n,setModuleResolver:function(e){return this.root.moduleResolver=e,this},setModules:function(e){if(this!==this.root)throw new Error("setModules() not invoked from the root static context.");this.moduleResolver=function(t){return e[t]};var t=this;return Object.keys(this.namespaces).forEach(function(e){var n=t.namespaces[e];if(n.type==="module"){var i=t.moduleResolver(e);i.variables&&r.concat(t.variables,i.variables),i.functions&&r.concat(t.functions,i.functions)}}),this},setModulesFromXQDoc:function(e){if(this!==this.root)throw new Error("setModulesFromXQDoc() not invoked from the root static context.");var t={};Object.keys(e).forEach(function(n){var r=e[n],i={},s={};r.functions.forEach(function(e){s[n+"#"+e.name+"#"+e.arity]={params:[],annotations:[],name:e.name,arity:e.arity,eqname:{uri:n,name:e.name}},e.parameters.forEach(function(t){s[n+"#"+e.name+"#"+e.arity].params.push("$"+t.name)})}),r.variables.forEach(function(e){var t=e.name.substring(e.name.indexOf(":")+1);i[n+"#"+t]={type:"VarDecl",annotations:[],eqname:{uri:n,name:t}}}),t[n]={variables:i,functions:s}}),this.root.moduleResolver=function(e){return t[e]};var n=this;return Object.keys(this.namespaces).forEach(function(e){var t=n.namespaces[e];if(t.type==="module"){var i=n.moduleResolver(e);i.variables&&r.concat(n.variables,i.variables),i.functions&&r.concat(n.functions,i.functions)}}),this},moduleNamespace:"",defaultFunctionNamespace:"http://www.w3.org/2005/xpath-functions",defaultFunctionNamespaces:["http://www.28msec.com/modules/collections","http://www.28msec.com/modules/store","http://jsoniq.org/functions","http://jsoniq.org/function-library","http://www.w3.org/2001/XMLSchema"],defaultElementNamespace:"",namespaces:f,availableModuleNamespaces:[],importModule:function(e,t,n){if(this!==this.root)throw new Error("Function not invoked from the root static context.");this.addNamespace(e,t,n,"module");if(this.moduleResolver)try{var i=this.moduleResolver(e,[]);i.variables&&r.concat(this.variables,i.variables),i.functions&&r.concat(this.functions,i.functions)}catch(o){throw new s("XQST0059",'module "'+e+'" not found',n)}return this},getAvailableModuleNamespaces:function(){return this.root.availableModuleNamespaces},getPrefixByNamespace:function(e){return this.root.namespaces[e].prefix},addNamespace:function(e,t,n,r){if(t===""&&r==="module")throw new o("W01","Avoid this type of import. Use import module namespace instead",n);if(e==="")throw new s("XQST0088","empty target namespace in module import or module declaration",n);var i=this.getNamespace(e);if(i&&i.type===r&&r!=="declare"&&!i.override)throw new s("XQST0047",'"'+e+'": duplicate target namespace',n);i=this.getNamespaceByPrefix(t);if(i&&!i.override)throw new s("XQST0033",'"'+t+'": namespace prefix already bound to "'+i.uri+'"',n);i=this.namespaces[e],this.namespaces[e]={prefix:t,pos:n,type:r};if(i)throw new o("W02",'"'+e+'" already bound to the "'+i.prefix+'" prefix',n)},getNamespaces:function(){return this.root.namespaces},getNamespace:function(e){var t=this;while(t){var n=t.namespaces[e];if(n)return n;t=t.parent}},getNamespaceByPrefix:function(e){var t=function(t){var r=n.namespaces[t];if(r.prefix===e)throw r.uri=t,r},n=this;while(n){try{Object.keys(n.namespaces).forEach(t)}catch(r){return r}n=n.parent}},resolveQName:function(e,t){var n={uri:"",prefix:"",name:""},r;if(e.substring(0,2)==="Q{")r=e.indexOf("}"),n.uri=e.substring(2,r),n.name=e.substring(r+1);else{r=e.indexOf(":"),n.prefix=e.substring(0,r);var i=this.getNamespaceByPrefix(n.prefix);if(!i&&n.prefix!==""&&["fn","jn"].indexOf(n.prefix)===-1)throw new s("XPST0081",'"'+n.prefix+'": can not expand prefix of lexical QName to namespace URI',t);i&&(n.uri=i.uri),n.name=e.substring(r+1)}return n},variables:{},varRefs:{},functionCalls:{},addVariable:function(e,t,n){if(t!=="VarDecl"||this.moduleNamespace===""||this.moduleNamespace===e.uri||e.uri===""&&this.defaultFunctionNamespace===this.moduleNamespace){var r=l(e);if(t==="VarDecl"&&this.variables[r])throw new s("XQST0049",'"'+e.name+'": duplicate variable declaration',n);return this.variables[r]={type:t,pos:n,qname:e,annotations:{}},this}throw new s("XQST0048",'"'+e.prefix+":"+e.name+'": Qname not library namespace',n)},getVariables:function(){var e={},t=this,n=function(n){e[n]||(e[n]=t.variables[n])};while(t)Object.keys(t.variables).forEach(n),t=t.parent;return e},getVariable:function(e){var t=l(e),n=this;while(n){if(n.variables[t])return n.variables[t];n=n.parent}},addVarRef:function(e,t){var n=this.getVariable(e);if(!n&&(e.uri===""||this.root.moduleResolver))throw new s("XPST0008",'"'+e.name+'": undeclared variable',t);var r=l(e);this.varRefs[r]=!0},addFunctionCall:function(e,t,n){var r=this.getFunction(e,t);if(!(!!r||e.uri!=="http://www.w3.org/2005/xquery-local-functions"&&!this.root.moduleResolver||(e.uri==="http://www.w3.org/2005/xpath-functions"||e.uri===""&&this.root.defaultFunctionNamespaces.concat(this.root.defaultFunctionNamespace).indexOf("http://www.w3.org/2005/xpath-functions")!==-1)&&e.name==="concat")&&!r)throw new s("XPST0008",'"'+e.name+"#"+t+'": undeclared function',n);var i=c(e,t);this.functionCalls[i]=!0},functions:u()["http://www.w3.org/2001/XMLSchema"].functions,getFunctions:function(){return this.root.functions},getFunction:function(e,t){var n=c(e,t),r;if(e.uri===""){var i=this;return this.root.defaultFunctionNamespaces.concat([this.root.defaultFunctionNamespace]).forEach(function(n){if(!!r)return!1;r=i.getFunction({uri:n,prefix:e.prefix,name:e.name},t)}),r}return this.root.functions[n]},addFunction:function(e,t,n){if(this!==this.root)throw new Error("addFunction() not invoked from the root static context.");var r=n.length;if(this.moduleNamespace===""||this.moduleNamespace===e.uri||e.uri===""&&this.defaultFunctionNamespace===this.moduleNamespace){var i=c(e,r);if(this.functions[i])throw new s("XQST0034",'"'+e.name+'": duplicate function declaration',t);return this.functions[i]={pos:t,params:n},this}throw new s("XQST0048",'"'+e.prefix+":"+e.name+'": Qname not library namespace',t)}};return h.root=t?t.root:h,h}},{"../tree_ops":11,"./errors":1,"./schema_built-in_types":3}],5:[function(e,t,n){n.Translator=function(t,n){"use strict";var r=e("./errors"),i=r.StaticError,s=r.StaticWarning,o=e("../tree_ops").TreeOps,u=e("./static_context").StaticContext,a=e("./handlers"),f=function(e,t){var n=[];return t.length===0?e:(e.children.forEach(function(e){e.name===t[0]&&t.length>1?n=f(e,t.slice(1)):e.name===t[0]&&n.push(e)}),n)},l=[];this.apply=function(e){try{e()}catch(t){if(t instanceof i)c(t);else{if(!(t instanceof s))throw t;h(t.getCode(),t.getMessage(),t.getPos())}}};var c=function(e){l.push({pos:e.getPos(),type:"error",level:"error",message:"["+e.getCode()+"] "+e.getMessage()})},h=function(e,t,n){l.push({pos:n,type:"warning",level:"warning",message:"["+e+"] "+t})};this.getMarkers=function(){return l};var p=this;t.pos=n.pos;var d=t,v=function(e){d=new u(d,e),d.parent.children.push(d)},m=function(e){e!==undefined&&(d.pos.el=e.el,d.pos.ec=e.ec),Object.keys(d.varRefs).forEach(function(e){d.variables[e]||(d.parent.varRefs[e]=!0)}),Object.keys(d.variables).forEach(function(e){!d.varRefs[e]&&d.variables[e].type!=="GroupingVariable"&&d.variables[e].type!=="CatchVar"&&h("W03",'Unused variable "$'+d.variables[e].qname.name+'"',d.variables[e].pos)}),d=d.parent};this.visitOnly=function(e,t){e.children.forEach(function(e){t.indexOf(e.name)!==-1&&p.visit(e)})},this.getFirstChild=function(e,t){var n;return e.children.forEach(function(e){e.name===t&&n===undefined&&(n=e)}),n},this.ModuleDecl=function(e){return this.visitChildren(e,a.ModuleDecl(p,t,e)),!0},this.Prolog=function(e){return this.visitOnly(e,["DefaultNamespaceDecl","Setter","NamespaceDecl","Import"]),n.index.forEach(function(e){if(e.name==="VarDecl")e.children.forEach(function(n){n.name==="VarName"&&p.apply(function(){var r=o.flatten(n),i=t.resolveQName(r,n.pos);t.addVariable(i,e.name,n.pos)})});else if(e.name==="FunctionDecl"){var n,r,i=[];e.children.forEach(function(e){e.name==="EQName"?(n=e,r=e.pos):e.name==="ParamList"&&e.children.forEach(function(e){e.name==="Param"&&i.push(o.flatten(e))})}),p.apply(function(){n=o.flatten(n),n=t.resolveQName(n,r),t.addFunction(n,r,i)})}}),this.visitOnly(e,["ContextItemDecl","AnnotatedDecl","OptionDecl"]),!0},this.ModuleImport=function(e){return this.visitChildren(e,a.ModuleImport(p,t,e)),!0},this.SchemaImport=function(e){return this.visitChildren(e,a.SchemaImport(p,t,e)),!0},this.DefaultNamespaceDecl=function(e){return this.visitChildren(e,a.DefaultNamespaceDecl(p,t,e)),!0},this.NamespaceDecl=function(e){return this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0};var g={};this.AnnotatedDecl=function(e){return g={},this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0},this.CompatibilityAnnotation=function(){return g["http://www.w3.org/2012/xquery#updating"]=[],!0},this.Annotation=function(e){return this.visitChildren(e,{EQName:function(e){var t=o.flatten(e);p.apply(function(){var n=d.resolveQName(t,e.pos);g[n.uri+"#"+n.name]=[]})}}),!0},this.VarDecl=function(e){try{var n=p.getFirstChild(e,"VarName"),r=o.flatten(n),i=d.resolveQName(r,n.pos),s=t.getVariable(i);s&&(s.annotations=g)}catch(u){}return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),!0},this.FunctionDecl=function(e){var t=g["http://www.w3.org/2012/xquery#updating"]!==undefined,n=f(e,["ReturnType"])[0],r=f(e,["EQName"])[0];!n&&!t&&h("W05","Untyped return value",r.pos);var i=!1;return e.children.forEach(function(e){if(e.name==="TOKEN"&&e.value==="external")return i=!0,!1}),i||(v(e.pos),this.visitChildren(e),m()),!0},this.VarRef=function(e){return this.visitChildren(e,a.VarRefHandler(p,d,e)),!0},this.Param=function(e){var t=f(e,["TypeDeclaration"])[0];return t||h("W05","Untyped function parameter",e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.InlineFunctionExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0};var y=[],b=function(e){v(e.pos),y.push(0),p.visitChildren(e);for(var t=1;t<=y[y.length-1];t++)m(e.pos);y.pop(),m()};this.StatementsAndOptionalExpr=function(e){return b(e),!0},this.StatementsAndExpr=function(e){return b(e),!0},this.BlockStatement=function(e){return b(e),!0},this.VarDeclStatement=function(e){v(e.pos),y[y.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e))};var w=[];this.FLWORExpr=this.FLWORStatement=function(e){v(e.pos),w.push(0),this.visitChildren(e);for(var t=1;t<=w[w.length-1];t++)m(e.pos);return w.pop(),m(),!0},this.ForBinding=function(e){return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.LetBinding=function(e){return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.GroupingSpec=function(e){var t=!1;e.children.forEach(function(e){if(e.value===":=")return t=!0,!1});if(t){var n=e.children[0];return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),v(e.pos),w[w.length-1]++,this.visitChildren(n,a.VarHandler(p,d,n)),!0}},this.TumblingWindowClause=function(e){return this.visitOnly(e,["ExprSingle"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,["WindowStartCondition","WindowEndCondition"]),!0},this.WindowVars=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.SlidingWindowClause=function(e){return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,["WindowStartCondition","WindowEndCondition"]),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CurrentItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PreviousItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.NextItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CountClause=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CaseClause=function(e){return v(e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,["ExprSingle"]),m(),!0},this.TransformExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.TransformSpec=function(e){return this.visitOnly(e,["ExprSingle","VarValue","VarDefaultValue"]),this.visitChildren(e,a.VarHandler(p,d,e)),!0};var E=[];this.QuantifiedExpr=function(e){v(e.pos),E.push(0),this.visitChildren(e);for(var t=1;t<=E[E.length-1];t++)m(e.pos);return E.pop(),m(),!0},this.QuantifiedVarDecl=function(e){return this.visitOnly(e,["ExprSingle"]),v(e.pos),E[E.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.FunctionCall=function(e){this.visitOnly(e,["ArgumentList"]);var t=p.getFirstChild(e,"EQName"),n=o.flatten(t),r=f(e,["ArgumentList","Argument"]).length;return p.apply(function(){var i=d.resolveQName(n,e.pos);try{i.uri!==""&&(d.root.namespaces[i.uri].used=!0)}catch(s){}d.addFunctionCall(i,r,t.pos)}),!0},this.TryClause=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.CatchClause=function(e){v(e.pos);var t="err",n="http://www.w3.org/2005/xqt-errors",r={sl:0,sc:0,el:0,ec:0};return d.addVariable({prefix:t,uri:n,name:"code"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"description"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"value"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"module"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"line-number"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"column-number"},"CatchVar",r),d.addVariable({prefix:t,uri:n,name:"additional"},"CatchVar",r),this.visitChildren(e),m(),!0},this.Pragma=function(e){var n=o.flatten(f(e,["EQName"])[0]);n=t.resolveQName(n,e);var r=o.flatten(f(e,["PragmaContents"])[0]);if(n.name==="xqlint"&&n.uri==="http://xqlint.io"){v(e.pos);var i=r.match(/[a-zA-Z]+\(([^)]+)\)/g);return i.forEach(function(t){var n=t.substring(0,t.indexOf("(")),r=t.substring(0,t.length-1).substring(t.indexOf("(")+1).split(",").map(function(e){return e.trim()});n==="varrefs"&&r.forEach(function(t){var n=d.resolveQName(t.substring(1),e.pos);n.uri!==""&&(d.root.namespaces[n.uri].used=!0),d.addVarRef(n,e.pos)})}),this.visitChildren(e),m(),!0}},this.visit=function(e){var t=e.name,n=!1;typeof this[t]=="function"&&(n=this[t](e)===!0),n||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]=="function"?t[r.name](r):this.visit(r)}},this.visit(n),Object.keys(t.variables).forEach(function(e){!t.varRefs[e]&&(t.variables[e].annotations["http://www.w3.org/2005/xpath-functions#private"]||t.moduleNamespace==="")&&t.variables[e].pos&&h("W03",'Unused variable "'+t.variables[e].qname.name+'"',t.variables[e].pos)}),Object.keys(t.namespaces).forEach(function(e){var n=t.namespaces[e];n.used===undefined&&!n.override&&n.type==="module"&&h("W04",'Unused module "'+e+'"',n.pos)})}},{"../tree_ops":11,"./errors":1,"./handlers":2,"./static_context":4}],6:[function(e,t,n){"use strict";function s(e,t,n){n=n||i;var r=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;r.push(e[s])}return r.reverse().join("")}function o(e,t){var n=0,r=e.length-1,i=Math.floor((r+n)/2);while(r>n&&i>=0&&e[i].indexOf(t)!==0)t<e[i]?r=i-1:t>e[i]&&(n=i+1),i=Math.floor((r+n)/2);while(i>0&&e[i-1].indexOf(t)===0)i--;return i>=0?i:0}var r=e("../tree_ops").TreeOps,i=/[a-zA-Z_0-9\$]/,u=/[a-zA-Z_0-9\/\.:\-#]/,a="-._A-Za-z0-9:\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0300-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd",f="["+a+"]",l="["+a+"\\$]",c=new RegExp(f),h=new RegExp(l),p={LetBinding:"Let binding",Param:"Function parameter",QuantifiedExpr:"Quantified expression binding",VarDeclStatement:"Local variable",ForBinding:"For binding",TumblingWindowClause:"Tumbling window binding",WindowVars:"Window variable",SlidingWindowClause:"Sliding window binding",PositionalVar:"Positional variable",CurrentItem:"Current item",PreviousItem:"Previous item",NextItem:"Next item",CountClause:"Count binding",GroupingVariable:"Grouping variable",VarDecl:"Module variable"},d=function(e,t){t.sort();var n=o(t,e),r=[];for(var i=n;i<t.length&&t[i].indexOf(e)===0;i++)r.push(t[i]);return r},v=function(e,t,n){var r=e.indexOf(":");if(r===-1){var i=[],s=n.getNamespaces();Object.keys(s).forEach(function(e){(s[e].type==="module"||e==="http://www.w3.org/2005/xquery-local-functions")&&i.push(s[e].prefix)});var o=d(e,i),u=function(e){return{name:e+":",value:e+":",meta:"prefix"}};return o.map(u)}return[]},m=function(e,t,n){var r=[],i={},s=n.getFunctions(),o="",u="",a=e,f=e.indexOf(":"),l=!1;if(f!==-1){u=e.substring(0,f),a=e.substring(f+1);var h=n.getNamespaceByPrefix(u);h&&(o=n.getNamespaceByPrefix(u).uri)}else l=!0,o=n.root.defaultFunctionNamespace;Object.keys(s).forEach(function(e){var t=s[e],u=e.substring(0,e.indexOf("#")),a=e.substring(e.indexOf("#")+1);a=a.substring(0,a.indexOf("#"));if(u!==o)return;l||(a=n.getNamespaces()[u].prefix+":"+a),a+="(";var f=a;f+=t.params.map(function(e,t){return"${"+(t+1)+":\\"+e.split(" ")[0]+"}"}).join(", "),a+=t.params.join(", "),a+=")",f+=")",r.push(a),i[a]=f});var p=d(e,r),v=function(e){return{name:e,value:e,meta:"function",priority:4,identifierRegex:c,snippet:i[e]}};return p.map(v)},g=function(e,t,n){var r="",i="",s=e.indexOf(":");s!==-1&&(i=e.substring(0,s),r=n.getNamespaceByPrefix(i).uri);var o=n.getVariables(),u=[],a={};Object.keys(o).forEach(function(e){var t=e.indexOf("#"),r=e.substring(0,t),i=e.substring(t+1);r!==""?(u.push(n.getPrefixByNamespace(r)+":"+i),a[n.getPrefixByNamespace(r)+":"+i]=o[e].type):(u.push(i),a[i]=o[e].type)});var f=d(e,u),l=function(e){return{name:"$"+e,value:"$"+e,meta:p[a[e]],priority:4,identifierRegex:h}};return f.map(l)},y=function(e,t,n){var r=s(e,t.col,c),i=e.substring(0,t.col-(r.length===0?0:r.length)),o=i[i.length-1]==="$";return o?g(r,t,n):r!==""?m(r,t,n).concat(v(r,t,n)):g(r,t,n).concat(m(r,t,n)).concat(v(r,t,n))},b=function(e,t,n){var r=s(e,t.col,u),i=d(r,n.getAvailableModuleNamespaces()),o=function(e){return{name:e,value:e,meta:"module",priority:4,identifierRegex:u}};return i.map(o)};n.complete=function(e,t,n,i){var s=e.split("\n")[i.line],o=r.findNode(t,i),u=r.findNode(n,i);return u=u?u:n,o&&o.name==="URILiteral"&&o.getParent&&o.getParent.name==="ModuleImport"?b(s,i,u):y(s,i,u)}},{"../tree_ops":11}],7:[function(e,t,n){n.StyleChecker=function(e,t){"use strict";var n="    ",r=[];this.getMarkers=function(){return r},this.WS=function(e){var t=e.value.split("\n");return t.forEach(function(i,s){var o=s===0,u=s===t.length-1;/\r$/.test(i)&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:i.length-1,ec:i.length},type:"warning",level:"warning",message:"[SW01] Detected CRLF"});var a=i.match(/\t+/);a!==null&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:"warning",level:"warning",message:"[SW02] Tabs detected"});if(!o&&u){a=i.match(/^\ +/);if(a!==null){var f=a[0].length%n.length;f!==0&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:"warning",level:"warning",message:"[SW03] Unexcepted indentation of "+a[0].length})}}}),!0},this.visit=function(e,t){var n=e.name,r=!1;typeof this[n]=="function"&&(r=this[n](e,t)===!0),r||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]=="function"?t[r.name](r):this.visit(r)}},t.split("\n").forEach(function(e,t){var n=e.match(/\ +$/);n&&r.push({pos:{sl:t,el:t,sc:n.index,ec:n.index+n[0].length},type:"warning",level:"warning",message:"[SW04] Trailing whitespace"})}),this.visit(e)}},{}],8:[function(e,t,n){n.JSONParseTreeHandler=function(e){"use strict";function f(e){return{name:e,children:[],getParent:null,pos:{sl:0,sc:0,el:0,ec:0}}}function l(e){var t=f(e);r===null?(r=t,r.index=[],i=t):(t.getParent=i,i.children.push(t),i=i.children[i.children.length-1])}function c(){if(i.children.length>0){var e=i.children[0],s=null;for(var o=i.children.length-1;o>=0;o--){s=i.children[o];if(s.pos.el!==0||s.pos.ec!==0)break}i.pos.sl=e.pos.sl,i.pos.sc=e.pos.sc,i.pos.el=s.pos.el,i.pos.ec=s.pos.ec}i.name==="FunctionName"&&(i.name="EQName"),i.name==="EQName"&&i.value===undefined&&(i.value=i.children[0].value,i.children.pop()),t.indexOf(i.name)!==-1&&r.index.push(i),i.getParent!==null&&(i=i.getParent);if(i.children.length>0){var u=i.children[i.children.length-1];u.children.length===1&&n.indexOf(u.name)!==-1&&(i.children[i.children.length-1]=u.children[0])}}function h(e,t,n){var r=n-o;i.value=s.substring(0,r),s=s.substring(r),o=n;var f=a,l=u,c=f+i.value.split("\n").length-1,h=i.value.lastIndexOf("\n"),p=h===-1?l+i.value.length:i.value.substring(h+1).length;a=c,u=p,i.pos.sl=f,i.pos.sc=l,i.pos.el=c,i.pos.ec=p}var t=["VarDecl","FunctionDecl"],n=["OrExpr","AndExpr","ComparisonExpr","StringConcatExpr","RangeExpr","UnionExpr","IntersectExceptExpr","InstanceofExpr","TreatExpr","CastableExpr","CastExpr","UnaryExpr","ValueExpr","FTContainsExpr","SimpleMapExpr","PathExpr","RelativePathExpr","PostfixExpr","StepExpr"],r=null,i=null,s=e,o=0,u=0,a=0;this.closeParseTree=function(){while(i.getParent!==null)c();c()},this.peek=function(){return i},this.getParseTree=function(){return r},this.reset=function(){},this.startNonterminal=function(e,t){l(e,t)},this.endNonterminal=function(){c()},this.terminal=function(e,t,n){e=e.substring(0,1)==="'"&&e.substring(e.length-1)==="'"?"TOKEN":e,l(e,t),h(i,t,n),c()},this.whitespace=function(e,t){var n="WS";l(n,e),h(i,e,t),c()}}},{}],9:[function(e,t,n){var r=n.JSONiqParser=function i(e,t){function r(e,t){ic=t,ac=e,fc=e.length,s(0,0,0)}function s(e,t,n){Xl=t,Vl=t,$l=e,Jl=t,Kl=n,Ql=0,cc=n,ec=-1,sc={},ic.reset(ac)}function o(){ic.startNonterminal("Module",Vl);switch($l){case 170:ql(168);break;default:Wl=$l}(Wl==64682||Wl==137898)&&u(),Il(278);switch($l){case 185:ql(146);break;default:Wl=$l}switch(Wl){case 95929:jl(),a();break;default:jl(),Za()}ic.endNonterminal("Module",Vl)}function u(){ic.startNonterminal("VersionDecl",Vl),Pl(170),Il(120);switch($l){case 126:Pl(126),Il(17),Pl(11);break;default:Pl(269),Il(17),Pl(11),Il(113),$l==126&&(Pl(126),Il(17),Pl(11))}Il(29),jl(),c(),ic.endNonterminal("VersionDecl",Vl)}function a(){ic.startNonterminal("LibraryModule",Vl),f(),Il(142),jl(),l(),ic.endNonterminal("LibraryModule",Vl)}function f(){ic.startNonterminal("ModuleDecl",Vl),Pl(185),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),Il(29),jl(),c(),ic.endNonterminal("ModuleDecl",Vl)}function l(){ic.startNonterminal("Prolog",Vl);for(;;){Il(278);switch($l){case 109:ql(207);break;case 155:ql(169);break;default:Wl=$l}if(Wl!=43117&&Wl!=44141&&Wl!=50797&&Wl!=53869&&Wl!=54893&&Wl!=56429&&Wl!=73325&&Wl!=94875&&Wl!=95853&&Wl!=106093&&Wl!=115821&&Wl!=117403)break;switch($l){case 109:ql(201);break;default:Wl=$l}if(Wl==56429){Wl=uc(0,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{_(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(0,Vl,Wl)}}switch(Wl){case-1:jl(),M();break;case 95853:jl(),O();break;case 155:jl(),C();break;case 73325:jl(),D();break;default:jl(),h()}Il(29),jl(),c()}for(;;){Il(278);switch($l){case 109:ql(202);break;default:Wl=$l}if(Wl!=17005&&Wl!=49261&&Wl!=52333&&Wl!=75373&&Wl!=80493&&Wl!=83565&&Wl!=104045&&Wl!=134765&&Wl!=137325)break;switch($l){case 109:ql(197);break;default:Wl=$l}switch(Wl){case 52333:jl(),R();break;case 104045:jl(),Q();break;default:jl(),P()}Il(29),jl(),c()}ic.endNonterminal("Prolog",Vl)}function c(){ic.startNonterminal("Separator",Vl),Pl(54),ic.endNonterminal("Separator",Vl)}function h(){ic.startNonterminal("Setter",Vl);switch($l){case 109:ql(194);break;default:Wl=$l}if(Wl==56429){Wl=uc(1,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{v(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),w(),Wl=-6}catch(f){Wl=-9}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(1,Vl,Wl)}}switch(Wl){case 44141:p();break;case-2:d();break;case 43117:m();break;case 50797:g();break;case 106093:y();break;case-6:b();break;case 115821:Io();break;case 53869:E();break;default:T()}ic.endNonterminal("Setter",Vl)}function p(){ic.startNonterminal("BoundarySpaceDecl",Vl),Pl(109),Il(36),Pl(86),Il(137);switch($l){case 218:Pl(218);break;default:Pl(246)}ic.endNonterminal("BoundarySpaceDecl",Vl)}function d(){ic.startNonterminal("DefaultCollationDecl",Vl),Pl(109),Il(49),Pl(110),Il(41),Pl(95),Il(15),Pl(7),ic.endNonterminal("DefaultCollationDecl",Vl)}function v(){Hl(109),Il(49),Hl(110),Il(41),Hl(95),Il(15),Hl(7)}function m(){ic.startNonterminal("BaseURIDecl",Vl),Pl(109),Il(35),Pl(84),Il(15),Pl(7),ic.endNonterminal("BaseURIDecl",Vl)}function g(){ic.startNonterminal("ConstructionDecl",Vl),Pl(109),Il(44),Pl(99),Il(137);switch($l){case 246:Pl(246);break;default:Pl(218)}ic.endNonterminal("ConstructionDecl",Vl)}function y(){ic.startNonterminal("OrderingModeDecl",Vl),Pl(109),Il(71),Pl(207),Il(135);switch($l){case 206:Pl(206);break;default:Pl(262)}ic.endNonterminal("OrderingModeDecl",Vl)}function b(){ic.startNonterminal("EmptyOrderDecl",Vl),Pl(109),Il(49),Pl(110),Il(70),Pl(205),Il(52),Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}ic.endNonterminal("EmptyOrderDecl",Vl)}function w(){Hl(109),Il(49),Hl(110),Il(70),Hl(205),Il(52),Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}function E(){ic.startNonterminal("CopyNamespacesDecl",Vl),Pl(109),Il(47),Pl(105),Il(132),jl(),S(),Il(25),Pl(42),Il(127),jl(),x(),ic.endNonterminal("CopyNamespacesDecl",Vl)}function S(){ic.startNonterminal("PreserveMode",Vl);switch($l){case 218:Pl(218);break;default:Pl(193)}ic.endNonterminal("PreserveMode",Vl)}function x(){ic.startNonterminal("InheritMode",Vl);switch($l){case 159:Pl(159);break;default:Pl(192)}ic.endNonterminal("InheritMode",Vl)}function T(){ic.startNonterminal("DecimalFormatDecl",Vl),Pl(109),Il(118);switch($l){case 107:Pl(107),Il(246),jl(),$a();break;default:Pl(110),Il(48),Pl(107)}for(;;){Il(204);if($l==54)break;jl(),N(),Il(30),Pl(61),Il(17),Pl(11)}ic.endNonterminal("DecimalFormatDecl",Vl)}function N(){ic.startNonterminal("DFPropertyName",Vl);switch($l){case 108:Pl(108);break;case 151:Pl(151);break;case 158:Pl(158);break;case 182:Pl(182);break;case 68:Pl(68);break;case 213:Pl(213);break;case 212:Pl(212);break;case 280:Pl(280);break;case 117:Pl(117);break;default:Pl(211)}ic.endNonterminal("DFPropertyName",Vl)}function C(){ic.startNonterminal("Import",Vl);switch($l){case 155:ql(130);break;default:Wl=$l}switch(Wl){case 117403:k();break;default:A()}ic.endNonterminal("Import",Vl)}function k(){ic.startNonterminal("SchemaImport",Vl),Pl(155),Il(76),Pl(229),Il(141),$l!=7&&(jl(),L()),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal("SchemaImport",Vl)}function L(){ic.startNonterminal("SchemaPrefix",Vl);switch($l){case 187:Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61);break;default:Pl(110),Il(50),Pl(122),Il(64),Pl(187)}ic.endNonterminal("SchemaPrefix",Vl)}function A(){ic.startNonterminal("ModuleImport",Vl),Pl(155),Il(63),Pl(185),Il(93),$l==187&&(Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61)),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal("ModuleImport",Vl)}function O(){ic.startNonterminal("NamespaceDecl",Vl),Pl(109),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),ic.endNonterminal("NamespaceDecl",Vl)}function M(){ic.startNonterminal("DefaultNamespaceDecl",Vl),Pl(109),Il(49),Pl(110),Il(119);switch($l){case 122:Pl(122);break;default:Pl(147)}Il(64),Pl(187),Il(15),Pl(7),ic.endNonterminal("DefaultNamespaceDecl",Vl)}function _(){Hl(109),Il(49),Hl(110),Il(119);switch($l){case 122:Hl(122);break;default:Hl(147)}Il(64),Hl(187),Il(15),Hl(7)}function D(){ic.startNonterminal("FTOptionDecl",Vl),Pl(109),Il(55),Pl(143),Il(84),jl(),Qu(),ic.endNonterminal("FTOptionDecl",Vl)}function P(){ic.startNonterminal("AnnotatedDecl",Vl),Pl(109);for(;;){Il(192);if($l!=33&&$l!=263)break;switch($l){case 263:jl(),H();break;default:jl(),B()}}switch($l){case 268:jl(),F();break;case 147:jl(),_l();break;case 96:jl(),Ca();break;case 157:jl(),Ha();break;default:jl(),Ba()}ic.endNonterminal("AnnotatedDecl",Vl)}function H(){ic.startNonterminal("CompatibilityAnnotation",Vl),Pl(263),ic.endNonterminal("CompatibilityAnnotation",Vl)}function B(){ic.startNonterminal("Annotation",Vl),Pl(33),Il(246),jl(),$a(),Il(193);if($l==35){Pl(35),Il(190),jl(),di();for(;;){Il(105);if($l!=42)break;Pl(42),Il(190),jl(),di()}Pl(38)}ic.endNonterminal("Annotation",Vl)}function j(){Hl(33),Il(246),Ja(),Il(193);if($l==35){Hl(35),Il(190),vi();for(;;){Il(105);if($l!=42)break;Hl(42),Il(190),vi()}Hl(38)}}function F(){ic.startNonterminal("VarDecl",Vl),Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(157),$l==80&&(jl(),Cs()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal("VarDecl",Vl)}function I(){ic.startNonterminal("VarValue",Vl),Wf(),ic.endNonterminal("VarValue",Vl)}function q(){ic.startNonterminal("VarDefaultValue",Vl),Wf(),ic.endNonterminal("VarDefaultValue",Vl)}function R(){ic.startNonterminal("ContextItemDecl",Vl),Pl(109),Il(46),Pl(102),Il(58),Pl(167),Il(157),$l==80&&(Pl(80),Il(254),jl(),_s()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal("ContextItemDecl",Vl)}function U(){ic.startNonterminal("ParamList",Vl),W();for(;;){Il(105);if($l!=42)break;Pl(42),Il(21),jl(),W()}ic.endNonterminal("ParamList",Vl)}function z(){X();for(;;){Il(105);if($l!=42)break;Hl(42),Il(21),X()}}function W(){ic.startNonterminal("Param",Vl),Pl(31),Il(246),jl(),$a(),Il(153),$l==80&&(jl(),Cs()),ic.endNonterminal("Param",Vl)}function X(){Hl(31),Il(246),Ja(),Il(153),$l==80&&ks()}function V(){ic.startNonterminal("FunctionBody",Vl),J(),ic.endNonterminal("FunctionBody",Vl)}function $(){K()}function J(){ic.startNonterminal("EnclosedExpr",Vl),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("EnclosedExpr",Vl)}function K(){Hl(281),Il(267),Y(),Hl(287)}function Q(){ic.startNonterminal("OptionDecl",Vl),Pl(109),Il(69),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal("OptionDecl",Vl)}function G(){ic.startNonterminal("Expr",Vl),Wf();for(;;){if($l!=42)break;Pl(42),Il(267),jl(),Wf()}ic.endNonterminal("Expr",Vl)}function Y(){Xf();for(;;){if($l!=42)break;Hl(42),Il(267),Xf()}}function Z(){ic.startNonterminal("FLWORExpr",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),rn(),ic.endNonterminal("FLWORExpr",Vl)}function et(){nt();for(;;){Il(195);if($l==224)break;it()}sn()}function tt(){ic.startNonterminal("InitialClause",Vl);switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:st();break;case 177:vt();break;default:bt()}ic.endNonterminal("InitialClause",Vl)}function nt(){switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:ot();break;case 177:mt();break;default:wt()}}function rt(){ic.startNonterminal("IntermediateClause",Vl);switch($l){case 139:case 177:tt();break;case 272:It();break;case 150:Rt();break;case 106:jt();break;default:Kt()}ic.endNonterminal("IntermediateClause",Vl)}function it(){switch($l){case 139:case 177:nt();break;case 272:qt();break;case 150:Ut();break;case 106:Ft();break;default:Qt()}}function st(){ic.startNonterminal("ForClause",Vl),Pl(139),Il(21),jl(),ut();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),ut()}ic.endNonterminal("ForClause",Vl)}function ot(){Hl(139),Il(21),at();for(;;){if($l!=42)break;Hl(42),Il(21),at()}}function ut(){ic.startNonterminal("ForBinding",Vl),Pl(31),Il(246),jl(),Ti(),Il(182),$l==80&&(jl(),Cs()),Il(173),$l==73&&(jl(),ft()),Il(160),$l==82&&(jl(),ct()),Il(126),$l==232&&(jl(),pt()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal("ForBinding",Vl)}function at(){Hl(31),Il(246),Ni(),Il(182),$l==80&&ks(),Il(173),$l==73&&lt(),Il(160),$l==82&&ht(),Il(126),$l==232&&dt(),Il(56),Hl(156),Il(267),Xf()}function ft(){ic.startNonterminal("AllowingEmpty",Vl),Pl(73),Il(52),Pl(124),ic.endNonterminal("AllowingEmpty",Vl)}function lt(){Hl(73),Il(52),Hl(124)}function ct(){ic.startNonterminal("PositionalVar",Vl),Pl(82),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal("PositionalVar",Vl)}function ht(){Hl(82),Il(21),Hl(31),Il(246),Ni()}function pt(){ic.startNonterminal("FTScoreVar",Vl),Pl(232),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal("FTScoreVar",Vl)}function dt(){Hl(232),Il(21),Hl(31),Il(246),Ni()}function vt(){ic.startNonterminal("LetClause",Vl),Pl(177),Il(100),jl(),gt();for(;;){if($l!=42)break;Pl(42),Il(100),jl(),gt()}ic.endNonterminal("LetClause",Vl)}function mt(){Hl(177),Il(100),yt();for(;;){if($l!=42)break;Hl(42),Il(100),yt()}}function gt(){ic.startNonterminal("LetBinding",Vl);switch($l){case 31:Pl(31),Il(246),jl(),Ti(),Il(109),$l==80&&(jl(),Cs());break;default:pt()}Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal("LetBinding",Vl)}function yt(){switch($l){case 31:Hl(31),Il(246),Ni(),Il(109),$l==80&&ks();break;default:dt()}Il(28),Hl(53),Il(267),Xf()}function bt(){ic.startNonterminal("WindowClause",Vl),Pl(139),Il(139);switch($l){case 257:jl(),Et();break;default:jl(),xt()}ic.endNonterminal("WindowClause",Vl)}function wt(){Hl(139),Il(139);switch($l){case 257:St();break;default:Tt()}}function Et(){ic.startNonterminal("TumblingWindowClause",Vl),Pl(257),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt();if($l==127||$l==202)jl(),kt();ic.endNonterminal("TumblingWindowClause",Vl)}function St(){Hl(257),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),($l==127||$l==202)&&Lt()}function xt(){ic.startNonterminal("SlidingWindowClause",Vl),Pl(239),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt(),jl(),kt(),ic.endNonterminal("SlidingWindowClause",Vl)}function Tt(){Hl(239),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),Lt()}function Nt(){ic.startNonterminal("WindowStartCondition",Vl),Pl(242),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal("WindowStartCondition",Vl)}function Ct(){Hl(242),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function kt(){ic.startNonterminal("WindowEndCondition",Vl),$l==202&&Pl(202),Il(53),Pl(127),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal("WindowEndCondition",Vl)}function Lt(){$l==202&&Hl(202),Il(53),Hl(127),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function At(){ic.startNonterminal("WindowVars",Vl),$l==31&&(Pl(31),Il(246),jl(),Mt()),Il(174),$l==82&&(jl(),ct()),Il(163),$l==219&&(Pl(219),Il(21),Pl(31),Il(246),jl(),Dt()),Il(131),$l==190&&(Pl(190),Il(21),Pl(31),Il(246),jl(),Ht()),ic.endNonterminal("WindowVars",Vl)}function Ot(){$l==31&&(Hl(31),Il(246),_t()),Il(174),$l==82&&ht(),Il(163),$l==219&&(Hl(219),Il(21),Hl(31),Il(246),Pt()),Il(131),$l==190&&(Hl(190),Il(21),Hl(31),Il(246),Bt())}function Mt(){ic.startNonterminal("CurrentItem",Vl),$a(),ic.endNonterminal("CurrentItem",Vl)}function _t(){Ja()}function Dt(){ic.startNonterminal("PreviousItem",Vl),$a(),ic.endNonterminal("PreviousItem",Vl)}function Pt(){Ja()}function Ht(){ic.startNonterminal("NextItem",Vl),$a(),ic.endNonterminal("NextItem",Vl)}function Bt(){Ja()}function jt(){ic.startNonterminal("CountClause",Vl),Pl(106),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal("CountClause",Vl)}function Ft(){Hl(106),Il(21),Hl(31),Il(246),Ni()}function It(){ic.startNonterminal("WhereClause",Vl),Pl(272),Il(267),jl(),Wf(),ic.endNonterminal("WhereClause",Vl)}function qt(){Hl(272),Il(267),Xf()}function Rt(){ic.startNonterminal("GroupByClause",Vl),Pl(150),Il(37),Pl(88),Il(267),jl(),zt(),ic.endNonterminal("GroupByClause",Vl)}function Ut(){Hl(150),Il(37),Hl(88),Il(267),Wt()}function zt(){ic.startNonterminal("GroupingSpecList",Vl),Xt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Xt()}ic.endNonterminal("GroupingSpecList",Vl)}function Wt(){Vt();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),Vt()}}function Xt(){ic.startNonterminal("GroupingSpec",Vl);switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,Vl,Wl)}}switch(Wl){case-1:$t(),Il(206);if($l==53||$l==80)$l==80&&(jl(),Cs()),Il(28),Pl(53),Il(267),jl(),Wf();$l==95&&(Pl(95),Il(15),Pl(7));break;default:Wf()}ic.endNonterminal("GroupingSpec",Vl)}function Vt(){switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),oc(2,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,t,-2)}}}switch(Wl){case-1:Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7));break;case-3:break;default:Xf()}}function $t(){ic.startNonterminal("GroupingVariable",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal("GroupingVariable",Vl)}function Jt(){Hl(31),Il(246),Ni()}function Kt(){ic.startNonterminal("OrderByClause",Vl);switch($l){case 205:Pl(205),Il(37),Pl(88);break;default:Pl(241),Il(70),Pl(205),Il(37),Pl(88)}Il(267),jl(),Gt(),ic.endNonterminal("OrderByClause",Vl)}function Qt(){switch($l){case 205:Hl(205),Il(37),Hl(88);break;default:Hl(241),Il(70),Hl(205),Il(37),Hl(88)}Il(267),Yt()}function Gt(){ic.startNonterminal("OrderSpecList",Vl),Zt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Zt()}ic.endNonterminal("OrderSpecList",Vl)}function Yt(){en();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),en()}}function Zt(){ic.startNonterminal("OrderSpec",Vl),Wf(),jl(),tn(),ic.endNonterminal("OrderSpec",Vl)}function en(){Xf(),nn()}function tn(){ic.startNonterminal("OrderModifier",Vl);if($l==81||$l==114)switch($l){case 81:Pl(81);break;default:Pl(114)}Il(203);if($l==124){Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}}Il(199),$l==95&&(Pl(95),Il(15),Pl(7)),ic.endNonterminal("OrderModifier",Vl)}function nn(){if($l==81||$l==114)switch($l){case 81:Hl(81);break;default:Hl(114)}Il(203);if($l==124){Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}Il(199),$l==95&&(Hl(95),Il(15),Hl(7))}function rn(){ic.startNonterminal("ReturnClause",Vl),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("ReturnClause",Vl)}function sn(){Hl(224),Il(267),Xf()}function on(){ic.startNonterminal("QuantifiedExpr",Vl);switch($l){case 240:Pl(240);break;default:Pl(130)}Il(21),jl(),an();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),an()}Pl(228),Il(267),jl(),Wf(),ic.endNonterminal("QuantifiedExpr",Vl)}function un(){switch($l){case 240:Hl(240);break;default:Hl(130)}Il(21),fn();for(;;){if($l!=42)break;Hl(42),Il(21),fn()}Hl(228),Il(267),Xf()}function an(){ic.startNonterminal("QuantifiedVarDecl",Vl),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal("QuantifiedVarDecl",Vl)}function fn(){Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf()}function ln(){ic.startNonterminal("SwitchExpr",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),hn();if($l!=89)break}Pl(110),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("SwitchExpr",Vl)}function cn(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),pn();if($l!=89)break}Hl(110),Il(73),Hl(224),Il(267),Xf()}function hn(){ic.startNonterminal("SwitchCaseClause",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("SwitchCaseClause",Vl)}function pn(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(267),Xf()}function dn(){ic.startNonterminal("SwitchCaseOperand",Vl),Wf(),ic.endNonterminal("SwitchCaseOperand",Vl)}function vn(){Xf()}function mn(){ic.startNonterminal("TypeswitchExpr",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),yn();if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("TypeswitchExpr",Vl)}function gn(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),bn();if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(267),Xf()}function yn(){ic.startNonterminal("CaseClause",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),wn(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("CaseClause",Vl)}function bn(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),En(),Hl(224),Il(267),Xf()}function wn(){ic.startNonterminal("SequenceTypeUnion",Vl),Ls();for(;;){Il(138);if($l!=284)break;Pl(284),Il(254),jl(),Ls()}ic.endNonterminal("SequenceTypeUnion",Vl)}function En(){As();for(;;){Il(138);if($l!=284)break;Hl(284),Il(254),As()}}function Sn(){ic.startNonterminal("IfExpr",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(267),jl(),Wf(),Pl(123),Il(267),jl(),Wf(),ic.endNonterminal("IfExpr",Vl)}function xn(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(267),Xf(),Hl(123),Il(267),Xf()}function Tn(){ic.startNonterminal("TryCatchExpr",Vl),Cn();for(;;){Il(39),jl(),On(),Il(208);if($l!=92)break}ic.endNonterminal("TryCatchExpr",Vl)}function Nn(){kn();for(;;){Il(39),Mn(),Il(208);if($l!=92)break}}function Cn(){ic.startNonterminal("TryClause",Vl),Pl(256),Il(90),Pl(281),Il(267),jl(),Ln(),Pl(287),ic.endNonterminal("TryClause",Vl)}function kn(){Hl(256),Il(90),Hl(281),Il(267),An(),Hl(287)}function Ln(){ic.startNonterminal("TryTargetExpr",Vl),G(),ic.endNonterminal("TryTargetExpr",Vl)}function An(){Y()}function On(){ic.startNonterminal("CatchClause",Vl),Pl(92),Il(249),jl(),_n(),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("CatchClause",Vl)}function Mn(){Hl(92),Il(249),Dn(),Hl(281),Il(267),Y(),Hl(287)}function _n(){ic.startNonterminal("CatchErrorList",Vl),Yr();for(;;){Il(140);if($l!=284)break;Pl(284),Il(249),jl(),Yr()}ic.endNonterminal("CatchErrorList",Vl)}function Dn(){Zr();for(;;){Il(140);if($l!=284)break;Hl(284),Il(249),Zr()}}function Pn(){ic.startNonterminal("OrExpr",Vl),Bn();for(;;){if($l!=204)break;Pl(204),Il(267),jl(),Bn()}ic.endNonterminal("OrExpr",Vl)}function Hn(){jn();for(;;){if($l!=204)break;Hl(204),Il(267),jn()}}function Bn(){ic.startNonterminal("AndExpr",Vl),Fn();for(;;){if($l!=76)break;Pl(76),Il(267),jl(),Fn()}ic.endNonterminal("AndExpr",Vl)}function jn(){In();for(;;){if($l!=76)break;Hl(76),Il(267),In()}}function Fn(){ic.startNonterminal("NotExpr",Vl),$l==196&&Pl(196),Il(266),jl(),qn(),ic.endNonterminal("NotExpr",Vl)}function In(){$l==196&&Hl(196),Il(266),Rn()}function qn(){ic.startNonterminal("ComparisonExpr",Vl),Un();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:jl(),yr();break;case 58:case 64:case 166:jl(),wr();break;default:jl(),mr()}Il(266),jl(),Un()}ic.endNonterminal("ComparisonExpr",Vl)}function Rn(){zn();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:br();break;case 58:case 64:case 166:Er();break;default:gr()}Il(266),zn()}}function Un(){ic.startNonterminal("FTContainsExpr",Vl),Wn(),$l==100&&(Pl(100),Il(79),Pl(249),Il(177),jl(),ou(),$l==277&&(jl(),Ta())),ic.endNonterminal("FTContainsExpr",Vl)}function zn(){Xn(),$l==100&&(Hl(100),Il(79),Hl(249),Il(177),uu(),$l==277&&Na())}function Wn(){ic.startNonterminal("StringConcatExpr",Vl),Vn();for(;;){if($l!=285)break;Pl(285),Il(266),jl(),Vn()}ic.endNonterminal("StringConcatExpr",Vl)}function Xn(){$n();for(;;){if($l!=285)break;Hl(285),Il(266),$n()}}function Vn(){ic.startNonterminal("RangeExpr",Vl),Jn(),$l==253&&(Pl(253),Il(266),jl(),Jn()),ic.endNonterminal("RangeExpr",Vl)}function $n(){Kn(),$l==253&&(Hl(253),Il(266),Kn())}function Jn(){ic.startNonterminal("AdditiveExpr",Vl),Qn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Pl(41);break;default:Pl(43)}Il(266),jl(),Qn()}ic.endNonterminal("AdditiveExpr",Vl)}function Kn(){Gn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Hl(41);break;default:Hl(43)}Il(266),Gn()}}function Qn(){ic.startNonterminal("MultiplicativeExpr",Vl),Yn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Pl(39);break;case 119:Pl(119);break;case 153:Pl(153);break;default:Pl(183)}Il(266),jl(),Yn()}ic.endNonterminal("MultiplicativeExpr",Vl)}function Gn(){Zn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Hl(39);break;case 119:Hl(119);break;case 153:Hl(153);break;default:Hl(183)}Il(266),Zn()}}function Yn(){ic.startNonterminal("UnionExpr",Vl),er();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Pl(260);break;default:Pl(284)}Il(266),jl(),er()}ic.endNonterminal("UnionExpr",Vl)}function Zn(){tr();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Hl(260);break;default:Hl(284)}Il(266),tr()}}function er(){ic.startNonterminal("IntersectExceptExpr",Vl),nr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Pl(164);break;default:Pl(132)}Il(266),jl(),nr()}ic.endNonterminal("IntersectExceptExpr",Vl)}function tr(){rr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Hl(164);break;default:Hl(132)}Il(266),rr()}}function nr(){ic.startNonterminal("InstanceofExpr",Vl),ir(),Il(223),$l==162&&(Pl(162),Il(67),Pl(200),Il(254),jl(),Ls()),ic.endNonterminal("InstanceofExpr",Vl)}function rr(){sr(),Il(223),$l==162&&(Hl(162),Il(67),Hl(200),Il(254),As())}function ir(){ic.startNonterminal("TreatExpr",Vl),or(),Il(224),$l==254&&(Pl(254),Il(33),Pl(80),Il(254),jl(),Ls()),ic.endNonterminal("TreatExpr",Vl)}function sr(){ur(),Il(224),$l==254&&(Hl(254),Il(33),Hl(80),Il(254),As())}function or(){ic.startNonterminal("CastableExpr",Vl),ar(),Il(225),$l==91&&(Pl(91),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal("CastableExpr",Vl)}function ur(){fr(),Il(225),$l==91&&(Hl(91),Il(33),Hl(80),Il(246),Ns())}function ar(){ic.startNonterminal("CastExpr",Vl),lr(),Il(227),$l==90&&(Pl(90),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal("CastExpr",Vl)}function fr(){cr(),Il(227),$l==90&&(Hl(90),Il(33),Hl(80),Il(246),Ns())}function lr(){ic.startNonterminal("UnaryExpr",Vl);for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Pl(43);break;default:Pl(41)}}jl(),hr(),ic.endNonterminal("UnaryExpr",Vl)}function cr(){for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Hl(43);break;default:Hl(41)}}pr()}function hr(){ic.startNonterminal("ValueExpr",Vl);switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:Sr();break;case 36:Cr();break;default:dr()}ic.endNonterminal("ValueExpr",Vl)}function pr(){switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:xr();break;case 36:kr();break;default:vr()}}function dr(){ic.startNonterminal("SimpleMapExpr",Vl),Or();for(;;){if($l!=26)break;Pl(26),Il(263),jl(),Or()}ic.endNonterminal("SimpleMapExpr",Vl)}function vr(){Mr();for(;;){if($l!=26)break;Hl(26),Il(263),Mr()}}function mr(){ic.startNonterminal("GeneralComp",Vl);switch($l){case 61:Pl(61);break;case 27:Pl(27);break;case 55:Pl(55);break;case 59:Pl(59);break;case 62:Pl(62);break;default:Pl(63)}ic.endNonterminal("GeneralComp",Vl)}function gr(){switch($l){case 61:Hl(61);break;case 27:Hl(27);break;case 55:Hl(55);break;case 59:Hl(59);break;case 62:Hl(62);break;default:Hl(63)}}function yr(){ic.startNonterminal("ValueComp",Vl);switch($l){case 129:Pl(129);break;case 189:Pl(189);break;case 181:Pl(181);break;case 175:Pl(175);break;case 152:Pl(152);break;default:Pl(148)}ic.endNonterminal("ValueComp",Vl)}function br(){switch($l){case 129:Hl(129);break;case 189:Hl(189);break;case 181:Hl(181);break;case 175:Hl(175);break;case 152:Hl(152);break;default:Hl(148)}}function wr(){ic.startNonterminal("NodeComp",Vl);switch($l){case 166:Pl(166);break;case 58:Pl(58);break;default:Pl(64)}ic.endNonterminal("NodeComp",Vl)}function Er(){switch($l){case 166:Hl(166);break;case 58:Hl(58);break;default:Hl(64)}}function Sr(){ic.startNonterminal("ValidateExpr",Vl),Pl(266),Il(175);if($l!=281)switch($l){case 258:Pl(258),Il(246),jl(),Ao();break;default:jl(),Tr()}Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("ValidateExpr",Vl)}function xr(){Hl(266),Il(175);if($l!=281)switch($l){case 258:Hl(258),Il(246),Oo();break;default:Nr()}Il(90),Hl(281),Il(267),Y(),Hl(287)}function Tr(){ic.startNonterminal("ValidationMode",Vl);switch($l){case 174:Pl(174);break;default:Pl(245)}ic.endNonterminal("ValidationMode",Vl)}function Nr(){switch($l){case 174:Hl(174);break;default:Hl(245)}}function Cr(){ic.startNonterminal("ExtensionExpr",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(275),$l!=287&&(jl(),G()),Pl(287),ic.endNonterminal("ExtensionExpr",Vl)}function kr(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(275),$l!=287&&Y(),Hl(287)}function Lr(){ic.startNonterminal("Pragma",Vl),Pl(36),Rl(243),$l==21&&Pl(21),$a(),Rl(10),$l==21&&(Pl(21),Rl(0),Pl(1)),Rl(5),Pl(30),ic.endNonterminal("Pragma",Vl)}function Ar(){Hl(36),Rl(243),$l==21&&Hl(21),Ja(),Rl(10),$l==21&&(Hl(21),Rl(0),Hl(1)),Rl(5),Hl(30)}function Or(){ic.startNonterminal("PathExpr",Vl);switch($l){case 47:Pl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:jl(),_r()}break;case 48:Pl(48),Il(260),jl(),_r();break;default:_r()}ic.endNonterminal("PathExpr",Vl)}function Mr(){switch($l){case 47:Hl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:Dr()}break;case 48:Hl(48),Il(260),Dr();break;default:Dr()}}function _r(){ic.startNonterminal("RelativePathExpr",Vl),ei();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,Vl,Wl)}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Pl(47);break;case 48:Pl(48);break;default:Pl(26)}Il(264),jl(),Pr()}ic.endNonterminal("RelativePathExpr",Vl)}function Dr(){ti();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),oc(3,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,t,-2);break}}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr()}}function Pr(){ic.startNonterminal("StepExpr",Vl);switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ei();break;default:Br()}ic.endNonterminal("StepExpr",Vl)}function Hr(){switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),oc(4,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,t,-2)}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ti();break;case-3:break;default:jr()}}function Br(){ic.startNonterminal("AxisStep",Vl);switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Wr();break;default:Fr()}Il(228),jl(),li(),ic.endNonterminal("AxisStep",Vl)}function jr(){switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Xr();break;default:Ir()}Il(228),ci()}function Fr(){ic.startNonterminal("ForwardStep",Vl);switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:qr(),Il(249),jl(),Qr();break;default:Ur()}ic.endNonterminal("ForwardStep",Vl)}function Ir(){switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:Rr(),Il(249),Gr();break;default:zr()}}function qr(){ic.startNonterminal("ForwardAxis",Vl);switch($l){case 94:Pl(94),Il(27),Pl(52);break;case 112:Pl(112),Il(27),Pl(52);break;case 83:Pl(83),Il(27),Pl(52);break;case 234:Pl(234),Il(27),Pl(52);break;case 113:Pl(113),Il(27),Pl(52);break;case 138:Pl(138),Il(27),Pl(52);break;default:Pl(137),Il(27),Pl(52)}ic.endNonterminal("ForwardAxis",Vl)}function Rr(){switch($l){case 94:Hl(94),Il(27),Hl(52);break;case 112:Hl(112),Il(27),Hl(52);break;case 83:Hl(83),Il(27),Hl(52);break;case 234:Hl(234),Il(27),Hl(52);break;case 113:Hl(113),Il(27),Hl(52);break;case 138:Hl(138),Il(27),Hl(52);break;default:Hl(137),Il(27),Hl(52)}}function Ur(){ic.startNonterminal("AbbrevForwardStep",Vl),$l==67&&Pl(67),Il(249),jl(),Qr(),ic.endNonterminal("AbbrevForwardStep",Vl)}function zr(){$l==67&&Hl(67),Il(249),Gr()}function Wr(){ic.startNonterminal("ReverseStep",Vl);switch($l){case 46:Jr();break;default:Vr(),Il(249),jl(),Qr()}ic.endNonterminal("ReverseStep",Vl)}function Xr(){switch($l){case 46:Kr();break;default:$r(),Il(249),Gr()}}function Vr(){ic.startNonterminal("ReverseAxis",Vl);switch($l){case 210:Pl(210),Il(27),Pl(52);break;case 74:Pl(74),Il(27),Pl(52);break;case 217:Pl(217),Il(27),Pl(52);break;case 216:Pl(216),Il(27),Pl(52);break;default:Pl(75),Il(27),Pl(52)}ic.endNonterminal("ReverseAxis",Vl)}function $r(){switch($l){case 210:Hl(210),Il(27),Hl(52);break;case 74:Hl(74),Il(27),Hl(52);break;case 217:Hl(217),Il(27),Hl(52);break;case 216:Hl(216),Il(27),Hl(52);break;default:Hl(75),Il(27),Hl(52)}}function Jr(){ic.startNonterminal("AbbrevReverseStep",Vl),Pl(46),ic.endNonterminal("AbbrevReverseStep",Vl)}function Kr(){Hl(46)}function Qr(){ic.startNonterminal("NodeTest",Vl);switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;default:Yr()}ic.endNonterminal("NodeTest",Vl)}function Gr(){switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;default:Zr()}}function Yr(){ic.startNonterminal("NameTest",Vl);switch($l){case 5:Pl(5);break;default:$a()}ic.endNonterminal("NameTest",Vl)}function Zr(){switch($l){case 5:Hl(5);break;default:Ja()}}function ei(){ic.startNonterminal("PostfixExpr",Vl),yl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),Wl=-1}catch(a){Wl=-4}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,Vl,Wl)}}switch(Wl){case 35:jl(),ai();break;case 45:jl(),ni();break;case-4:jl(),ii();break;case 35909:jl(),oi();break;default:jl(),hi()}}ic.endNonterminal("PostfixExpr",Vl)}function ti(){bl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),oc(5,t,-1),Wl=-6}catch(a){Wl=-4,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,t,-4)}}}switch(Wl){case 35:fi();break;case 45:ri();break;case-4:si();break;case 35909:ui();break;case-6:break;default:pi()}}}function ni(){ic.startNonterminal("ObjectLookup",Vl),Pl(45),Il(251);switch($l){case 11:Pl(11);break;case 35:jl(),Ci();break;case 31:jl(),Si();break;case 32:jl(),Li();break;default:jl(),Ga()}ic.endNonterminal("ObjectLookup",Vl)}function ri(){Hl(45),Il(251);switch($l){case 11:Hl(11);break;case 35:ki();break;case 31:xi();break;case 32:Ai();break;default:Ya()}}function ii(){ic.startNonterminal("ArrayLookup",Vl),Pl(69),Il(31),Pl(69),Il(267),jl(),G(),Pl(70),Il(32),Pl(70),ic.endNonterminal("ArrayLookup",Vl)}function si(){Hl(69),Il(31),Hl(69),Il(267),Y(),Hl(70),Il(32),Hl(70)}function oi(){ic.startNonterminal("ArrayUnboxing",Vl),Pl(69),Il(32),Pl(70),ic.endNonterminal("ArrayUnboxing",Vl)}function ui(){Hl(69),Il(32),Hl(70)}function ai(){ic.startNonterminal("ArgumentList",Vl),Pl(35),Il(280);if($l!=38){jl(),Bi();for(;;){Il(105);if($l!=42)break;Pl(42),Il(272),jl(),Bi()}}Pl(38),ic.endNonterminal("ArgumentList",Vl)}function fi(){Hl(35),Il(280);if($l!=38){ji();for(;;){Il(105);if($l!=42)break;Hl(42),Il(272),ji()}}Hl(38)}function li(){ic.startNonterminal("PredicateList",Vl);for(;;){Il(228);if($l!=69)break;jl(),hi()}ic.endNonterminal("PredicateList",Vl)}function ci(){for(;;){Il(228);if($l!=69)break;pi()}}function hi(){ic.startNonterminal("Predicate",Vl),Pl(69),Il(267),jl(),G(),Pl(70),ic.endNonterminal("Predicate",Vl)}function pi(){Hl(69),Il(267),Y(),Hl(70)}function di(){ic.startNonterminal("Literal",Vl);switch($l){case 11:Pl(11);break;case 135:case 255:mi();break;case 197:yi();break;default:wi()}ic.endNonterminal("Literal",Vl)}function vi(){switch($l){case 11:Hl(11);break;case 135:case 255:gi();break;case 197:bi();break;default:Ei()}}function mi(){ic.startNonterminal("BooleanLiteral",Vl);switch($l){case 255:Pl(255);break;default:Pl(135)}ic.endNonterminal("BooleanLiteral",Vl)}function gi(){switch($l){case 255:Hl(255);break;default:Hl(135)}}function yi(){ic.startNonterminal("NullLiteral",Vl),Pl(197),ic.endNonterminal("NullLiteral",Vl)}function bi(){Hl(197)}function wi(){ic.startNonterminal("NumericLiteral",Vl);switch($l){case 8:Pl(8);break;case 9:Pl(9);break;default:Pl(10)}ic.endNonterminal("NumericLiteral",Vl)}function Ei(){switch($l){case 8:Hl(8);break;case 9:Hl(9);break;default:Hl(10)}}function Si(){ic.startNonterminal("VarRef",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal("VarRef",Vl)}function xi(){Hl(31),Il(246),Ni()}function Ti(){ic.startNonterminal("VarName",Vl),$a(),ic.endNonterminal("VarName",Vl)}function Ni(){Ja()}function Ci(){ic.startNonterminal("ParenthesizedExpr",Vl),Pl(35),Il(270),$l!=38&&(jl(),G()),Pl(38),ic.endNonterminal("ParenthesizedExpr",Vl)}function ki(){Hl(35),Il(270),$l!=38&&Y(),Hl(38)}function Li(){ic.startNonterminal("ContextItemExpr",Vl),Pl(32),ic.endNonterminal("ContextItemExpr",Vl)}function Ai(){Hl(32)}function Oi(){ic.startNonterminal("OrderedExpr",Vl),Pl(206),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("OrderedExpr",Vl)}function Mi(){Hl(206),Il(90),Hl(281),Il(267),Y(),Hl(287)}function _i(){ic.startNonterminal("UnorderedExpr",Vl),Pl(262),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("UnorderedExpr",Vl)}function Di(){Hl(262),Il(90),Hl(281),Il(267),Y(),Hl(287)}function Pi(){ic.startNonterminal("FunctionCall",Vl),Ka(),Il(22),jl(),ai(),ic.endNonterminal("FunctionCall",Vl)}function Hi(){Qa(),Il(22),fi()}function Bi(){ic.startNonterminal("Argument",Vl);switch($l){case 65:Fi();break;default:Wf()}ic.endNonterminal("Argument",Vl)}function ji(){switch($l){case 65:Ii();break;default:Xf()}}function Fi(){ic.startNonterminal("ArgumentPlaceholder",Vl),Pl(65),ic.endNonterminal("ArgumentPlaceholder",Vl)}function Ii(){Hl(65)}function qi(){ic.startNonterminal("Constructor",Vl);switch($l){case 55:case 56:case 60:Ui();break;default:os()}ic.endNonterminal("Constructor",Vl)}function Ri(){switch($l){case 55:case 56:case 60:zi();break;default:us()}}function Ui(){ic.startNonterminal("DirectConstructor",Vl);switch($l){case 55:Wi();break;case 56:ns();break;default:is()}ic.endNonterminal("DirectConstructor",Vl)}function zi(){switch($l){case 55:Xi();break;case 56:rs();break;default:ss()}}function Wi(){ic.startNonterminal("DirElemConstructor",Vl),Pl(55),Rl(4),Pl(20),Vi();switch($l){case 49:Pl(49);break;default:Pl(62);for(;;){Rl(196);if($l==57)break;es()}Pl(57),Rl(4),Pl(20),Rl(12),$l==21&&Pl(21),Rl(8),Pl(62)}ic.endNonterminal("DirElemConstructor",Vl)}function Xi(){Hl(55),Rl(4),Hl(20),$i();switch($l){case 49:Hl(49);break;default:Hl(62);for(;;){Rl(196);if($l==57)break;ts()}Hl(57),Rl(4),Hl(20),Rl(12),$l==21&&Hl(21),Rl(8),Hl(62)}}function Vi(){ic.startNonterminal("DirAttributeList",Vl);for(;;){Rl(19);if($l!=21)break;Pl(21),Rl(94),$l==20&&(Pl(20),Rl(11),$l==21&&Pl(21),Rl(7),Pl(61),Rl(18),$l==21&&Pl(21),Ji())}ic.endNonterminal("DirAttributeList",Vl)}function $i(){for(;;){Rl(19);if($l!=21)break;Hl(21),Rl(94),$l==20&&(Hl(20),Rl(11),$l==21&&Hl(21),Rl(7),Hl(61),Rl(18),$l==21&&Hl(21),Ki())}}function Ji(){ic.startNonterminal("DirAttributeValue",Vl),Rl(14);switch($l){case 28:Pl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Pl(13);break;default:Qi()}}Pl(28);break;default:Pl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Pl(14);break;default:Yi()}}Pl(34)}ic.endNonterminal("DirAttributeValue",Vl)}function Ki(){Rl(14);switch($l){case 28:Hl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Hl(13);break;default:Gi()}}Hl(28);break;default:Hl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Hl(14);break;default:Zi()}}Hl(34)}}function Qi(){ic.startNonterminal("QuotAttrValueContent",Vl);switch($l){case 16:Pl(16);break;default:il()}ic.endNonterminal("QuotAttrValueContent",Vl)}function Gi(){switch($l){case 16:Hl(16);break;default:sl()}}function Yi(){ic.startNonterminal("AposAttrValueContent",Vl);switch($l){case 17:Pl(17);break;default:il()}ic.endNonterminal("AposAttrValueContent",Vl)}function Zi(){switch($l){case 17:Hl(17);break;default:sl()}}function es(){ic.startNonterminal("DirElemContent",Vl);switch($l){case 55:case 56:case 60:Ui();break;case 4:Pl(4);break;case 15:Pl(15);break;default:il()}ic.endNonterminal("DirElemContent",Vl)}function ts(){switch($l){case 55:case 56:case 60:zi();break;case 4:Hl(4);break;case 15:Hl(15);break;default:sl()}}function ns(){ic.startNonterminal("DirCommentConstructor",Vl),Pl(56),Rl(1),Pl(2),Rl(6),Pl(44),ic.endNonterminal("DirCommentConstructor",Vl)}function rs(){Hl(56),Rl(1),Hl(2),Rl(6),Hl(44)}function is(){ic.startNonterminal("DirPIConstructor",Vl),Pl(60),Rl(3),Pl(18),Rl(13),$l==21&&(Pl(21),Rl(2),Pl(3)),Rl(9),Pl(66),ic.endNonterminal("DirPIConstructor",Vl)}function ss(){Hl(60),Rl(3),Hl(18),Rl(13),$l==21&&(Hl(21),Rl(2),Hl(3)),Rl(9),Hl(66)}function os(){ic.startNonterminal("ComputedConstructor",Vl);switch($l){case 120:al();break;case 122:as();break;case 83:ll();break;case 187:ls();break;case 249:ml();break;case 97:dl();break;default:hl()}ic.endNonterminal("ComputedConstructor",Vl)}function us(){switch($l){case 120:fl();break;case 122:fs();break;case 83:cl();break;case 187:cs();break;case 249:gl();break;case 97:vl();break;default:pl()}}function as(){ic.startNonterminal("CompElemConstructor",Vl),Pl(122),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90),Pl(281),Il(281),$l!=287&&(jl(),ol()),Pl(287),ic.endNonterminal("CompElemConstructor",Vl)}function fs(){Hl(122),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90),Hl(281),Il(281),$l!=287&&ul(),Hl(287)}function ls(){ic.startNonterminal("CompNamespaceConstructor",Vl),Pl(187),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),ds(),Pl(287);break;default:jl(),hs()}Il(90),Pl(281),Il(267),jl(),ms(),Pl(287),ic.endNonterminal("CompNamespaceConstructor",Vl)}function cs(){Hl(187),Il(242);switch($l){case 281:Hl(281),Il(267),vs(),Hl(287);break;default:ps()}Il(90),Hl(281),Il(267),gs(),Hl(287)}function hs(){ic.startNonterminal("Prefix",Vl),Ga(),ic.endNonterminal("Prefix",Vl)}function ps(){Ya()}function ds(){ic.startNonterminal("PrefixExpr",Vl),G(),ic.endNonterminal("PrefixExpr",Vl)}function vs(){Y()}function ms(){ic.startNonterminal("URIExpr",Vl),G(),ic.endNonterminal("URIExpr",Vl)}function gs(){Y()}function ys(){ic.startNonterminal("FunctionItemExpr",Vl);switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:Ss();break;default:ws()}ic.endNonterminal("FunctionItemExpr",Vl)}function bs(){switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:xs();break;default:Es()}}function ws(){ic.startNonterminal("NamedFunctionRef",Vl),$a(),Il(20),Pl(29),Il(16),Pl(8),ic.endNonterminal("NamedFunctionRef",Vl)}function Es(){Ja(),Il(20),Hl(29),Il(16),Hl(8)}function Ss(){ic.startNonterminal("InlineFunctionExpr",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}Pl(147),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(115),$l==80&&(Pl(80),Il(254),jl(),Ls()),Il(90),jl(),V(),ic.endNonterminal("InlineFunctionExpr",Vl)}function xs(){for(;;){Il(101);if($l!=33)break;j()}Hl(147),Il(22),Hl(35),Il(98),$l==31&&z(),Hl(38),Il(115),$l==80&&(Hl(80),Il(254),As()),Il(90),$()}function Ts(){ic.startNonterminal("SingleType",Vl),ko(),Il(226),$l==65&&Pl(65),ic.endNonterminal("SingleType",Vl)}function Ns(){Lo(),Il(226),$l==65&&Hl(65)}function Cs(){ic.startNonterminal("TypeDeclaration",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal("TypeDeclaration",Vl)}function ks(){Hl(80),Il(254),As()}function Ls(){ic.startNonterminal("SequenceType",Vl);switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Pl(125),Il(22),Pl(35),Il(23),Pl(38);break;default:_s(),Il(229);switch($l){case 40:case 41:case 65:jl(),Os();break;default:}}ic.endNonterminal("SequenceType",Vl)}function As(){switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Hl(125),Il(22),Hl(35),Il(23),Hl(38);break;default:Ds(),Il(229);switch($l){case 40:case 41:case 65:Ms();break;default:}}}function Os(){ic.startNonterminal("OccurrenceIndicator",Vl);switch($l){case 65:Pl(65);break;case 40:Pl(40);break;default:Pl(41)}ic.endNonterminal("OccurrenceIndicator",Vl)}function Ms(){switch($l){case 65:Hl(65);break;case 40:Hl(40);break;default:Hl(41)}}function _s(){ic.startNonterminal("ItemType",Vl);switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),Wl=-4}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),Wl=-6}catch(f){Wl=-7}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,Vl,Wl)}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;case 18087:Pl(167),Il(22),Pl(35),Il(23),Pl(38);break;case 33:case 18067:Mo();break;case 35:jo();break;case-6:case 17999:case 18089:case 18118:Ps();break;case-7:case 18167:Bs();break;default:Ws()}ic.endNonterminal("ItemType",Vl)}function Ds(){switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),oc(6,t,-4),Wl=-8}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),oc(6,t,-6),Wl=-8}catch(f){Wl=-7,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,t,-7)}}}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;case 18087:Hl(167),Il(22),Hl(35),Il(23),Hl(38);break;case 33:case 18067:_o();break;case 35:Fo();break;case-6:case 17999:case 18089:case 18118:Hs();break;case-7:case 18167:js();break;case-8:break;default:Xs()}}function Ps(){ic.startNonterminal("JSONTest",Vl);switch($l){case 169:Fs();break;case 198:qs();break;default:Us()}ic.endNonterminal("JSONTest",Vl)}function Hs(){switch($l){case 169:Is();break;case 198:Rs();break;default:zs()}}function Bs(){ic.startNonterminal("StructuredItemTest",Vl),Pl(247),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal("StructuredItemTest",Vl)}function js(){Hl(247),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Fs(){ic.startNonterminal("JSONItemTest",Vl),Pl(169),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal("JSONItemTest",Vl)}function Is(){Hl(169),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function qs(){ic.startNonterminal("JSONObjectTest",Vl),Pl(198),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal("JSONObjectTest",Vl)}function Rs(){Hl(198),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Us(){ic.startNonterminal("JSONArrayTest",Vl),Pl(79),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal("JSONArrayTest",Vl)}function zs(){Hl(79),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Ws(){ic.startNonterminal("AtomicOrUnionType",Vl),$a(),ic.endNonterminal("AtomicOrUnionType",Vl)}function Xs(){Ja()}function Vs(){ic.startNonterminal("KindTest",Vl);switch($l){case 121:Qs();break;case 122:vo();break;case 83:oo();break;case 231:bo();break;case 230:lo();break;case 220:io();break;case 97:eo();break;case 249:Ys();break;case 188:no();break;default:Js()}ic.endNonterminal("KindTest",Vl)}function $s(){switch($l){case 121:Gs();break;case 122:mo();break;case 83:uo();break;case 231:wo();break;case 230:co();break;case 220:so();break;case 97:to();break;case 249:Zs();break;case 188:ro();break;default:Ks()}}function Js(){ic.startNonterminal("AnyKindTest",Vl),Pl(194),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal("AnyKindTest",Vl)}function Ks(){Hl(194),Il(22),Hl(35),Il(23),Hl(38)}function Qs(){ic.startNonterminal("DocumentTest",Vl),Pl(121),Il(22),Pl(35),Il(154);if($l!=38)switch($l){case 122:jl(),vo();break;default:jl(),bo()}Il(23),Pl(38),ic.endNonterminal("DocumentTest",Vl)}function Gs(){Hl(121),Il(22),Hl(35),Il(154);if($l!=38)switch($l){case 122:mo();break;default:wo()}Il(23),Hl(38)}function Ys(){ic.startNonterminal("TextTest",Vl),Pl(249),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal("TextTest",Vl)}function Zs(){Hl(249),Il(22),Hl(35),Il(23),Hl(38)}function eo(){ic.startNonterminal("CommentTest",Vl),Pl(97),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal("CommentTest",Vl)}function to(){Hl(97),Il(22),Hl(35),Il(23),Hl(38)}function no(){ic.startNonterminal("NamespaceNodeTest",Vl),Pl(188),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal("NamespaceNodeTest",Vl)}function ro(){Hl(188),Il(22),Hl(35),Il(23),Hl(38)}function io(){ic.startNonterminal("PITest",Vl),Pl(220),Il(22),Pl(35),Il(244);if($l!=38)switch($l){case 11:Pl(11);break;default:jl(),Ga()}Il(23),Pl(38),ic.endNonterminal("PITest",Vl)}function so(){Hl(220),Il(22),Hl(35),Il(244);if($l!=38)switch($l){case 11:Hl(11);break;default:Ya()}Il(23),Hl(38)}function oo(){ic.startNonterminal("AttributeTest",Vl),Pl(83),Il(22),Pl(35),Il(255),$l!=38&&(jl(),ao(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao())),Il(23),Pl(38),ic.endNonterminal("AttributeTest",Vl)}function uo(){Hl(83),Il(22),Hl(35),Il(255),$l!=38&&(fo(),Il(105),$l==42&&(Hl(42),Il(246),Oo())),Il(23),Hl(38)}function ao(){ic.startNonterminal("AttribNameOrWildcard",Vl);switch($l){case 39:Pl(39);break;default:xo()}ic.endNonterminal("AttribNameOrWildcard",Vl)}function fo(){switch($l){case 39:Hl(39);break;default:To()}}function lo(){ic.startNonterminal("SchemaAttributeTest",Vl),Pl(230),Il(22),Pl(35),Il(246),jl(),ho(),Il(23),Pl(38),ic.endNonterminal("SchemaAttributeTest",Vl)}function co(){Hl(230),Il(22),Hl(35),Il(246),po(),Il(23),Hl(38)}function ho(){ic.startNonterminal("AttributeDeclaration",Vl),xo(),ic.endNonterminal("AttributeDeclaration",Vl)}function po(){To()}function vo(){ic.startNonterminal("ElementTest",Vl),Pl(122),Il(22),Pl(35),Il(255),$l!=38&&(jl(),go(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao(),Il(106),$l==65&&Pl(65))),Il(23),Pl(38),ic.endNonterminal("ElementTest",Vl)}function mo(){Hl(122),Il(22),Hl(35),Il(255),$l!=38&&(yo(),Il(105),$l==42&&(Hl(42),Il(246),Oo(),Il(106),$l==65&&Hl(65))),Il(23),Hl(38)}function go(){ic.startNonterminal("ElementNameOrWildcard",Vl);switch($l){case 39:Pl(39);break;default:No()}ic.endNonterminal("ElementNameOrWildcard",Vl)}function yo(){switch($l){case 39:Hl(39);break;default:Co()}}function bo(){ic.startNonterminal("SchemaElementTest",Vl),Pl(231),Il(22),Pl(35),Il(246),jl(),Eo(),Il(23),Pl(38),ic.endNonterminal("SchemaElementTest",Vl)}function wo(){Hl(231),Il(22),Hl(35),Il(246),So(),Il(23),Hl(38)}function Eo(){ic.startNonterminal("ElementDeclaration",Vl),No(),ic.endNonterminal("ElementDeclaration",Vl)}function So(){Co()}function xo(){ic.startNonterminal("AttributeName",Vl),$a(),ic.endNonterminal("AttributeName",Vl)}function To(){Ja()}function No(){ic.startNonterminal("ElementName",Vl),$a(),ic.endNonterminal("ElementName",Vl)}function Co(){Ja()}function ko(){ic.startNonterminal("SimpleTypeName",Vl),Ao(),ic.endNonterminal("SimpleTypeName",Vl)}function Lo(){Oo()}function Ao(){ic.startNonterminal("TypeName",Vl),$a(),ic.endNonterminal("TypeName",Vl)}function Oo(){Ja()}function Mo(){ic.startNonterminal("FunctionTest",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,Vl,Wl)}switch(Wl){case-1:jl(),Do();break;default:jl(),Ho()}ic.endNonterminal("FunctionTest",Vl)}function _o(){for(;;){Il(101);if($l!=33)break;j()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),oc(7,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,t,-2)}}switch(Wl){case-1:Po();break;case-3:break;default:Bo()}}function Do(){ic.startNonterminal("AnyFunctionTest",Vl),Pl(147),Il(22),Pl(35),Il(24),Pl(39),Il(23),Pl(38),ic.endNonterminal("AnyFunctionTest",Vl)}function Po(){Hl(147),Il(22),Hl(35),Il(24),Hl(39),Il(23),Hl(38)}function Ho(){ic.startNonterminal("TypedFunctionTest",Vl),Pl(147),Il(22),Pl(35),Il(259);if($l!=38){jl(),Ls();for(;;){Il(105);if($l!=42)break;Pl(42),Il(254),jl(),Ls()}}Pl(38),Il(33),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal("TypedFunctionTest",Vl)}function Bo(){Hl(147),Il(22),Hl(35),Il(259);if($l!=38){As();for(;;){Il(105);if($l!=42)break;Hl(42),Il(254),As()}}Hl(38),Il(33),Hl(80),Il(254),As()}function jo(){ic.startNonterminal("ParenthesizedItemType",Vl),Pl(35),Il(254),jl(),_s(),Il(23),Pl(38),ic.endNonterminal("ParenthesizedItemType",Vl)}function Fo(){Hl(35),Il(254),Ds(),Il(23),Hl(38)}function Io(){ic.startNonterminal("RevalidationDecl",Vl),Pl(109),Il(75),Pl(226),Il(162);switch($l){case 245:Pl(245);break;case 174:Pl(174);break;default:Pl(238)}ic.endNonterminal("RevalidationDecl",Vl)}function qo(){ic.startNonterminal("InsertExprTargetChoice",Vl);switch($l){case 71:Pl(71);break;case 85:Pl(85);break;default:if($l==80){Pl(80),Il(123);switch($l){case 136:Pl(136);break;default:Pl(173)}}Il(57),Pl(165)}ic.endNonterminal("InsertExprTargetChoice",Vl)}function Ro(){switch($l){case 71:Hl(71);break;case 85:Hl(85);break;default:if($l==80){Hl(80),Il(123);switch($l){case 136:Hl(136);break;default:Hl(173)}}Il(57),Hl(165)}}function Uo(){ic.startNonterminal("InsertExpr",Vl),Pl(161),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Qo(),jl(),qo(),Il(267),jl(),Yo(),ic.endNonterminal("InsertExpr",Vl)}function zo(){Hl(161),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Go(),Ro(),Il(267),Zo()}function Wo(){ic.startNonterminal("DeleteExpr",Vl),Pl(111),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Yo(),ic.endNonterminal("DeleteExpr",Vl)}function Xo(){Hl(111),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Zo()}function Vo(){ic.startNonterminal("ReplaceExpr",Vl),Pl(223),Il(134),$l==267&&(Pl(267),Il(67),Pl(200)),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal("ReplaceExpr",Vl)}function $o(){Hl(223),Il(134),$l==267&&(Hl(267),Il(67),Hl(200)),Il(65),Hl(194),Il(267),Zo(),Hl(276),Il(267),Xf()}function Jo(){ic.startNonterminal("RenameExpr",Vl),Pl(222),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(80),Il(267),jl(),eu(),ic.endNonterminal("RenameExpr",Vl)}function Ko(){Hl(222),Il(65),Hl(194),Il(267),Zo(),Hl(80),Il(267),tu()}function Qo(){ic.startNonterminal("SourceExpr",Vl),Wf(),ic.endNonterminal("SourceExpr",Vl)}function Go(){Xf()}function Yo(){ic.startNonterminal("TargetExpr",Vl),Wf(),ic.endNonterminal("TargetExpr",Vl)}function Zo(){Xf()}function eu(){ic.startNonterminal("NewNameExpr",Vl),Wf(),ic.endNonterminal("NewNameExpr",Vl)}function tu(){Xf()}function nu(){ic.startNonterminal("TransformExpr",Vl),Pl(104),Il(21),jl(),iu();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),iu()}Pl(184),Il(267),jl(),Wf(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal("TransformExpr",Vl)}function ru(){Hl(104),Il(21),su();for(;;){if($l!=42)break;Hl(42),Il(21),su()}Hl(184),Il(267),Xf(),Hl(224),Il(267),Xf()}function iu(){ic.startNonterminal("TransformSpec",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal("TransformSpec",Vl)}function su(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf()}function ou(){ic.startNonterminal("FTSelection",Vl),lu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;jl(),Pu()}ic.endNonterminal("FTSelection",Vl)}function uu(){cu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;Hu()}}function au(){ic.startNonterminal("FTWeight",Vl),Pl(270),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal("FTWeight",Vl)}function fu(){Hl(270),Il(90),Hl(281),Il(267),Y(),Hl(287)}function lu(){ic.startNonterminal("FTOr",Vl),hu();for(;;){if($l!=146)break;Pl(146),Il(177),jl(),hu()}ic.endNonterminal("FTOr",Vl)}function cu(){pu();for(;;){if($l!=146)break;Hl(146),Il(177),pu()}}function hu(){ic.startNonterminal("FTAnd",Vl),du();for(;;){if($l!=144)break;Pl(144),Il(177),jl(),du()}ic.endNonterminal("FTAnd",Vl)}function pu(){vu();for(;;){if($l!=144)break;Hl(144),Il(177),vu()}}function du(){ic.startNonterminal("FTMildNot",Vl),mu();for(;;){Il(213);if($l!=196)break;Pl(196),Il(56),Pl(156),Il(177),jl(),mu()}ic.endNonterminal("FTMildNot",Vl)}function vu(){gu();for(;;){Il(213);if($l!=196)break;Hl(196),Il(56),Hl(156),Il(177),gu()}}function mu(){ic.startNonterminal("FTUnaryNot",Vl),$l==145&&Pl(145),Il(164),jl(),yu(),ic.endNonterminal("FTUnaryNot",Vl)}function gu(){$l==145&&Hl(145),Il(164),bu()}function yu(){ic.startNonterminal("FTPrimaryWithOptions",Vl),wu(),Il(214),$l==265&&(jl(),Qu()),$l==270&&(jl(),au()),ic.endNonterminal("FTPrimaryWithOptions",Vl)}function bu(){Eu(),Il(214),$l==265&&Gu(),$l==270&&fu()}function wu(){ic.startNonterminal("FTPrimary",Vl);switch($l){case 35:Pl(35),Il(177),jl(),ou(),Pl(38);break;case 36:Cu();break;default:Su(),Il(215),$l==199&&(jl(),Ou())}ic.endNonterminal("FTPrimary",Vl)}function Eu(){switch($l){case 35:Hl(35),Il(177),uu(),Hl(38);break;case 36:ku();break;default:xu(),Il(215),$l==199&&Mu()}}function Su(){ic.startNonterminal("FTWords",Vl),Tu(),Il(221);if($l==72||$l==77||$l==214)jl(),Lu();ic.endNonterminal("FTWords",Vl)}function xu(){Nu(),Il(221),($l==72||$l==77||$l==214)&&Au()}function Tu(){ic.startNonterminal("FTWordsValue",Vl);switch($l){case 11:Pl(11);break;default:Pl(281),Il(267),jl(),G(),Pl(287)}ic.endNonterminal("FTWordsValue",Vl)}function Nu(){switch($l){case 11:Hl(11);break;default:Hl(281),Il(267),Y(),Hl(287)}}function Cu(){ic.startNonterminal("FTExtensionSelection",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(184),$l!=287&&(jl(),ou()),Pl(287),ic.endNonterminal("FTExtensionSelection",Vl)}function ku(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(184),$l!=287&&uu(),Hl(287)}function Lu(){ic.startNonterminal("FTAnyallOption",Vl);switch($l){case 77:Pl(77),Il(218),$l==278&&Pl(278);break;case 72:Pl(72),Il(219),$l==279&&Pl(279);break;default:Pl(214)}ic.endNonterminal("FTAnyallOption",Vl)}function Au(){switch($l){case 77:Hl(77),Il(218),$l==278&&Hl(278);break;case 72:Hl(72),Il(219),$l==279&&Hl(279);break;default:Hl(214)}}function Ou(){ic.startNonterminal("FTTimes",Vl),Pl(199),Il(159),jl(),_u(),Pl(252),ic.endNonterminal("FTTimes",Vl)}function Mu(){Hl(199),Il(159),Du(),Hl(252)}function _u(){ic.startNonterminal("FTRange",Vl);switch($l){case 131:Pl(131),Il(266),jl(),Jn();break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(266),jl(),Jn();break;default:Pl(186),Il(266),jl(),Jn()}break;default:Pl(142),Il(266),jl(),Jn(),Pl(253),Il(266),jl(),Jn()}ic.endNonterminal("FTRange",Vl)}function Du(){switch($l){case 131:Hl(131),Il(266),Kn();break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(266),Kn();break;default:Hl(186),Il(266),Kn()}break;default:Hl(142),Il(266),Kn(),Hl(253),Il(266),Kn()}}function Pu(){ic.startNonterminal("FTPosFilter",Vl);switch($l){case 206:Bu();break;case 275:Fu();break;case 118:qu();break;case 116:case 227:Wu();break;default:Ju()}ic.endNonterminal("FTPosFilter",Vl)}function Hu(){switch($l){case 206:ju();break;case 275:Iu();break;case 118:Ru();break;case 116:case 227:Xu();break;default:Ku()}}function Bu(){ic.startNonterminal("FTOrder",Vl),Pl(206),ic.endNonterminal("FTOrder",Vl)}function ju(){Hl(206)}function Fu(){ic.startNonterminal("FTWindow",Vl),Pl(275),Il(266),jl(),Jn(),jl(),Uu(),ic.endNonterminal("FTWindow",Vl)}function Iu(){Hl(275),Il(266),Kn(),zu()}function qu(){ic.startNonterminal("FTDistance",Vl),Pl(118),Il(159),jl(),_u(),jl(),Uu(),ic.endNonterminal("FTDistance",Vl)}function Ru(){Hl(118),Il(159),Du(),zu()}function Uu(){ic.startNonterminal("FTUnit",Vl);switch($l){case 279:Pl(279);break;case 237:Pl(237);break;default:Pl(209)}ic.endNonterminal("FTUnit",Vl)}function zu(){switch($l){case 279:Hl(279);break;case 237:Hl(237);break;default:Hl(209)}}function Wu(){ic.startNonterminal("FTScope",Vl);switch($l){case 227:Pl(227);break;default:Pl(116)}Il(136),jl(),Vu(),ic.endNonterminal("FTScope",Vl)}function Xu(){switch($l){case 227:Hl(227);break;default:Hl(116)}Il(136),$u()}function Vu(){ic.startNonterminal("FTBigUnit",Vl);switch($l){case 236:Pl(236);break;default:Pl(208)}ic.endNonterminal("FTBigUnit",Vl)}function $u(){switch($l){case 236:Hl(236);break;default:Hl(208)}}function Ju(){ic.startNonterminal("FTContent",Vl);switch($l){case 82:Pl(82),Il(121);switch($l){case 242:Pl(242);break;default:Pl(127)}break;default:Pl(128),Il(45),Pl(101)}ic.endNonterminal("FTContent",Vl)}function Ku(){switch($l){case 82:Hl(82),Il(121);switch($l){case 242:Hl(242);break;default:Hl(127)}break;default:Hl(128),Il(45),Hl(101)}}function Qu(){ic.startNonterminal("FTMatchOptions",Vl);for(;;){Pl(265),Il(205),jl(),Yu(),Il(214);if($l!=265)break}ic.endNonterminal("FTMatchOptions",Vl)}function Gu(){for(;;){Hl(265),Il(205),Zu(),Il(214);if($l!=265)break}}function Yu(){ic.startNonterminal("FTMatchOption",Vl);switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ya();break;case 274:case 140479:wa();break;case 251:case 128703:oa();break;case 243:case 124607:ia();break;case 115:na();break;case 244:case 125119:ha();break;case 203:Sa();break;default:ea()}ic.endNonterminal("FTMatchOption",Vl)}function Zu(){switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ba();break;case 274:case 140479:Ea();break;case 251:case 128703:ua();break;case 243:case 124607:sa();break;case 115:ra();break;case 244:case 125119:pa();break;case 203:xa();break;default:ta()}}function ea(){ic.startNonterminal("FTCaseOption",Vl);switch($l){case 89:Pl(89),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}break;case 180:Pl(180);break;default:Pl(264)}ic.endNonterminal("FTCaseOption",Vl)}function ta(){switch($l){case 89:Hl(89),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}break;case 180:Hl(180);break;default:Hl(264)}}function na(){ic.startNonterminal("FTDiacriticsOption",Vl),Pl(115),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}ic.endNonterminal("FTDiacriticsOption",Vl)}function ra(){Hl(115),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}}function ia(){ic.startNonterminal("FTStemOption",Vl);switch($l){case 243:Pl(243);break;default:Pl(191),Il(77),Pl(243)}ic.endNonterminal("FTStemOption",Vl)}function sa(){switch($l){case 243:Hl(243);break;default:Hl(191),Il(77),Hl(243)}}function oa(){ic.startNonterminal("FTThesaurusOption",Vl);switch($l){case 251:Pl(251),Il(152);switch($l){case 82:jl(),aa();break;case 110:Pl(110);break;default:Pl(35),Il(116);switch($l){case 82:jl(),aa();break;default:Pl(110)}for(;;){Il(105);if($l!=42)break;Pl(42),Il(34),jl(),aa()}Pl(38)}break;default:Pl(191),Il(81),Pl(251)}ic.endNonterminal("FTThesaurusOption",Vl)}function ua(){switch($l){case 251:Hl(251),Il(152);switch($l){case 82:fa();break;case 110:Hl(110);break;default:Hl(35),Il(116);switch($l){case 82:fa();break;default:Hl(110)}for(;;){Il(105);if($l!=42)break;Hl(42),Il(34),fa()}Hl(38)}break;default:Hl(191),Il(81),Hl(251)}}function aa(){ic.startNonterminal("FTThesaurusID",Vl),Pl(82),Il(15),Pl(7),Il(220),$l==221&&(Pl(221),Il(17),Pl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)jl(),la(),Il(61),Pl(178);ic.endNonterminal("FTThesaurusID",Vl)}function fa(){Hl(82),Il(15),Hl(7),Il(220),$l==221&&(Hl(221),Il(17),Hl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)ca(),Il(61),Hl(178)}function la(){ic.startNonterminal("FTLiteralRange",Vl);switch($l){case 131:Pl(131),Il(16),Pl(8);break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(16),Pl(8);break;default:Pl(186),Il(16),Pl(8)}break;default:Pl(142),Il(16),Pl(8),Il(82),Pl(253),Il(16),Pl(8)}ic.endNonterminal("FTLiteralRange",Vl)}function ca(){switch($l){case 131:Hl(131),Il(16),Hl(8);break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(16),Hl(8);break;default:Hl(186),Il(16),Hl(8)}break;default:Hl(142),Il(16),Hl(8),Il(82),Hl(253),Il(16),Hl(8)}}function ha(){ic.startNonterminal("FTStopWordOption",Vl);switch($l){case 244:Pl(244),Il(89),Pl(279),Il(152);switch($l){case 110:Pl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}break;default:jl(),da();for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}}break;default:Pl(191),Il(78),Pl(244),Il(89),Pl(279)}ic.endNonterminal("FTStopWordOption",Vl)}function pa(){switch($l){case 244:Hl(244),Il(89),Hl(279),Il(152);switch($l){case 110:Hl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}break;default:va();for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}}break;default:Hl(191),Il(78),Hl(244),Il(89),Hl(279)}}function da(){ic.startNonterminal("FTStopWords",Vl);switch($l){case 82:Pl(82),Il(15),Pl(7);break;default:Pl(35),Il(17),Pl(11);for(;;){Il(105);if($l!=42)break;Pl(42),Il(17),Pl(11)}Pl(38)}ic.endNonterminal("FTStopWords",Vl)}function va(){switch($l){case 82:Hl(82),Il(15),Hl(7);break;default:Hl(35),Il(17),Hl(11);for(;;){Il(105);if($l!=42)break;Hl(42),Il(17),Hl(11)}Hl(38)}}function ma(){ic.startNonterminal("FTStopWordsInclExcl",Vl);switch($l){case 260:Pl(260);break;default:Pl(132)}Il(103),jl(),da(),ic.endNonterminal("FTStopWordsInclExcl",Vl)}function ga(){switch($l){case 260:Hl(260);break;default:Hl(132)}Il(103),va()}function ya(){ic.startNonterminal("FTLanguageOption",Vl),Pl(172),Il(17),Pl(11),ic.endNonterminal("FTLanguageOption",Vl)}function ba(){Hl(172),Il(17),Hl(11)}function wa(){ic.startNonterminal("FTWildCardOption",Vl);switch($l){case 274:Pl(274);break;default:Pl(191),Il(87),Pl(274)}ic.endNonterminal("FTWildCardOption",Vl)}function Ea(){switch($l){case 274:Hl(274);break;default:Hl(191),Il(87),Hl(274)}}function Sa(){ic.startNonterminal("FTExtensionOption",Vl),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal("FTExtensionOption",Vl)}function xa(){Hl(203),Il(246),Ja(),Il(17),Hl(11)}function Ta(){ic.startNonterminal("FTIgnoreOption",Vl),Pl(277),Il(45),Pl(101),Il(266),jl(),Yn(),ic.endNonterminal("FTIgnoreOption",Vl)}function Na(){Hl(277),Il(45),Hl(101),Il(266),Zn()}function Ca(){ic.startNonterminal("CollectionDecl",Vl),Pl(96),Il(246),jl(),$a(),Il(111),$l==80&&(jl(),ka()),ic.endNonterminal("CollectionDecl",Vl)}function ka(){ic.startNonterminal("CollectionTypeDecl",Vl),Pl(80),Il(200),jl(),Vs(),Il(171),$l!=54&&(jl(),Os()),ic.endNonterminal("CollectionTypeDecl",Vl)}function La(){ic.startNonterminal("IndexName",Vl),$a(),ic.endNonterminal("IndexName",Vl)}function Aa(){ic.startNonterminal("IndexDomainExpr",Vl),Or(),ic.endNonterminal("IndexDomainExpr",Vl)}function Oa(){ic.startNonterminal("IndexKeySpec",Vl),Ma(),$l==80&&(jl(),_a()),Il(156),$l==95&&(jl(),Pa()),ic.endNonterminal("IndexKeySpec",Vl)}function Ma(){ic.startNonterminal("IndexKeyExpr",Vl),Or(),ic.endNonterminal("IndexKeyExpr",Vl)}function _a(){ic.startNonterminal("IndexKeyTypeDecl",Vl),Pl(80),Il(246),jl(),Da(),Il(189);if($l==40||$l==41||$l==65)jl(),Os();ic.endNonterminal("IndexKeyTypeDecl",Vl)}function Da(){ic.startNonterminal("AtomicType",Vl),$a(),ic.endNonterminal("AtomicType",Vl)}function Pa(){ic.startNonterminal("IndexKeyCollation",Vl),Pl(95),Il(15),Pl(7),ic.endNonterminal("IndexKeyCollation",Vl)}function Ha(){ic.startNonterminal("IndexDecl",Vl),Pl(157),Il(246),jl(),La(),Il(68),Pl(201),Il(66),Pl(195),Il(263),jl(),Aa(),Pl(88),Il(263),jl(),Oa();for(;;){Il(107);if($l!=42)break;Pl(42),Il(263),jl(),Oa()}ic.endNonterminal("IndexDecl",Vl)}function Ba(){ic.startNonterminal("ICDecl",Vl),Pl(163),Il(43),Pl(98),Il(246),jl(),$a(),Il(124);switch($l){case 201:jl(),ja();break;default:jl(),Ra()}ic.endNonterminal("ICDecl",Vl)}function ja(){ic.startNonterminal("ICCollection",Vl),Pl(201),Il(42),Pl(96),Il(246),jl(),$a(),Il(150);switch($l){case 31:jl(),Fa();break;case 194:jl(),Ia();break;default:jl(),qa()}ic.endNonterminal("ICCollection",Vl)}function Fa(){ic.startNonterminal("ICCollSequence",Vl),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal("ICCollSequence",Vl)}function Ia(){ic.startNonterminal("ICCollSequenceUnique",Vl),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(83),Pl(261),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal("ICCollSequenceUnique",Vl)}function qa(){ic.startNonterminal("ICCollNode",Vl),Pl(140),Il(65),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal("ICCollNode",Vl)}function Ra(){ic.startNonterminal("ICForeignKey",Vl),Pl(141),Il(60),Pl(171),Il(54),jl(),Ua(),jl(),za(),ic.endNonterminal("ICForeignKey",Vl)}function Ua(){ic.startNonterminal("ICForeignKeySource",Vl),Pl(142),Il(42),jl(),Wa(),ic.endNonterminal("ICForeignKeySource",Vl)}function za(){ic.startNonterminal("ICForeignKeyTarget",Vl),Pl(253),Il(42),jl(),Wa(),ic.endNonterminal("ICForeignKeyTarget",Vl)}function Wa(){ic.startNonterminal("ICForeignKeyValues",Vl),Pl(96),Il(246),jl(),$a(),Il(65),Pl(194),Il(21),jl(),Si(),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal("ICForeignKeyValues",Vl)}function Xa(){Hl(37);for(;;){Rl(92);if($l==51)break;switch($l){case 24:Hl(24);break;default:Xa()}}Hl(51)}function Va(){switch($l){case 22:Hl(22);break;default:Xa()}}function $a(){ic.startNonterminal("EQName",Vl),Rl(241);switch($l){case 83:Pl(83);break;case 97:Pl(97);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 147:Pl(147);break;case 154:Pl(154);break;case 167:Pl(167);break;case 188:Pl(188);break;case 194:Pl(194);break;case 220:Pl(220);break;case 230:Pl(230);break;case 231:Pl(231);break;case 248:Pl(248);break;case 249:Pl(249);break;case 259:Pl(259);break;case 79:Pl(79);break;case 169:Pl(169);break;case 247:Pl(247);break;default:Ka()}ic.endNonterminal("EQName",Vl)}function Ja(){Rl(241);switch($l){case 83:Hl(83);break;case 97:Hl(97);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 147:Hl(147);break;case 154:Hl(154);break;case 167:Hl(167);break;case 188:Hl(188);break;case 194:Hl(194);break;case 220:Hl(220);break;case 230:Hl(230);break;case 231:Hl(231);break;case 248:Hl(248);break;case 249:Hl(249);break;case 259:Hl(259);break;case 79:Hl(79);break;case 169:Hl(169);break;case 247:Hl(247);break;default:Qa()}}function Ka(){ic.startNonterminal("FunctionName",Vl);switch($l){case 6:Pl(6);break;case 71:Pl(71);break;case 74:Pl(74);break;case 75:Pl(75);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 94:Pl(94);break;case 95:Pl(95);break;case 104:Pl(104);break;case 106:Pl(106);break;case 109:Pl(109);break;case 110:Pl(110);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 114:Pl(114);break;case 119:Pl(119);break;case 120:Pl(120);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 130:Pl(130);break;case 132:Pl(132);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 155:Pl(155);break;case 161:Pl(161);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 173:Pl(173);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 185:Pl(185);break;case 187:Pl(187);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 222:Pl(222);break;case 223:Pl(223);break;case 224:Pl(224);break;case 228:Pl(228);break;case 234:Pl(234);break;case 240:Pl(240);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 256:Pl(256);break;case 260:Pl(260);break;case 262:Pl(262);break;case 266:Pl(266);break;case 272:Pl(272);break;case 276:Pl(276);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 268:Pl(268);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal("FunctionName",Vl)}function Qa(){switch($l){case 6:Hl(6);break;case 71:Hl(71);break;case 74:Hl(74);break;case 75:Hl(75);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 94:Hl(94);break;case 95:Hl(95);break;case 104:Hl(104);break;case 106:Hl(106);break;case 109:Hl(109);break;case 110:Hl(110);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 114:Hl(114);break;case 119:Hl(119);break;case 120:Hl(120);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 130:Hl(130);break;case 132:Hl(132);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 155:Hl(155);break;case 161:Hl(161);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 173:Hl(173);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 185:Hl(185);break;case 187:Hl(187);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 222:Hl(222);break;case 223:Hl(223);break;case 224:Hl(224);break;case 228:Hl(228);break;case 234:Hl(234);break;case 240:Hl(240);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 256:Hl(256);break;case 260:Hl(260);break;case 262:Hl(262);break;case 266:Hl(266);break;case 272:Hl(272);break;case 276:Hl(276);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 268:Hl(268);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Ga(){ic.startNonterminal("NCName",Vl);switch($l){case 19:Pl(19);break;case 71:Pl(71);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 95:Pl(95);break;case 106:Pl(106);break;case 110:Pl(110);break;case 114:Pl(114);break;case 119:Pl(119);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 132:Pl(132);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 224:Pl(224);break;case 228:Pl(228);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 260:Pl(260);break;case 272:Pl(272);break;case 276:Pl(276);break;case 74:Pl(74);break;case 75:Pl(75);break;case 83:Pl(83);break;case 94:Pl(94);break;case 97:Pl(97);break;case 104:Pl(104);break;case 109:Pl(109);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 120:Pl(120);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 130:Pl(130);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 147:Pl(147);break;case 154:Pl(154);break;case 155:Pl(155);break;case 161:Pl(161);break;case 167:Pl(167);break;case 173:Pl(173);break;case 185:Pl(185);break;case 187:Pl(187);break;case 188:Pl(188);break;case 194:Pl(194);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 220:Pl(220);break;case 222:Pl(222);break;case 223:Pl(223);break;case 230:Pl(230);break;case 231:Pl(231);break;case 234:Pl(234);break;case 240:Pl(240);break;case 248:Pl(248);break;case 249:Pl(249);break;case 256:Pl(256);break;case 259:Pl(259);break;case 262:Pl(262);break;case 266:Pl(266);break;case 268:Pl(268);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal("NCName",Vl)}function Ya(){switch($l){case 19:Hl(19);break;case 71:Hl(71);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 95:Hl(95);break;case 106:Hl(106);break;case 110:Hl(110);break;case 114:Hl(114);break;case 119:Hl(119);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 132:Hl(132);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 224:Hl(224);break;case 228:Hl(228);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 260:Hl(260);break;case 272:Hl(272);break;case 276:Hl(276);break;case 74:Hl(74);break;case 75:Hl(75);break;case 83:Hl(83);break;case 94:Hl(94);break;case 97:Hl(97);break;case 104:Hl(104);break;case 109:Hl(109);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 120:Hl(120);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 130:Hl(130);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 147:Hl(147);break;case 154:Hl(154);break;case 155:Hl(155);break;case 161:Hl(161);break;case 167:Hl(167);break;case 173:Hl(173);break;case 185:Hl(185);break;case 187:Hl(187);break;case 188:Hl(188);break;case 194:Hl(194);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 220:Hl(220);break;case 222:Hl(222);break;case 223:Hl(223);break;case 230:Hl(230);break;case 231:Hl(231);break;case 234:Hl(234);break;case 240:Hl(240);break;case 248:Hl(248);break;case 249:Hl(249);break;case 256:Hl(256);break;case 259:Hl(259);break;case 262:Hl(262);break;case 266:Hl(266);break;case 268:Hl(268);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Za(){ic.startNonterminal("MainModule",Vl),l(),jl(),ef(),ic.endNonterminal("MainModule",Vl)}function ef(){ic.startNonterminal("Program",Vl),of(),ic.endNonterminal("Program",Vl)}function tf(){ic.startNonterminal("Statements",Vl);for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,Vl,Wl)}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;jl(),af()}ic.endNonterminal("Statements",Vl)}function nf(){for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),oc(8,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,t,-2);break}}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;ff()}}function rf(){ic.startNonterminal("StatementsAndExpr",Vl),tf(),jl(),G(),ic.endNonterminal("StatementsAndExpr",Vl)}function sf(){nf(),Y()}function of(){ic.startNonterminal("StatementsAndOptionalExpr",Vl),tf(),$l!=25&&$l!=287&&(jl(),G()),ic.endNonterminal("StatementsAndOptionalExpr",Vl)}function uf(){nf(),$l!=25&&$l!=287&&Y()}function af(){ic.startNonterminal("Statement",Vl);switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),Wl=-2}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),Wl=-3}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),Wl=-12}catch(c){Wl=-13}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,Vl,Wl)}}switch(Wl){case-2:hf();break;case-3:df();break;case 91735:mf();break;case 91751:yf();break;case 115333:wf();break;case 16011:case 16049:case 118961:case 122507:case 131723:Sf();break;case 18074:Cf();break;case 18168:Lf();break;case 144128:_f();break;case 18179:Pf();break;case-12:case 16140:Ff();break;case-13:qf();break;case 54:Uf();break;default:lf()}ic.endNonterminal("Statement",Vl)}function ff(){switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),oc(9,t,-1),Wl=-15}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),oc(9,t,-2),Wl=-15}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),oc(9,t,-3),Wl=-15}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),oc(9,t,-12),Wl=-15}catch(c){Wl=-13,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,t,-13)}}}}}}switch(Wl){case-2:pf();break;case-3:vf();break;case 91735:gf();break;case 91751:bf();break;case 115333:Ef();break;case 16011:case 16049:case 118961:case 122507:case 131723:xf();break;case 18074:kf();break;case 18168:Af();break;case 144128:Df();break;case 18179:Hf();break;case-12:case 16140:If();break;case-13:Rf();break;case 54:zf();break;case-15:break;default:cf()}}function lf(){ic.startNonterminal("ApplyStatement",Vl),Vf(),Pl(54),ic.endNonterminal("ApplyStatement",Vl)}function cf(){$f(),Hl(54)}function hf(){ic.startNonterminal("AssignStatement",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal("AssignStatement",Vl)}function pf(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf(),Hl(54)}function df(){ic.startNonterminal("BlockStatement",Vl),Pl(281),Il(271),jl(),af(),Il(281),jl(),tf(),Pl(287),ic.endNonterminal("BlockStatement",Vl)}function vf(){Hl(281),Il(271),ff(),Il(281),nf(),Hl(287)}function mf(){ic.startNonterminal("BreakStatement",Vl),Pl(87),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal("BreakStatement",Vl)}function gf(){Hl(87),Il(62),Hl(179),Il(29),Hl(54)}function yf(){ic.startNonterminal("ContinueStatement",Vl),Pl(103),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal("ContinueStatement",Vl)}function bf(){Hl(103),Il(62),Hl(179),Il(29),Hl(54)}function wf(){ic.startNonterminal("ExitStatement",Vl),Pl(133),Il(74),Pl(225),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal("ExitStatement",Vl)}function Ef(){Hl(133),Il(74),Hl(225),Il(267),Xf(),Hl(54)}function Sf(){ic.startNonterminal("FLWORStatement",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),Tf(),ic.endNonterminal("FLWORStatement",Vl)}function xf(){nt();for(;;){Il(195);if($l==224)break;it()}Nf()}function Tf(){ic.startNonterminal("ReturnStatement",Vl),Pl(224),Il(271),jl(),af(),ic.endNonterminal("ReturnStatement",Vl)}function Nf(){Hl(224),Il(271),ff()}function Cf(){ic.startNonterminal("IfStatement",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(271),jl(),af(),Il(51),Pl(123),Il(271),jl(),af(),ic.endNonterminal("IfStatement",Vl)}function kf(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(271),ff(),Il(51),Hl(123),Il(271),ff()}function Lf(){ic.startNonterminal("SwitchStatement",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Of(),Il(117);if($l!=89)break}Pl(110),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal("SwitchStatement",Vl)}function Af(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),Mf(),Il(117);if($l!=89)break}Hl(110),Il(73),Hl(224),Il(271),ff()}function Of(){ic.startNonterminal("SwitchCaseStatement",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(271),jl(),af(),ic.endNonterminal("SwitchCaseStatement",Vl)}function Mf(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(271),ff()}function _f(){ic.startNonterminal("TryCatchStatement",Vl),Pl(256),Il(90),jl(),df();for(;;){Il(39),Pl(92),Il(249),jl(),_n(),jl(),df(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}ic.endNonterminal("TryCatchStatement",Vl)}function Df(){Hl(256),Il(90),vf();for(;;){Il(39),Hl(92),Il(249),Dn(),vf(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}}function Pf(){ic.startNonterminal("TypeswitchStatement",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Bf(),Il(117);if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal("TypeswitchStatement",Vl)}function Hf(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),jf(),Il(117);if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(271),ff()}function Bf(){ic.startNonterminal("CaseStatement",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),Ls(),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal("CaseStatement",Vl)}function jf(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),As(),Il(73),Hl(224),Il(271),ff()}function Ff(){ic.startNonterminal("VarDeclStatement",Vl);for(;;){Il(102);if($l!=33)break;jl(),B()}Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf());for(;;){if($l!=42)break;Pl(42),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf())}Pl(54),ic.endNonterminal("VarDeclStatement",Vl)}function If(){for(;;){Il(102);if($l!=33)break;j()}Hl(268),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf());for(;;){if($l!=42)break;Hl(42),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf())}Hl(54)}function qf(){ic.startNonterminal("WhileStatement",Vl),Pl(273),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(271),jl(),af(),ic.endNonterminal("WhileStatement",Vl)}function Rf(){Hl(273),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(271),ff()}function Uf(){ic.startNonterminal("VoidStatement",Vl),Pl(54),ic.endNonterminal("VoidStatement",Vl)}function zf(){Hl(54)}function Wf(){ic.startNonterminal("ExprSingle",Vl);switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:Z();break;case 18074:Sn();break;case 18168:ln();break;case 144128:Tn();break;case 18179:mn();break;default:Vf()}ic.endNonterminal("ExprSingle",Vl)}function Xf(){switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:et();break;case 18074:xn();break;case 18168:cn();break;case 144128:Nn();break;case 18179:gn();break;default:$f()}}function Vf(){ic.startNonterminal("ExprSimple",Vl);switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),Wl=-3}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),Wl=-4}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),Wl=-5}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),Wl=-6}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),Wl=-8}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),Wl=-9}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),Wl=-10}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),Wl=-11}catch(m){Wl=-12}}}}}}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,Vl,Wl)}}switch(Wl){case 16002:case 16112:on();break;case-3:Uo();break;case-4:Wo();break;case-5:Jo();break;case-6:case 99551:Vo();break;case 15976:nu();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Jf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Qf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Yf();break;case-11:el();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:nl();break;default:Pn()}ic.endNonterminal("ExprSimple",Vl)}function $f(){switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),oc(10,t,-2),Wl=-13}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),oc(10,t,-3),Wl=-13}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),oc(10,t,-4),Wl=-13}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),oc(10,t,-5),Wl=-13}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),oc(10,t,-6),Wl=-13}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),oc(10,t,-8),Wl=-13}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),oc(10,t,-9),Wl=-13}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),oc(10,t,-10),Wl=-13}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),oc(10,t,-11),Wl=-13}catch(m){Wl=-12,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,t,-12)}}}}}}}}}}}switch(Wl){case 16002:case 16112:un();break;case-3:zo();break;case-4:Xo();break;case-5:Ko();break;case-6:case 99551:$o();break;case 15976:ru();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Kf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Gf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Zf();break;case-11:tl();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:rl();break;case-13:break;default:Hn()}}function Jf(){ic.startNonterminal("JSONDeleteExpr",Vl),Pl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),ic.endNonterminal("JSONDeleteExpr",Vl)}function Kf(){Hl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(11,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti()}function Qf(){ic.startNonterminal("JSONInsertExpr",Vl);switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),Wl=-1}catch(g){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,Vl,Wl)}}switch(Wl){case-1:Pl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,Vl,Wl)}}Wl==-1&&(Pl(82),Il(72),Pl(215),Il(267),jl(),Wf());break;default:Pl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(268),jl(),Tl(),Pl(165),Il(267),jl(),Wf()}ic.endNonterminal("JSONInsertExpr",Vl)}function Gf(){switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),oc(12,t,-1),Wl=-3}catch(g){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,t,-2)}}}switch(Wl){case-1:Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf());break;case-3:break;default:Hl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(15,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(268),Nl(),Hl(165),Il(267),Xf()}}function Yf(){ic.startNonterminal("JSONRenameExpr",Vl),Pl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),Pl(80),Il(267),jl(),Wf(),ic.endNonterminal("JSONRenameExpr",Vl)}function Zf(){Hl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(16,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti(),Hl(80),Il(267),Xf()}function el(){ic.startNonterminal("JSONReplaceExpr",Vl),Pl(223),Il(85),Pl(267),Il(67),Pl(200),Il(59),Pl(168),Il(260),jl(),ei(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal("JSONReplaceExpr",Vl)}function tl(){Hl(223),Il(85),Hl(267),Il(67),Hl(200),Il(59),Hl(168),Il(260),ti(),Hl(276),Il(267),Xf()}function nl(){ic.startNonterminal("JSONAppendExpr",Vl),Pl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf(),ic.endNonterminal("JSONAppendExpr",Vl)}function rl(){Hl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(17,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf()}function il(){ic.startNonterminal("CommonContent",Vl);switch($l){case 12:Pl(12);break;case 23:Pl(23);break;case 282:Pl(282);break;case 288:Pl(288);break;default:Ol()}ic.endNonterminal("CommonContent",Vl)}function sl(){switch($l){case 12:Hl(12);break;case 23:Hl(23);break;case 282:Hl(282);break;case 288:Hl(288);break;default:Ml()}}function ol(){ic.startNonterminal("ContentExpr",Vl),rf(),ic.endNonterminal("ContentExpr",Vl)}function ul(){sf()}function al(){ic.startNonterminal("CompDocConstructor",Vl),Pl(120),Il(90),jl(),Ol(),ic.endNonterminal("CompDocConstructor",Vl)}function fl(){Hl(120),Il(90),Ml()}function ll(){ic.startNonterminal("CompAttrConstructor",Vl),Pl(83),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal("CompAttrConstructor",Vl)}function cl(){Hl(83),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(18,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function hl(){ic.startNonterminal("CompPIConstructor",Vl),Pl(220),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),Ga()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal("CompPIConstructor",Vl)}function pl(){Hl(220),Il(242);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ya()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(19,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function dl(){ic.startNonterminal("CompCommentConstructor",Vl),Pl(97),Il(90),jl(),Ol(),ic.endNonterminal("CompCommentConstructor",Vl)}function vl(){Hl(97),Il(90),Ml()}function ml(){ic.startNonterminal("CompTextConstructor",Vl),Pl(249),Il(90),jl(),Ol(),ic.endNonterminal("CompTextConstructor",Vl)}function gl(){Hl(249),Il(90),Ml()}function yl(){ic.startNonterminal("PrimaryExpr",Vl);switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),Wl=-5}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),Wl=-10}catch(l){Wl=-11}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:di();break;case 31:Si();break;case 35:Ci();break;case 32:Li();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Pi();break;case 144078:Oi();break;case 144134:_i();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:ys();break;case-10:case 27929:Ol();break;case-11:case 10009:Sl();break;case 69:Ll();break;case 283:wl();break;default:qi()}ic.endNonterminal("PrimaryExpr",Vl)}function bl(){switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),oc(20,t,-1),Wl=-14}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),oc(20,t,-5),Wl=-14}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),oc(20,t,-10),Wl=-14}catch(l){Wl=-11,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,t,-11)}}}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:vi();break;case 31:xi();break;case 35:ki();break;case 32:Ai();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Hi();break;case 144078:Mi();break;case 144134:Di();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:bs();break;case-10:case 27929:Ml();break;case-11:case 10009:xl();break;case 69:Al();break;case 283:El();break;case-14:break;default:Ri()}}function wl(){ic.startNonterminal("JSONSimpleObjectUnion",Vl),Pl(283),Il(274),$l!=286&&(jl(),G()),Pl(286),ic.endNonterminal("JSONSimpleObjectUnion",Vl)}function El(){Hl(283),Il(274),$l!=286&&Y(),Hl(286)}function Sl(){ic.startNonterminal("ObjectConstructor",Vl),Pl(281),Il(277),$l!=287&&(jl(),Tl()),Pl(287),ic.endNonterminal("ObjectConstructor",Vl)}function xl(){Hl(281),Il(277),$l!=287&&Nl(),Hl(287)}function Tl(){ic.startNonterminal("PairConstructorList",Vl),Cl();for(;;){if($l!=42)break;Pl(42),Il(268),jl(),Cl()}ic.endNonterminal("PairConstructorList",Vl)}function Nl(){kl();for(;;){if($l!=42)break;Hl(42),Il(268),kl()}}function Cl(){ic.startNonterminal("PairConstructor",Vl);switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,Vl,Wl)}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ga();break;default:Wf()}Il(26),Pl(50),Il(267),jl(),Wf(),ic.endNonterminal("PairConstructor",Vl)}function kl(){switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),oc(21,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,t,-2)}}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ya();break;case-3:break;default:Xf()}Il(26),Hl(50),Il(267),Xf()}function Ll(){ic.startNonterminal("ArrayConstructor",Vl),Pl(69),Il(273),$l!=70&&(jl(),G()),Pl(70),ic.endNonterminal("ArrayConstructor",Vl)}function Al(){Hl(69),Il(273),$l!=70&&Y(),Hl(70)}function Ol(){ic.startNonterminal("BlockExpr",Vl),Pl(281),Il(281),jl(),of(),Pl(287),ic.endNonterminal("BlockExpr",Vl)}function Ml(){Hl(281),Il(281),uf(),Hl(287)}function _l(){ic.startNonterminal("FunctionDecl",Vl),Pl(147),Il(246),jl(),$a(),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(158),$l==80&&(jl(),Dl()),Il(122);switch($l){case 281:Pl(281),Il(281),jl(),of(),Pl(287);break;default:Pl(134)}ic.endNonterminal("FunctionDecl",Vl)}function Dl(){ic.startNonterminal("ReturnType",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal("ReturnType",Vl)}function Pl(e){$l==e?(jl(),ic.terminal(i.TOKEN[$l],Jl,Kl>fc?fc:Kl),Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Hl(e){$l==e?(Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Bl(e){var t=Xl,n=Vl,r=$l,i=Jl,s=Kl;$l=e,Jl=lc,Kl=cc,Ql=0,Va(),Xl=t,Vl=n,$l=r,$l!=0&&(Jl=i,Kl=s)}function jl(){Vl!=Jl&&(Xl=Vl,Vl=Jl,ic.whitespace(Xl,Vl))}function Fl(e){var t;for(;;){t=hc(e);if(t!=22){if(t!=37)break;Bl(t)}}return t}function Il(e){$l==0&&($l=Fl(e),Jl=lc,Kl=cc)}function ql(e){Ql==0&&(Ql=Fl(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function Rl(e){$l==0&&($l=hc(e),Jl=lc,Kl=cc)}function Ul(e){Ql==0&&(Ql=hc(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function zl(e,t,r,i,s){throw t>ec&&(Zl=e,ec=t,tc=r,nc=i,rc=s),new n.ParseException(Zl,ec,tc,nc,rc)}function oc(e,t,n){sc[(t<<5)+e]=n}function uc(e,t){var n=sc[(t<<5)+e];return typeof n!="undefined"?n:0}function hc(e){var t=!1;lc=cc;var n=cc,r=i.INITIAL[e],s=0;for(var o=r&8191;o!=0;){var u,a=n<fc?ac.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<fc?ac.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<13)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>8191&&(r=o,o&=8191,cc=n)}r>>=13;if(r==0){cc=n-1;var f=cc<fc?ac.charCodeAt(cc):0;return f>=56320&&f<57344&&--cc,zl(lc,cc,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--cc;var f=cc<fc?ac.charCodeAt(cc):0;f>=56320&&f<57344&&--cc}else cc-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?"lexical analysis failed":"syntax error"}},this.getInput=function(){return ac},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=ac.substring(0,e.getBegin()),i=r.split("\n"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?"":", found "+n)+"\nwhile expecting "+(t.length==1?t[0]:"["+t.join(", ")+"]")+"\n"+(u==0||n!=null?"":"after successfully scanning "+u+" characters beginning ")+"at line "+s+", column "+o+":\n..."+ac.substring(e.getBegin(),Math.min(ac.length,e.getBegin()+64))+"..."},this.parse_XQuery=function(){ic.startNonterminal("XQuery",Vl),Il(278),jl(),o(),Pl(25),ic.endNonterminal("XQuery",Vl)};var Wl,Xl,Vl,$l,Jl,Kl,Ql,Gl,Yl,Zl,ec,tc,nc,rc,ic,sc,ac,fc,lc,cc};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&8191;for(var i=0;i<289;i+=32){var s=i,o=(i>>5)*4317+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&15)+r.EXPECTED[a>>4]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,40,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40,40,40,40,40,40,40,40,40,40,40,30,30,40,40,40,40,40,40,40,70,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,40,30,40,30,30,40],r.INITIAL=[1,24578,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290],r.TRANSITION=[37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,36864,36899,36883,36883,36883,36903,36883,36883,36883,36883,36883,36926,36919,36883,36883,36879,36883,36883,36942,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,39727,39739,37318,37318,72403,39755,36991,37318,37318,41289,37087,37318,37318,37010,39794,37318,37318,37318,37318,65657,40192,38525,37318,37318,39813,40192,39835,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39854,39870,37318,37318,37318,46325,37318,37318,36994,37318,61657,45847,57964,37318,37318,61650,62405,62409,50496,39889,37318,37318,41289,37087,37318,44009,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39908,62747,37318,37318,37318,42026,65655,37318,73568,65651,65646,39935,62736,68791,45102,45088,45095,68779,39950,36991,37318,37318,41289,39994,37318,45426,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,39370,40016,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,40039,69458,41098,41041,37318,46044,44842,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,47580,37318,37318,37318,48276,40073,37318,37015,71422,71423,40094,57964,37318,37318,67783,40130,40134,40150,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,40186,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,71599,37318,37318,37318,37318,67919,40209,37318,37318,66772,40222,40225,40241,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,71606,73347,37318,37318,37318,37318,37318,40283,40324,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,40344,37116,37202,37162,40378,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40416,40432,37318,37318,37318,48315,37318,37318,37526,37318,62612,40451,57964,37318,37318,62605,65082,65086,40487,40535,37318,37318,41289,37087,37318,37318,40554,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38131,40575,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40598,40656,40697,40697,40697,40663,40736,40697,40698,40727,40642,40679,40626,40693,40745,40613,40752,40714,40768,36991,37318,37318,40817,40815,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40804,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43152,37318,37318,37318,48276,40833,37318,37318,73511,37318,67919,57964,40868,40872,43155,43156,43784,40888,36991,37318,37318,41289,40924,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40942,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43775,37318,37318,37318,48276,37318,37318,37318,37318,69945,73273,57964,40977,41007,44794,41023,73756,40991,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,41058,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,45645,38564,57964,41115,41135,37318,41119,41135,41149,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,37301,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,62620,37318,37318,37318,48276,62315,37318,37318,42112,62617,51150,68655,68669,68671,37318,37318,74e3,41165,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,41215,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,41238,41258,37318,41242,41258,41272,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,62433,37318,68839,45752,41288,37301,44633,37318,37318,37318,37318,73164,72644,41305,72644,72644,41324,38775,41542,41542,58552,65498,52179,65498,65498,52319,41461,41342,41461,41461,60376,37318,37318,37318,37318,37318,37318,57380,44576,38329,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,57802,45001,37318,37318,37318,37318,37318,62575,37318,37318,71516,41385,72644,72644,72644,72645,41405,67865,41542,58857,41542,41542,46917,69302,65498,55881,65498,65498,53308,58621,41461,41722,41461,41461,47863,54854,37318,37318,37318,37318,64802,37318,37318,72642,48855,72644,72644,72644,38767,41542,41439,41542,41542,41444,65497,64981,65498,65498,65498,59803,41461,41460,41461,41461,47863,54854,37318,37318,69109,41478,37318,60498,72644,72644,70521,58547,41542,41542,60742,46770,65498,65498,73471,59798,41461,41461,70944,47288,64766,37318,37318,37507,37318,71005,72644,60920,59569,41542,41542,72922,65498,65498,48896,41461,41461,46878,37318,60844,41498,41222,67506,72644,41518,41541,58729,41559,65498,46559,41593,41462,56939,50451,37318,66947,41614,41423,73664,58829,59801,41638,49498,41664,52412,41686,41702,41738,63218,38594,66255,64873,73961,46828,73161,59759,73663,59797,47605,39543,41802,41825,41848,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,45787,57964,41925,72170,37318,38278,38288,41945,36991,37318,37318,41289,37087,37318,37318,41981,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,69382,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42002,37318,37318,37318,45026,37318,37318,37318,37318,37318,67919,57964,42022,71555,37318,43019,43028,71570,36991,37318,37318,41289,37087,37318,37318,37010,42042,37318,73045,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42061,37318,37318,37318,48276,37318,37318,37318,37318,37318,50713,57964,37318,37318,37318,38993,38997,42078,42128,37318,37318,41289,37087,37318,37318,42147,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,42168,62003,69205,37318,37318,37318,68839,37318,37318,39275,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,42190,37318,37318,37318,37318,37318,42212,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,67436,42249,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72187,38772,41542,41542,41542,41542,41542,72266,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,42270,41542,41542,41542,41542,49331,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,63809,37318,37318,37318,49242,42389,37318,37318,42312,41767,44524,59934,42356,42367,45136,42383,44513,42405,42445,37318,37318,40926,42420,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,44142,43528,42807,74542,43714,44329,37031,44584,37054,42466,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,42495,44053,42520,44234,42536,42631,42566,42582,42617,43323,74548,42732,42652,43181,43457,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,74695,44148,43301,42504,44146,43812,43314,42636,43906,44107,42807,42594,42699,42706,42722,43750,42901,42677,43141,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,42748,42962,43618,43603,43820,43354,42764,44271,43892,42788,42804,42826,43918,42855,43210,42882,42898,42920,44134,44337,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,42949,44040,42992,42978,43271,43008,43044,42839,43084,44099,43110,43126,43172,43197,43740,43442,43226,43242,38263,37318,38304,37318,38354,38370,45231,38397,38413,43259,44205,43287,43339,74705,42601,43379,43395,43411,42683,43427,43493,43509,57783,51848,38545,38580,73050,38677,38610,43544,43363,43588,43648,42772,43664,43059,43680,43709,43730,43766,38739,38791,38841,38876,38942,38892,43800,43836,43632,43878,43941,43957,42665,43973,43989,39013,39048,39078,44025,44069,44085,43094,44123,43693,44164,39249,55484,44195,43559,43068,43925,39327,39819,44240,42810,42904,39356,44221,43849,44282,42866,45051,43520,43862,42933,39494,44256,44298,44314,39590,43572,44353,42550,44369,44420,44431,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37091,37318,37318,37318,48276,39140,44447,37318,67184,67184,50155,62190,71955,71957,37318,37089,71946,44465,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,44502,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38381,36956,50180,37398,37414,37436,50351,44540,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,44565,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,44600,38038,38061,37792,39434,44649,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,44665,37459,38432,38451,37229,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,37318,73156,44700,44701,37318,74225,74229,44717,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,46650,37318,37318,65657,40192,38525,37318,37318,39335,40192,44756,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44775,67647,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,44810,44811,37318,37318,74488,44827,44876,37318,37318,41289,37087,37318,37318,37010,37318,37318,44898,37318,37318,65657,40192,38525,37318,37318,39335,40192,44921,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44940,44949,37318,37318,37318,45580,37318,37318,37318,37318,37318,67919,57964,44969,44970,37318,37318,68795,44986,45022,37318,37318,41289,37087,37318,37318,37010,37318,37318,72142,37318,37318,65657,40192,38525,37318,37318,39335,40192,38201,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,45042,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45074,37318,37318,37318,37318,48276,59955,37318,37318,37318,59954,73317,57964,37318,45118,37318,37318,45127,45152,36991,37318,37318,41289,37087,37318,37318,37010,45201,37318,37318,37318,37318,65657,40192,38525,37318,37318,45220,40192,45247,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,46105,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,47785,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,45425,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,68819,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,45442,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,50781,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,53518,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,65804,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,48653,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,60153,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,45477,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45496,45525,45509,45539,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,64785,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,38529,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45576,74434,37318,74579,74583,74448,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,68588,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,45596,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45625,45661,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,45715,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45680,45684,37318,37318,45700,45732,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,45768,39048,39078,39105,39169,39156,39172,39188,39089,39218,45803,55484,39265,39291,55476,39311,45819,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,45863,37318,37318,44953,53155,45882,37318,52352,45886,39423,67164,45902,45916,45932,45961,45945,45975,45991,37318,45455,41670,46020,50786,46004,46033,45185,46061,46096,44613,41965,46121,46173,46189,46205,46221,46237,46288,65632,46304,37318,37318,68839,40298,50758,37318,41033,53889,69149,37318,46321,73164,72644,72644,72644,46341,45386,41542,41542,59697,52709,65498,65498,65498,64013,57854,41461,41461,41461,53427,64567,41960,63943,65692,37318,55390,46361,44399,46380,37318,58658,46936,46397,46417,72644,72644,59240,58293,46453,46492,41542,41542,52156,55833,61582,46520,65498,65498,64241,46547,52866,68024,41461,41461,68015,46594,47566,46621,37318,37318,46672,37318,46264,44403,37318,40057,46707,46725,63333,41308,72644,46741,63340,42275,46760,41542,46793,66052,61720,45363,46811,65498,49417,68460,65498,46845,46864,41461,51002,52264,41461,46904,52111,46933,46952,37318,46684,52530,67711,37318,59166,64847,72644,54549,51902,61913,46986,41542,41542,73854,71759,72272,41570,65498,54158,68314,46848,58449,41461,41461,47016,47035,51372,47057,47076,37318,47124,37318,47140,47156,71524,72644,42291,47208,67563,41542,59595,47244,47267,65498,59798,47304,47328,41461,53433,37318,47344,37318,61381,37318,72644,47362,47380,41542,47407,47424,65498,47447,64139,63673,47467,64041,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,41347,39062,47486,47520,47551,47602,47622,61702,70577,48688,47605,47638,50030,47449,46829,57656,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,47659,37318,37318,44953,37318,37318,37318,37318,37318,67919,47681,47697,47709,47725,47754,47738,47770,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,67827,50028,47806,47251,47282,47858,50482,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,73633,44399,56082,37318,56083,37318,73164,72644,72644,72644,72644,47879,41363,41542,41542,41542,41542,47922,65493,65498,65498,65498,65498,47955,46825,41461,41461,41461,67629,66428,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,58926,37318,37318,64306,57609,37318,65431,72644,72644,72644,56125,63073,47979,41542,41542,41542,70807,58352,65498,65498,65498,65498,47999,41461,41461,41461,41461,48015,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,65375,48037,48062,48088,48113,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,49548,37318,37318,44953,37318,41780,37318,41482,37318,54642,48139,48155,48170,48186,48215,48199,48231,65689,37318,37318,48273,48292,37318,48311,37318,51503,37318,37318,37318,48331,46709,48623,50028,58342,50938,47282,52495,55465,37318,48349,37318,68839,48369,47665,37318,51866,48388,48408,48427,73007,67026,70205,72644,72644,72644,48444,48468,41542,41542,52709,48501,48532,65498,65498,51441,56912,41461,41461,41461,64567,71585,37318,37318,65402,37318,56580,44399,46364,37873,48553,37318,73164,48570,72644,48622,56986,72644,41363,48639,50032,41542,55261,41542,65493,48669,57135,65498,73731,65498,46825,48704,41598,41461,48739,41461,63696,45404,37318,37318,39025,37318,62106,44403,37318,37318,37318,72643,72644,72644,60958,57260,72645,38772,41542,41542,54046,68350,48760,45363,65498,65498,65498,48780,52828,59800,41461,41461,41461,48796,66903,47863,51534,37318,37318,37318,64199,37318,64441,37318,72642,72644,72644,64854,72644,61913,41542,41542,41542,48812,48876,65497,65498,65498,71839,65498,59803,41461,41461,47470,41461,47863,47501,37318,65142,37318,37318,38723,48831,72644,48851,72644,42291,41542,48871,41542,59595,65498,70398,65498,59798,41461,61249,41461,42174,72114,37318,37318,53513,66795,54283,70249,60920,63484,67969,41542,58586,58373,65498,49897,57220,41461,56936,37318,37318,67331,73163,72644,72800,50031,41542,52475,65498,65498,48892,41461,58211,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,47019,45307,48912,48959,48989,49019,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,70340,49053,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,49089,37318,44953,37318,48599,37585,39665,37318,67919,49107,49123,49137,49153,49182,49166,49196,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,48353,37318,48351,60095,51266,41622,41369,62908,47535,62003,72217,37318,62994,49212,68839,37318,49238,37318,49258,37318,51050,39778,49276,57933,60709,68980,49292,71214,49326,70571,70834,49347,57459,49369,49386,49404,49439,49457,61552,61800,49485,58425,64567,41960,37318,37318,68084,37318,56022,44399,37318,37318,37318,70710,73164,72644,72644,72644,72644,49520,41363,41542,41542,41542,52429,41542,65493,65498,65498,65498,59621,65498,46825,41461,41461,41461,65942,41461,71902,49537,37318,37318,48372,63307,37318,44403,37318,37318,38213,70690,72446,72644,72644,72644,64634,56631,49564,49582,41542,41542,56653,45363,49600,48682,65498,65498,64927,49622,49640,70938,41461,41461,62085,49662,51497,37318,37318,37318,37318,37318,49684,37318,68617,72644,72644,69970,72644,65479,41542,41542,41326,41542,48876,49710,65498,65498,47842,65498,59286,41461,41461,58267,41461,47863,47501,37918,62752,37318,37318,49733,60498,55203,65029,49752,42291,67741,65203,74026,59595,66024,65498,49773,59798,49646,41461,49825,47288,37318,51997,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,49852,37318,73163,72644,60539,50031,41542,72428,65498,65498,49872,41461,70461,56939,61615,37318,72643,60923,41542,57845,65498,49892,41461,49913,72946,72644,50030,54383,59799,54339,40392,49935,49960,49980,50002,57326,50022,50048,50069,50089,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,50115,37318,44953,44449,50137,37318,37060,50171,54108,64429,50196,50210,50226,50255,50239,50269,65689,44626,50285,50301,50316,50332,50367,39233,53108,50384,61398,55344,50419,50467,50512,50528,50544,50594,50610,50651,50667,73014,50694,49260,50729,62653,50756,50774,72085,37318,37318,49073,37318,73164,50802,70730,47643,67373,50837,50866,47931,48477,50890,64147,50934,50954,50974,61240,51024,54206,54678,60300,51066,42093,59527,51082,54503,44179,51132,51166,69514,50121,44486,44480,51182,51198,51247,51290,51306,51322,51357,51407,51457,51482,51519,51581,60231,51607,51635,51659,51675,51432,54188,73942,51691,51713,51750,51800,41753,51824,51840,37318,45167,74354,51864,51882,51918,51962,51982,72643,52018,52052,68101,52072,70228,38772,52096,72897,41542,52136,57279,52172,66566,52195,65498,64541,65498,52222,56902,52245,41461,67612,41461,52280,51497,37891,64079,46636,37318,52344,55168,73701,70986,47906,72644,52368,52401,61913,52428,52445,53191,52464,52511,46777,66351,65498,52546,52580,55946,51008,41461,52615,49469,47863,47501,37318,39657,52645,37318,58484,60498,52664,60195,52685,42291,67536,73887,52704,59595,49809,69760,70602,59798,46578,54457,71795,47288,37318,68581,52725,60872,52759,71031,52775,65989,69245,52802,72675,52206,52852,55908,48097,54237,46605,52882,52918,52936,39919,39478,52952,52973,52992,65449,53038,56792,66087,71786,53088,56765,56939,40362,53104,72643,69978,41542,52310,65498,53124,53817,55637,53146,55211,53171,53289,59799,53207,55668,73239,68122,73294,50578,53242,53264,53284,53305,53324,42326,53340,53356,53372,60496,73658,47451,66435,53400,53449,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51938,37318,44953,62203,56053,37318,51929,37318,53498,53534,53550,53564,53580,53609,53593,53623,65689,37318,68909,41289,37087,37318,37318,37318,37318,61388,37318,61393,61388,52002,53639,47391,58863,63536,59869,62003,50482,37318,53663,37318,68839,53663,37318,37318,37318,69142,53682,45250,37318,55674,71208,72644,72644,72644,53704,53738,41542,41542,52709,48072,65498,65498,65498,57854,53755,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,53779,73164,72644,72644,72644,63735,72644,41363,41542,41542,41542,60760,41542,65493,65498,65498,65498,61277,65498,46825,41461,41461,41461,48744,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,45747,37318,72643,72644,72644,50815,72644,72645,38772,41542,41542,71247,41542,41542,45363,65498,65498,48537,65498,65498,59800,41461,41461,67762,41461,41461,47863,51497,37318,37318,37318,37318,37318,67308,37318,72642,72644,72644,56359,72644,61913,41542,41542,41542,70112,48876,65497,65498,65498,66735,65498,59803,41461,41461,41461,53797,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,54260,37318,37318,37318,73163,67467,72644,48046,41542,73662,48935,65498,59802,53815,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,41851,61054,66378,62339,68189,53833,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,39797,37318,37318,37318,67919,53869,53905,53909,53925,53954,53938,53968,65689,37318,37318,41289,37087,37318,45716,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,46136,46156,37318,37318,68839,37318,37318,37318,37318,40903,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,36975,37318,64085,73164,72644,72644,72644,72644,72644,53984,41542,41542,41542,41542,41542,62136,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,54006,37318,54026,36968,37318,37318,53666,72643,72644,65774,72644,72644,72645,38772,41542,41542,54043,41542,41542,45363,65498,65498,53015,65498,65498,59800,41461,41461,66593,41461,41461,71140,54854,37318,37318,54062,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,54082,64821,37318,60498,72644,72644,62830,58547,41542,41542,58315,46770,65498,65498,71297,59798,41461,41461,54740,47288,59033,54099,69440,44860,37318,54124,64478,44740,41542,54141,70297,54157,61206,54174,54204,58614,54222,56936,53884,37318,41072,40582,71978,54276,54299,54319,56380,73391,73919,41714,55599,54335,56939,50403,59838,42233,54355,53715,54379,54399,59801,54439,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,57408,54473,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,59399,37318,37318,60166,37087,37318,37318,37318,54501,37318,54501,42045,54519,39472,54546,54565,67872,65498,54590,62375,54624,37318,37318,47504,68839,67717,44759,37318,37318,54658,37318,37318,37318,73164,72644,72644,58045,72644,45386,41542,41542,67542,52709,65498,65498,65498,56180,57854,41461,41461,41461,54676,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,68532,57795,73164,72644,72644,72644,72644,72644,54694,41542,41542,41542,41542,41542,54716,65498,65498,65498,65498,65498,54737,41461,41461,41461,41461,41461,54756,71731,37318,37318,37318,37318,37318,37318,37318,37318,74625,57661,72644,72644,72644,72644,72645,38772,54791,41542,41542,41542,41542,45363,54808,65498,65498,65498,65498,59800,54829,41461,41461,41461,41461,47863,54854,37318,37318,66657,37318,37318,37318,37318,72642,72644,72644,72644,58513,38767,41542,41542,41542,63753,41444,65497,65498,65498,65498,70365,59803,41461,41461,41461,60263,47863,54854,37318,37318,49068,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,54946,37318,40844,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,54850,61615,65734,72643,61015,41542,72843,65498,54871,41461,54893,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51946,37318,44953,37318,54915,54931,37318,54967,54974,54990,55006,55021,55037,55066,55050,55080,65689,37318,37318,51966,38825,37318,37318,37318,54010,55096,55115,48257,55149,55184,55227,55249,41525,55284,55303,63265,55333,37318,37318,37318,40256,37318,55133,55360,37318,37318,37318,55377,52524,73164,55412,59232,72644,55450,55508,48452,55571,48764,46504,61212,71358,65498,52836,55590,72384,66401,41461,55624,55653,37318,55162,48123,45480,68146,44384,37318,37318,55690,55710,55730,55750,50821,72644,73775,55770,55805,41363,53990,41542,54303,55821,55849,65493,53022,65498,61780,55897,55924,46825,56459,41461,71394,55962,55996,47041,37318,37318,37318,54660,56044,56069,49736,37318,37318,37318,56099,56122,72644,56141,70528,58519,56160,58143,41542,63117,55574,66717,50850,52564,65498,63146,65498,56203,56221,51808,41461,56467,41461,56251,56269,54854,55099,56307,46073,56323,59679,56339,62046,56355,52688,61008,58074,70003,51212,41542,66283,70084,56375,56396,56430,65125,61593,46531,69280,62369,41461,56449,56483,56517,56546,63230,66178,37927,69494,47228,56575,66873,56144,56596,56612,70031,45388,56647,56669,56693,56729,56747,56781,56815,56873,56892,51765,56928,56955,37318,37318,61883,53848,56976,57010,57028,57047,57072,57089,57107,57133,57151,57170,57197,57216,56936,60597,37318,40353,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,57236,61615,37318,57252,51333,57276,57295,62141,50073,54877,49498,57311,72644,50030,54383,59799,54339,39384,52786,55523,72337,68506,73161,59759,73663,59797,47605,60497,50030,47449,46829,57331,57347,55938,57396,53268,62159,62339,66862,41867,57424,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,42152,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,57475,57504,57488,57518,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,66211,72644,45386,41542,41542,57534,52709,65498,65498,49388,65498,57854,41461,41461,51784,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,41502,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,52736,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,47060,37318,37318,37318,37318,37318,37318,37318,37318,37318,57438,72644,72644,72644,72644,72645,61918,41542,41542,41542,41542,41542,45363,57553,65498,65498,65498,65498,59800,57571,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,39711,37318,44953,37318,42450,57589,57607,57625,51565,57641,57677,57681,57697,57726,57710,57740,65689,51556,37318,41289,37087,47346,60068,37318,37318,39892,37318,40511,57756,45560,57818,57834,63977,57879,60331,41648,58e3,57914,37318,37318,38814,37318,37318,57949,44882,37318,57925,37318,67807,49037,57985,58044,51257,58061,58115,58131,41542,58165,54574,59660,56705,57154,47834,58193,52256,58227,57863,58246,50918,53781,37318,37318,37318,37318,49029,67667,37318,37318,37318,37318,73164,60986,49757,72644,58283,72644,58309,58331,63863,47408,61105,41542,58368,58389,67585,57555,49801,65498,58422,58441,68033,65185,60256,69351,47041,37318,61839,58465,37318,37318,45281,53688,37318,37318,37318,72643,72644,72644,63835,58500,58535,38772,41542,41542,55268,69704,69729,45363,65498,65498,61489,63774,58568,59800,41461,41461,66754,51734,58602,47863,54854,58637,37318,37318,68901,37318,37318,37318,72642,66219,72644,72644,72644,38767,67986,41542,41542,41542,41444,65497,56713,65498,65498,65498,59803,71875,41461,41461,41461,47863,54899,37318,58657,37318,51097,69488,55754,58674,72644,72644,58694,58724,41542,41542,58745,58769,65498,65498,61143,58793,41461,41461,71804,37318,68935,37318,73352,37318,72644,49303,60920,41542,72302,41542,65498,52557,65498,63673,46570,41461,56936,37318,38852,37318,73163,72644,56106,50031,41542,58818,65498,73828,59802,41461,48715,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,53248,58845,64251,68569,67094,58879,59108,47606,53268,62159,58907,58895,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37319,37318,44953,37318,37318,58923,37318,37038,61423,60807,58942,58956,58972,59001,58985,59015,65689,38336,37318,41289,37087,37318,59031,37318,37318,40327,37318,38338,59049,40328,59079,54363,41369,59103,48516,62003,72217,37318,37318,59124,68839,37318,63001,62951,44924,37318,37318,37318,59142,59160,59182,72644,59203,59223,59256,41542,57091,48815,59272,59718,65498,52599,56799,57854,54450,41461,63259,59312,52629,59347,40308,54027,37318,37318,37318,37318,56028,37318,37318,37318,73164,56849,59370,68264,72644,72644,41363,63477,59429,70290,41542,41542,65493,64678,69828,70882,65498,65498,46825,59459,66600,59489,41461,41461,47041,37318,60820,72604,37318,37318,56414,63654,59509,37318,37318,72643,61043,72644,72644,59543,72645,59566,72479,41542,41542,59585,41542,65528,73531,59619,65498,70373,65498,59800,54834,59637,41461,64050,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,44851,37318,37318,37318,37318,59207,72644,60920,61740,41542,41542,73606,65498,65498,49876,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,61445,73662,65498,59655,59802,56876,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,59676,72644,59695,59713,71108,58802,59734,59756,59775,59794,59819,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,59854,73737,67066,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,67305,48392,37318,54855,59885,59896,59919,66152,67290,59971,59985,60001,60031,60044,60015,65689,47586,44905,38860,60060,60084,37318,60579,48333,40435,72237,60111,60138,60122,60182,60217,60279,60316,65566,60366,50482,58641,37318,37318,48606,72949,68216,73429,60392,69215,60419,37318,60465,60494,60514,60535,72871,72644,60555,49584,41542,47939,52709,70645,70888,65498,70640,57854,54601,60344,63674,41461,59473,64205,46157,37318,60571,37318,37318,37318,60595,37318,37318,45177,73164,60613,72644,53647,72644,72644,41363,60640,41542,61097,41542,41542,58708,70406,65498,55874,65498,65498,50904,58204,41461,60666,41461,41461,47041,37318,37318,37318,37318,40106,37318,37318,44677,60687,37318,60703,72644,72644,46744,72644,58087,60725,41542,41542,41542,60758,74033,52815,65498,65498,65498,52593,61759,41832,41461,41461,41461,53066,69906,47863,49504,60776,60792,64608,60842,51384,60860,60895,60918,60939,60974,61031,61070,38767,70056,61088,61121,61167,41444,65497,61193,61228,55536,61274,59803,61293,61309,61258,72531,61332,54854,48246,61348,61369,61414,58477,51897,68272,58678,65107,61439,53722,46795,49566,61461,54813,65498,61486,61505,72623,61531,61548,61568,67348,61609,37318,37318,61636,61678,47889,61697,61718,52147,61736,61756,56291,61775,61796,55608,61816,46251,61838,37318,61855,73163,61899,68974,61934,52295,73662,61950,58777,71058,61966,62e3,62019,63023,62043,40852,60923,72471,73664,62062,59801,62083,49498,62101,55233,62122,54383,62157,62175,62225,62247,62263,62279,62295,62331,57449,55864,54413,66647,60497,50030,47449,46829,60496,73658,47451,47606,62355,62391,62339,66862,41867,41898,57361,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,62425,44953,37318,41929,62645,37318,37318,67919,62449,62465,62479,62495,62524,62508,62538,62554,62570,62591,51116,40267,62636,62669,37763,62688,62721,40114,62768,62784,62800,62846,62862,62878,62894,62929,62967,62983,37318,74513,46381,42254,37318,40466,50397,50445,63017,37318,37318,63039,73164,72644,63059,63089,55789,45386,47983,63105,51466,69257,65498,47963,66977,63139,63162,41461,63187,63203,63246,60376,37318,65243,37318,54083,37318,65923,63281,37318,49694,37318,63306,63323,63356,63373,63389,72644,67473,63412,41542,63428,63500,41542,54700,59443,65498,63522,63557,65498,56187,53414,41461,63578,63594,41461,68051,48021,46148,37318,59832,55125,37318,37318,37318,37318,37318,63803,72643,72644,70758,59187,72644,72645,38772,41542,55434,57073,41542,41542,45363,65498,74070,65498,63613,65498,59800,41461,60671,41461,63633,41461,47863,54854,37318,37318,63653,44684,37318,37318,37318,72642,72644,72644,72644,57012,55426,41542,41542,41542,41542,66835,62140,65498,65498,65498,65498,63670,41461,41461,41461,41461,63690,54854,67948,37318,37318,37318,37318,63712,72644,63734,72644,46430,41542,63751,41542,56170,65498,63769,65498,41577,41461,51728,41461,47288,63790,37318,37318,37318,37318,62822,66520,60920,41416,71239,41542,47825,58753,65498,61151,71116,41461,72584,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,45334,61615,37318,63825,73373,63858,64501,63879,65885,41461,56530,63897,63917,63966,63993,64029,64066,39534,64101,64126,64163,64186,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,50006,53268,62159,64221,66862,41867,64277,64293,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,66665,44953,37318,37318,68891,37318,64328,64337,67698,39838,64353,64369,64398,64382,64414,65689,37318,69115,41289,37087,37318,37318,63950,37318,51547,37318,37318,37318,44404,64465,64494,64517,49717,67057,64557,72217,37318,64583,37318,68839,37318,40908,40502,64605,50368,64607,37318,37318,62231,64624,67101,73183,63396,64650,67404,68345,48485,71344,64666,64694,64712,71834,64730,57181,60350,61532,53072,55317,64759,37318,64782,64801,45664,45866,38224,37318,37318,37318,37318,73164,72644,72644,52669,72644,72644,41363,41542,41542,67409,41542,41542,65493,65498,65498,55555,65498,65498,46825,41461,41461,68042,41461,41461,49668,53220,61353,37318,37318,37318,64818,59354,57374,68538,37318,72643,72644,64837,72644,72644,72645,64870,41542,64889,41542,41542,41542,68453,65498,51231,64925,65498,65498,59800,41461,61515,64943,41461,41461,47863,54854,59903,37318,37318,37318,37909,37318,37318,72642,72644,72644,64960,72644,56626,41542,41542,73894,41542,42296,65497,65498,65498,64978,65498,59803,41461,41461,71869,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,52897,37318,59144,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,62943,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56828,64997,65024,65045,64231,59603,54339,38753,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,46305,37318,37318,37318,42426,42429,65068,54066,65102,51341,41369,65123,50559,62003,48585,65141,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,43472,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,65158,41542,41542,41542,41542,41542,66019,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,52976,72644,72644,38767,41542,41542,73801,41542,41444,65497,65498,49370,65498,65498,59803,41461,41461,65182,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,51274,72644,50031,65201,73662,71079,65498,59802,58261,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37806,44953,65219,37318,37420,65239,37318,67919,65259,65275,65288,65304,65333,65317,65347,65689,45409,47790,41289,50740,71165,72077,54775,46691,68943,37318,65363,65398,65418,65465,65515,65551,65582,68491,65617,65675,37318,37318,37318,55396,65708,50432,65732,40783,60879,37318,37318,46888,65750,54125,65773,60201,65790,65831,49353,41542,61177,57056,65855,49783,65498,65874,65901,41461,65939,58230,64743,49003,37318,37318,37318,54951,44007,65958,37318,73691,37318,44004,69414,59740,72644,52378,72644,64962,65976,66005,41542,53183,41542,52448,66040,66074,65498,73466,65498,70854,66103,60245,41461,66119,41461,72537,66911,47041,37318,37318,38803,72980,60478,40954,37318,37480,66138,66168,66202,72644,66235,46345,66251,72645,66271,41542,58177,66299,66320,41542,56559,65498,65535,66344,66367,65498,69808,41461,53763,66394,66417,41461,47863,49919,37318,37318,52902,66451,37318,66495,39978,72642,66512,60519,72644,72644,38767,65839,41542,66536,41542,41444,65497,66557,54721,65498,65498,59803,66582,73488,41461,41461,52328,47223,43477,62672,37318,37318,37318,65382,72644,72644,61681,58099,41542,41542,41542,66616,65498,65498,65498,66632,66681,41461,41461,54252,37318,70963,37318,37318,37318,66698,72644,60920,66716,41542,67896,66733,65498,69783,66751,41461,54608,56936,37318,66770,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56009,66788,66811,66827,66851,66889,49836,61620,60922,73660,47450,46828,42223,66927,59778,49606,47605,66943,50030,47449,46829,60496,73658,47451,52229,66963,67001,67042,47192,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,42006,44953,41194,40023,67082,63290,67117,67133,67149,67200,67214,67230,67259,67243,67275,67324,37318,67347,72149,37087,37318,39873,37318,37318,73640,55694,39647,45609,60403,67364,67389,66058,64007,71278,67425,72217,39770,40165,39032,68839,68408,37318,37318,37318,37318,39965,41180,37318,67452,67489,70764,72644,72644,67522,67558,63467,41542,52709,51619,65498,67579,65498,57854,67601,63637,67628,41461,60376,37318,67645,37318,67663,67683,37318,56960,37318,65223,37318,37318,73164,52080,69630,72644,72644,72644,67733,60734,73861,41542,41542,53739,65493,58399,51643,65498,65498,63881,46825,67757,59323,41461,41461,66122,50625,37318,37318,67778,47108,48295,37318,38228,67799,44787,57969,67823,72644,72644,69591,55783,67843,67888,41542,41542,63123,65166,73809,53005,65498,65498,64714,62913,63541,72852,41461,41461,59639,69865,70909,48723,67912,59519,37318,37900,37318,51391,37318,67935,72642,72644,52056,59087,72644,38767,41542,41542,67964,67985,41444,65497,65498,65858,58406,65498,59803,41461,41461,68002,41461,47863,54854,37318,68397,37318,68076,37318,60498,68624,72644,68100,65444,66541,41542,68117,51222,72818,65498,55549,59798,53799,41461,51777,47288,37318,37318,40078,37318,68138,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,65915,37954,37318,68162,56840,72644,69566,50031,41542,68178,65498,72029,59802,41461,61324,68205,61615,68239,68255,57031,68288,49964,68312,64170,41461,72350,72946,63842,68330,50053,68366,68384,61620,60922,73660,47450,46828,40170,49310,63506,57898,47605,68424,68440,45370,63171,40400,68476,68554,68604,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,38247,68640,37318,37318,44545,44549,42062,66479,66466,68687,68703,68719,68748,68732,68764,68811,49856,37318,68835,73418,40538,54530,37318,68855,37963,68877,39120,68925,68959,68996,69012,46476,69028,71470,69063,59385,62027,45461,65008,68839,69079,37318,38220,69096,65716,69131,41882,69165,69175,69191,63718,59550,63357,69231,50874,46465,70280,70118,64531,65596,69273,69296,57117,69318,73551,69334,69350,69367,69406,69430,37318,69456,69475,69510,37318,37318,68519,50099,69530,44732,69549,69582,60998,72644,69624,41363,69646,69670,69695,41542,69720,65493,69753,69776,69799,65498,69824,48973,69844,69860,69881,41461,69903,51039,37318,69922,62705,62209,69940,52743,51107,45640,57591,40471,72643,69961,69994,72644,48835,70019,70047,70072,69679,41542,41542,70100,64902,48943,63562,65498,65498,70134,59800,68060,61822,41461,41461,70150,47863,72356,45780,37318,73436,47091,37318,37318,70166,72704,72644,70194,70221,70244,47170,73209,73218,70265,66328,41444,70313,65498,70329,70356,70389,60293,70422,70441,54423,70477,47863,50635,37318,50706,66496,53384,69533,46401,70511,72644,72644,70544,70560,70789,41542,70593,70626,69047,65498,52486,70661,69887,41461,70487,37318,41199,59126,70706,37318,70726,70746,56994,70780,70823,72308,70850,70870,65601,70904,70925,51697,70495,37450,37318,70960,70979,71002,71021,63456,46437,71047,71074,71095,49624,59493,71132,71156,71181,41086,71197,69608,71230,71263,71294,71313,57200,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,65052,64909,59331,55194,71329,71374,71410,71439,71455,66985,70676,53268,62159,62339,66862,71486,71502,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,71540,37318,37318,62697,37318,37318,67919,71622,71638,71652,71668,71697,71681,71711,65689,37318,37318,41289,71727,43243,37318,54635,37318,47100,37318,37318,37318,44404,60624,71747,71775,71820,71855,71891,71918,50345,37318,37318,68839,37318,37318,64312,71934,37318,37318,37318,63901,73164,71973,72644,72644,67498,71994,41542,41542,41542,72010,61470,65498,65498,49441,57854,72045,41461,41461,72052,56235,72068,37318,72101,73266,37318,37318,37318,72130,72165,37318,45286,73164,72644,72186,72203,52036,66700,41363,41543,41542,72253,47431,72288,65493,56731,65499,62067,70610,72324,46825,73981,63597,47312,56493,72372,47041,37318,38557,37318,72400,37318,37318,37318,52648,37318,37318,72643,69558,72644,72644,72644,72645,72419,58149,41542,41542,41542,41542,61134,64696,65498,65498,65498,65498,59800,57573,41461,41461,41461,41461,47863,56406,37318,67179,37318,37318,37318,37318,60902,62813,72644,72644,72644,72644,42340,41542,41542,41542,41542,41444,47816,65498,65498,65498,65498,64261,41461,41461,41461,41461,47863,54766,37318,37318,46970,37318,37318,39394,72444,72644,72644,67855,72462,41542,57537,51591,72495,65498,65498,72517,72553,41461,41461,72576,37318,72600,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,65757,60923,69654,73664,69041,59801,72620,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,72639,72661,49423,56501,60496,73658,47451,47606,53268,68368,54485,72691,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,42479,51143,66186,50148,37318,40519,67015,72720,37318,37318,72736,72765,72749,72779,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72795,49944,41369,72816,50989,62003,72217,37318,49091,63043,68839,37318,37318,37318,37318,37318,52920,37318,37318,73164,47899,72644,73587,72644,45386,72834,41542,56677,52709,56433,65498,65498,72024,57854,55980,41461,64944,41461,60376,37318,37318,37318,37318,37318,55361,37318,37318,37318,53853,37318,73164,72644,72644,72868,72644,72644,41363,41542,41542,72887,41542,41542,65493,65498,65498,72920,65498,65498,46825,41461,56253,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,40788,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,69080,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,72938,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,50678,37318,37318,72976,37318,72965,72996,73030,73066,73080,73096,73125,73109,73141,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,49521,50028,47181,50958,47282,59296,63932,37318,37318,37318,68839,37318,37318,37318,37318,45204,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,48411,37318,37318,37318,37318,73180,72644,72644,72644,72644,72645,73199,41542,41542,41542,41542,41542,56282,65498,65498,65498,65498,65498,56756,41461,41461,41461,41461,41461,47863,54854,37318,68223,37318,37318,37318,37318,37318,72642,72644,73234,72644,56857,38767,41542,66304,41542,41542,73255,65497,65498,73289,65498,72501,59803,41461,61976,41461,70425,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,73310,37318,39135,37318,37318,37318,46656,37318,73333,55714,73368,64110,41369,73389,53053,62003,72217,37318,37318,37318,73407,48428,48554,40049,37318,37318,37318,37318,37318,73164,72644,61072,72644,52030,45386,41542,41809,41542,73452,65498,65498,58580,63617,57854,41461,41461,73487,55972,60376,73504,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,62308,37318,37318,37318,72643,72644,52957,72644,72644,74050,38772,41542,54792,41542,41542,41542,48926,65498,65498,73527,65498,65498,59800,41461,41461,73547,41461,41461,47863,54854,73567,37318,37318,37318,37318,37318,37318,72642,73584,72644,72644,72644,38767,72904,41542,41542,41542,41444,65497,73603,65498,65498,65498,59803,70455,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,73622,37318,37318,41289,37087,37318,42196,37318,37318,37318,37318,37318,37318,4e4,72644,73656,60650,55287,47282,61984,73680,37318,42131,37318,68839,37318,37318,37318,37318,37318,37318,37318,41786,73164,72644,72644,72644,69600,45386,41542,41542,41542,73717,65498,65498,65498,56205,57854,41461,41461,41461,72560,60376,37318,59949,37318,37318,37318,37318,37318,37318,37318,73753,37318,73164,52385,72644,72644,73772,72644,41363,69737,41542,41542,73791,41542,65493,49792,65498,65498,73825,65498,46825,50572,41461,66682,41461,41461,47041,37318,46080,37318,37318,37318,37318,37318,37318,37318,37318,72643,41389,72644,72644,72644,72645,73844,41542,73877,41542,41542,41542,51420,65498,73910,65498,65498,65498,49986,41461,73935,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,61662,37318,72642,72644,47364,72644,72644,38767,41542,41542,70798,41542,41444,65497,65498,65498,73958,65498,59803,41461,41461,73977,41461,47863,54854,37318,37318,42105,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,73997,37318,37318,40961,37318,60952,72644,60920,74016,41542,41542,57892,65498,65498,71387,41461,41461,56936,37318,60826,37318,73163,72644,74049,50031,68296,73662,65498,74066,59802,53130,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,61870,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,64589,74088,74086,40559,74115,74104,74140,74169,37318,74124,74153,74190,74194,74210,36991,37318,37318,41289,37087,37318,37318,74245,37318,37318,37318,37318,37318,65657,40192,74266,55734,37318,53472,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,53226,37318,37318,67919,57964,74289,74334,37318,37318,74319,74303,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,74350,37318,53463,40192,38525,37318,37318,74370,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,74174,37318,37318,37318,37318,37318,52120,37296,74401,74403,37318,37318,74392,74419,36991,37318,37318,41289,37087,37318,37318,74464,37318,37318,74485,37318,37318,59413,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,74504,37116,37202,37162,74529,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,74564,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,65960,37318,37318,37318,37318,74599,74601,37318,37318,70178,74617,37014,37318,37318,37318,37318,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,74641,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,74659,39048,39078,39105,39169,39156,39172,39188,39089,39218,46272,55484,39265,39291,55476,39311,74721,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,1,24578,3,0,0,0,0,0,0,0,180524,180524,180524,180524,0,188717,0,188717,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,180524,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,368,188717,180524,188717,188717,188717,188717,188717,131072,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,139264,147456,188717,188717,188717,188717,188717,188717,188717,1,24578,3,0,0,4366336,0,0,0,180524,188717,302,303,0,0,307,0,0,0,307,0,0,0,4931584,0,0,0,0,0,0,2367,0,0,0,0,0,0,0,0,0,1854,0,0,0,0,0,0,4268032,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,341,0,0,0,0,0,0,0,0,0,0,5840896,5849088,0,0,0,0,0,0,0,0,0,0,328,0,0,375,375,405,0,0,0,6275072,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,450560,0,0,0,0,4857856,0,0,0,0,0,0,0,0,0,0,0,0,5259264,0,0,0,0,0,0,0,0,5414912,0,5447680,0,5464064,0,5414912,5447680,0,0,5562368,5636096,5685248,0,5750784,5873664,0,0,0,0,5636096,5873664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5873664,0,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,914,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,0,0,0,0,5447680,0,5464064,0,5480448,5562368,0,0,0,5636096,0,5685248,0,0,5750784,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,4841472,0,0,0,4898816,0,4358144,4358144,4358144,4358144,4358144,4358144,5414912,4358144,5447680,4358144,5464064,4358144,5480448,5562368,4358144,4358144,4358144,5636096,4358144,5636096,4358144,5685248,4358144,4358144,5750784,4358144,4358144,4358144,4358144,4358144,5873664,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4923392,4358144,4358144,4358144,4358144,4358144,0,4923392,0,0,0,0,4366336,0,0,0,0,418,0,0,0,0,0,0,0,0,0,0,0,4276224,1258,0,0,0,5603328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,341,0,0,5341184,0,5652480,0,0,0,0,0,0,0,0,0,0,4759552,4358144,4358144,4358144,4358144,4358144,5242880,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5341184,4358144,4358144,4358144,4358144,4358144,4358144,0,0,5808128,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5627904,5652480,4358144,5701632,4358144,4358144,5808128,4358144,4358144,4358144,5668864,0,0,5791744,0,0,0,0,0,0,0,0,0,0,6201344,6242304,6250496,0,0,0,0,6422528,0,0,0,0,0,0,0,0,0,0,351,0,0,0,0,0,0,5619712,0,0,0,0,0,0,0,5726208,5758976,0,0,5791744,0,0,0,0,0,3664,0,0,0,0,0,0,0,0,0,0,5111808,0,0,0,0,0,5283840,0,0,0,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,0,2389,0,2391,2392,0,0,0,0,6062080,6463488,0,5398528,0,0,6479872,0,0,0,0,0,0,0,3459,0,0,0,3463,0,0,0,0,0,0,6463488,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,4931584,4939776,0,0,0,0,0,0,5054464,0,0,0,0,0,0,0,0,5210112,0,0,0,5210112,0,0,0,0,5292032,0,0,0,0,5365760,0,0,0,5455872,0,0,5816320,0,5857280,0,0,0,0,0,0,0,0,0,0,0,0,0,327,401,0,6119424,0,6168576,0,0,0,0,0,6242304,0,6291456,0,6316032,0,0,0,0,0,0,0,4358144,4358144,4931584,4939776,4358144,4358144,4358144,4358144,4358144,4358144,5054464,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,5292032,4358144,4358144,4358144,4358144,5365760,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,5554176,5570560,5578752,5619712,5668864,4358144,4358144,4358144,5791744,5816320,4358144,5857280,4358144,4358144,4358144,4358144,5816320,4358144,5857280,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,6119424,4358144,6168576,4358144,4358144,4358144,4358144,4358144,6242304,4358144,6291456,4358144,6316032,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6463488,0,4358144,4358144,4358144,4358144,4358144,4358144,6463488,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,4825088,0,0,0,0,0,0,0,6184960,5316608,0,0,5644288,0,0,0,0,0,0,0,0,0,0,646,755,756,757,0,0,6217728,0,0,0,0,0,0,0,0,0,0,5390336,5308416,5488640,0,0,0,0,0,0,0,0,0,5799936,0,0,5881856,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,5070848,5431296,0,6430720,0,0,0,0,0,0,0,0,5160960,0,0,0,0,0,0,6053888,0,0,0,0,0,5013504,0,0,0,0,0,0,6053888,0,0,0,4358144,4358144,5013504,4358144,4358144,4358144,0,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,1851,0,1853,0,0,0,0,0,0,0,0,4825088,0,0,0,0,0,0,0,0,2786,0,0,0,0,0,0,0,0,2809,0,0,0,0,0,0,0,0,2834,0,0,0,0,0,0,0,0,3154,0,0,0,0,0,0,0,0,3167,3168,0,0,0,0,0,0,0,0,0,6283264,6332416,0,0,0,5881856,0,5382144,0,0,0,0,0,0,0,3665,3666,0,0,0,0,0,0,0,665,0,644,0,0,0,0,0,0,0,6266880,4784128,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4956160,4972544,4358144,4358144,4358144,4358144,4358144,4358144,5070848,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5218304,4358144,5267456,4358144,4358144,4358144,6184960,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,4358144,6389760,4358144,4358144,6430720,6438912,4358144,4358144,4358144,6266880,6488064,0,0,0,6266880,0,0,4915200,0,4956160,4972544,0,0,0,0,0,0,5070848,0,0,0,0,0,0,0,5218304,0,5267456,0,0,0,0,5218304,0,5267456,0,0,5308416,5316608,0,0,0,5431296,0,5488640,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,0,0,0,0,0,0,4784128,0,0,0,4849664,0,0,0,0,0,4915200,0,4956160,4972544,0,0,0,6430720,6438912,4784128,4358144,4358144,4358144,4849664,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,303,306,5218304,4358144,5267456,4358144,4358144,5308416,5316608,4358144,4358144,4358144,5431296,4358144,5488640,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5799936,4358144,4358144,5881856,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6184960,4358144,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,0,0,0,0,0,0,0,0,0,368640,0,0,0,0,0,0,2411,0,0,0,0,0,0,0,0,0,1256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4931584,4939776,6488064,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,357,5660672,5718016,0,5865472,0,0,6037504,0,0,6078464,0,0,6340608,0,6455296,0,0,0,0,420,420,420,420,597,597,420,420,420,420,420,420,420,420,420,420,420,420,420,0,420,0,0,0,0,5472256,0,0,0,6209536,0,0,0,0,6176768,0,0,0,0,0,0,6373376,6389760,0,0,6488064,6103040,0,0,0,0,0,0,1850,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,4898816,0,5709824,0,0,0,5283840,0,0,0,0,5251072,0,6414336,5832704,0,5955584,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,303,0,0,0,4358144,5472256,5521408,4358144,4358144,4358144,5595136,5709824,5718016,4358144,5824512,5865472,4358144,4358144,5922816,4358144,4358144,6021120,4358144,6037504,4358144,4358144,6078464,6111232,4358144,6176768,6209536,6234112,4358144,4358144,4358144,4358144,5283840,0,0,0,0,5472256,5521408,0,0,0,0,5595136,5709824,5718016,0,5824512,5865472,0,0,5865472,0,0,5922816,0,0,6021120,0,6037504,0,0,6078464,6111232,0,6176768,6209536,0,6234112,0,0,6234112,0,0,0,0,0,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,5283840,4358144,4358144,4358144,4358144,5472256,5521408,4358144,4358144,4358144,4358144,5595136,5709824,5718016,4358144,4358144,0,0,0,0,0,5193728,0,0,0,0,0,0,0,0,4358144,4358144,6209536,4358144,6234112,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,573440,0,0,5890048,0,0,0,6160384,0,5095424,5349376,0,5275648,0,0,0,0,0,0,2308,0,0,0,0,0,0,0,0,0,139264,147456,0,0,344064,0,0,0,0,4997120,0,0,0,0,0,0,0,0,0,0,5947392,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,4012,528,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5890048,4358144,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,0,5103616,0,0,5201920,0,0,0,0,0,0,0,0,0,0,0,5890048,0,0,0,0,6029312,0,0,0,0,6160384,0,0,0,0,0,0,0,6406144,6406144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4997120,4358144,4358144,5038080,4358144,4358144,4358144,5095424,5095424,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,5013504,0,4358144,6406144,4358144,4358144,4358144,0,0,0,4890624,0,0,0,0,0,0,0,0,3209,0,0,3212,0,0,0,0,0,0,5898240,5963776,0,0,6193152,0,0,5406720,6397952,5300224,5234688,5423104,0,0,0,0,0,3675,0,0,0,0,0,4009,0,4011,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58815,57893,57893,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,0,0,0,0,0,0,2317,2318,0,2320,2321,0,0,0,0,0,0,1207,0,1209,0,0,368,368,0,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,5496832,0,0,0,0,0,5611520,0,0,0,0,0,0,0,3673,0,0,0,0,0,0,0,0,693,0,0,0,0,0,0,368,4947968,5021696,5529600,0,0,5169152,0,0,0,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,5185536,0,5234688,5300224,0,0,5406720,5529600,0,0,0,0,5898240,0,0,0,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5046272,4358144,4358144,4358144,4358144,5185536,4358144,5234688,5300224,4358144,4358144,5406720,5529600,4358144,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,6397952,5021696,4358144,4358144,5021696,0,0,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,421,421,421,421,421,421,421,421,421,421,421,421,421,0,421,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3675,4882432,0,0,0,0,0,0,2329,0,0,0,0,0,0,0,0,0,1195,0,0,0,0,0,0,0,0,0,0,5939200,0,0,5677056,6365184,4866048,0,6070272,5545984,5152768,0,0,0,0,0,3675,0,0,0,0,4008,0,4010,0,528,4013,6144e3,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5324800,5373952,5537792,5545984,5586944,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,0,4866048,4882432,0,0,0,0,644,0,0,0,803,0,808,0,794,0,820,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,450560,0,6045696,0,6070272,0,0,0,0,6348800,0,4866048,4882432,0,4980736,0,0,0,0,0,0,0,0,5324800,5373952,5537792,5545984,5586944,5734400,5971968,0,6045696,0,6070272,0,0,0,0,6348800,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6299648,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6348800,4358144,6144e3,0,6144e3,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,759,0,0,3675,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,4358144,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,0,1252,0,0,0,748,1259,0,0,0,0,0,0,0,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,6463488,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6324224,5914624,5914624,0,0,0,0,0,5513216,5783552,0,3675,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4931584,4939776,4358144,4358144,4358144,0,6053888,0,0,0,0,0,0,0,0,6012928,4358144,4358144,5013504,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,1153,0,0,0,0,0,3675,0,0,4006,4007,0,0,0,0,528,528,528,528,3220,528,528,528,528,528,528,3227,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,0,0,5013504,0,0,0,0,0,312,414,0,0,139264,147456,0,0,0,0,0,0,0,6103040,0,0,0,6184960,0,0,0,6283264,0,0,6332416,0,0,0,6389760,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,4358144,0,0,0,0,5193728,0,0,0,0,761,0,0,0,0,0,0,0,0,0,0,528,528,528,3700,528,528,528,5742592,0,0,0,0,0,4358144,4907008,4358144,5079040,4358144,5226496,4358144,5742592,4358144,4358144,4358144,6094848,4358144,5062656,0,0,0,0,0,4358144,4358144,6094848,0,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,0,0,0,0,3675,0,4005,0,0,0,0,0,0,528,528,528,528,4155,528,528,528,528,528,528,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,4358144,4907008,4358144,5079040,5062656,4358144,4358144,4358144,4358144,4358144,0,5062656,0,0,0,0,0,6225920,0,5062656,4358144,4358144,4358144,4358144,4358144,913,5063569,913,913,913,913,913,6226833,989,5063645,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4816896,0,0,0,0,6086656,4816896,4358144,4358144,4358144,4358144,6086656,0,5087232,0,5931008,4358144,5332992,5980160,4358144,0,5332992,5980160,0,0,5332992,5980160,0,4358144,5332992,5980160,4358144,0,0,0,0,787,0,0,0,0,806,0,0,0,0,0,0,0,3166,0,0,0,0,0,0,0,0,327,0,0,0,0,0,0,0,5439488,5128192,4358144,5128192,0,5128192,0,5128192,4358144,0,4358144,0,0,4358144,0,4358144,0,0,4358144,6004736,6004736,6004736,6004736,6004736,0,0,0,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,0,0,221652,221652,221652,468,468,468,468,468,468,468,468,468,468,468,468,221652,468,221652,221652,221652,468,221652,221652,221652,221652,221652,221652,221652,221652,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1162,0,0,1164,0,0,0,0,0,0,0,0,1311,0,0,0,0,0,1179,0,0,0,762,0,0,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,0,1064,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,913,913,913,4358144,4358144,1064,0,0,0,0,0,0,0,0,0,0,0,0,0,507,514,514,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,237568,302,0,306,237568,0,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,4268032,98304,307,0,0,0,0,0,0,0,0,0,0,0,0,0,661,0,0,4210979,24578,3,0,0,297,0,0,0,0,297,0,0,0,0,0,0,0,3685,0,0,0,3688,3689,0,0,0,0,0,245760,245760,245760,0,0,0,0,139264,147456,245760,245760,0,0,245760,0,4210979,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1164,1297,0,0,0,0,0,0,1304,0,0,0,0,0,2859,0,0,0,0,0,0,0,0,0,2867,368,368,0,0,0,303104,0,0,0,0,0,0,0,0,0,0,647,0,0,0,0,528,1158,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,379,0,0,0,0,371,0,4358144,4358144,4358144,4358144,0,1984,0,0,0,4825088,0,0,0,0,0,0,0,1253,0,0,0,0,0,0,0,0,2399,2400,0,0,2402,0,0,0,0,0,262144,262144,262144,0,0,0,0,0,0,0,0,0,0,0,0,3449,0,0,0,0,0,262144,262144,0,262144,0,0,0,139264,147456,262144,0,0,0,0,0,0,2344,2345,0,0,0,0,0,0,0,0,798,0,0,0,0,0,809,0,0,0,262144,0,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,0,262738,0,0,262738,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1177,0,0,0,0,0,0,0,0,0,0,0,4086,528,528,528,528,0,270336,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,278528,278528,0,0,131072,278528,0,0,0,0,278528,0,0,0,0,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,0,278528,0,0,278528,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1205,1206,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,712,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,638,0,0,0,0,1218,0,0,0,0,1223,0,0,0,0,0,0,0,1752,0,0,0,1755,0,0,1758,0,4268032,306,641,0,0,0,0,0,0,0,0,0,0,0,0,0,662,0,0,528,0,1430,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,3686,0,0,0,0,0,0,0,0,3826,0,3675,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,1525,0,0,0,0,0,3675,4004,0,0,0,0,0,0,0,528,528,4209,528,4210,528,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,286720,303,0,307,286720,0,0,0,0,0,0,0,0,0,0,0,0,0,663,0,792,0,307,0,0,0,0,0,0,307,139264,287139,0,0,0,307,0,0,0,0,1234,0,0,0,0,0,0,0,0,0,0,0,2414,0,0,0,0,0,307,1,24578,3,0,0,4366336,0,0,0,0,0,302,66175,0,0,0,0,1250,0,0,0,1255,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,378,0,363,0,0,0,0,0,4268032,306,98946,0,0,0,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,122880,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,0,0,307,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,528,528,3699,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,304,0,304,0,304,304,304,295216,304,304,304,295216,295216,304,295216,304,304,131072,304,304,304,304,304,295216,304,304,304,304,295216,304,304,304,304,295286,295216,295216,295216,295216,295216,295216,304,304,304,304,304,0,0,304,304,295216,304,304,304,304,304,304,304,304,304,304,304,304,369,304,0,295216,304,295286,295216,295216,295216,304,304,304,295286,139264,147456,295216,295216,304,304,295216,295216,295216,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,295216,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295216,295216,295216,295216,295216,304,304,304,295216,304,304,304,304,304,304,304,295216,374,304,304,304,304,304,304,304,295216,304,295216,295216,295216,295216,295216,295216,295216,295216,295286,295286,295286,295286,295286,295286,295216,295216,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1267,0,0,0,0,0,0,0,0,0,0,0,3170,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,4399804,4399804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399804,0,0,319488,0,0,0,0,0,0,319488,319488,0,0,0,0,0,0,0,3696,0,528,528,528,528,528,528,528,528,528,528,528,3849,528,528,528,319488,0,0,0,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,0,24578,3,0,0,4366336,253952,0,0,0,0,302,303,0,0,0,0,1282,0,0,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,368,425984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399805,0,0,0,6275072,0,0,0,0,0,0,0,368,0,0,0,0,0,0,2357,0,0,0,0,0,0,0,0,0,3461,0,0,0,0,0,0,0,327680,327680,327680,0,0,0,0,0,0,0,0,0,0,327680,327680,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,327680,327680,327680,327680,327680,335872,327680,327680,327680,335872,327680,327680,327680,327680,327680,327680,49723,0,0,0,0,0,0,0,49723,49723,0,0,0,0,0,0,0,1270,0,0,0,0,0,0,0,0,0,5627904,5652480,0,5701632,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,49152,990,0,0,0,0,0,3683,0,0,0,0,0,0,0,3690,0,0,0,0,0,3836,0,0,0,0,0,0,0,0,0,0,5242880,0,0,0,0,0,0,0,5341184,0,0,0,0,0,344064,344064,344064,0,0,0,0,0,0,0,0,0,0,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,352256,352256,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1309,0,0,0,0,0,0,0,0,1315,0,0,0,0,371,0,0,0,0,0,0,0,0,0,0,0,3438,0,0,3440,0,1,292,3,0,0,0,298,0,0,0,0,0,0,0,0,0,528,3698,528,528,528,3701,528,0,360448,360448,360448,0,0,0,0,0,0,0,0,0,0,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,1,0,3,155942,155942,296,0,636,0,0,0,302,303,0,1230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,368,528,528,1376,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2460,528,0,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60322,57943,57943,57943,57943,59004,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,3998,0,4e3,528,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,528,528,528,2437,528,528,528,528,528,528,528,528,528,528,528,528,528,2446,528,2448,0,0,0,57893,57893,57893,57893,57893,57893,57893,59856,57893,57893,57893,57893,57893,57893,60873,57893,57893,57893,57893,57893,57893,57893,57893,57893,61213,57893,57893,57893,57893,61214,61215,57893,57893,57893,57893,60300,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,60432,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,0,0,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,319,0,0,0,0,0,0,3682,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,528,57893,61069,57893,57893,57893,61072,57893,57893,57893,57893,57893,57893,57893,57893,57893,58331,0,57916,57916,57916,57916,57916,61080,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59358,61101,57916,57916,57916,57916,57916,57916,57916,57916,57916,61109,57916,57916,57916,57916,57916,57916,60360,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,60707,57943,57943,57943,57943,57943,57943,57943,57943,57943,61138,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59568,57943,57943,57943,528,528,3852,3853,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,58291,57893,57893,57943,57943,57943,61251,57943,57943,57943,57943,61252,61253,57943,57943,57943,57943,57943,57943,57943,58468,57943,57943,57943,57943,528,528,528,898,0,0,3675,0,0,3929,0,0,0,0,0,0,0,0,0,0,695,0,0,0,0,368,528,528,57893,57893,57893,57893,57893,57893,61299,57893,57893,57893,57893,57893,57893,61305,57893,57893,57893,61309,57893,57916,57916,57916,57916,57916,57916,61315,57916,57916,57916,57916,57916,57943,57943,61128,57943,57943,57943,57943,57943,57943,57943,57943,57943,60066,57943,57943,57943,57943,57943,57943,57916,57916,61321,57916,57916,57916,61325,57916,57943,57943,57943,57943,57943,57943,61331,57943,528,1951,528,2283,528,57893,59394,57893,59632,57893,2290,0,2291,0,0,0,0,0,417792,0,417792,0,0,0,0,310,0,0,0,0,0,316,0,0,0,0,0,0,0,0,0,0,1328,0,0,0,0,0,528,528,57893,57893,57893,57893,61511,57893,57893,57893,57893,57893,57893,57893,57893,57893,58826,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61524,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,60024,57943,60026,57943,57943,57943,57943,57943,61537,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,4244,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,0,0,0,0,1310,0,0,0,0,0,0,0,0,0,1316,1269,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,376832,376832,376832,0,0,0,0,0,0,0,0,0,0,0,0,346,0,0,0,0,420,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,0,0,0,0,648,0,0,0,0,0,0,0,0,4268780,0,0,0,0,0,0,0,0,0,0,0,0,6119424,0,6168576,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,0,0,393685,393685,393685,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,245760,0,0,475136,0,0,0,0,0,0,0,0,0,0,0,0,0,761,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411,0,421,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,1738,0,1740,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,0,0,352256,0,352256,352256,0,0,0,305,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1185,0,0,0,0,0,748,421,0,0,0,0,0,0,0,0,0,0,0,337,0,0,0,0,57916,0,0,0,748,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3413,57893,57893,60760,1725,0,0,0,1731,1732,0,0,0,0,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,1252,1825,0,0,0,0,1259,1259,0,0,0,0,0,0,0,4083,0,4085,0,528,528,528,528,528,528,528,528,528,528,3848,528,528,528,528,0,0,2293,1732,2294,0,0,0,0,0,0,0,0,0,0,0,368,368,1212,0,0,528,528,2499,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59860,528,528,528,2932,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,2592,0,0,417792,0,0,0,0,417792,0,0,0,0,0,310,0,310,0,0,0,0,0,4151,4152,4153,528,528,528,4156,528,4158,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,60283,417792,417792,0,0,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,418102,417792,417792,418101,418102,417792,417792,418101,417792,418101,417792,0,417792,0,0,0,0,417792,0,0,0,0,0,0,0,0,0,0,0,310,310,310,0,418101,417792,1,24578,3,0,0,4366971,0,0,0,0,0,302,303,311296,4399805,0,0,0,311296,0,0,0,0,0,0,0,0,0,0,800,0,0,0,0,0,0,0,0,4268032,306,307,0,434176,0,0,0,0,0,0,0,0,0,0,0,381,0,384,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,4399805,0,0,0,0,0,363,0,0,0,0,0,0,368,0,296,0,0,914,913,913,913,913,913,4858769,4875153,913,913,913,913,913,913,913,913,913,5628817,5653393,913,5702545,913,913,913,913,5448593,913,5464977,913,5481361,5563281,913,913,913,5637009,913,5686161,913,913,5751697,913,6275985,913,913,913,913,913,913,913,913,913,0,0,990,989,989,989,989,6087645,4817809,4359057,4359057,4359057,4359057,6087569,0,5087232,0,5931008,4358144,989,989,5260253,989,989,989,989,989,989,989,989,5415901,989,5448669,989,5465053,989,5481437,5563357,989,989,989,5637085,989,5686237,989,989,5751773,989,989,989,989,989,989,6300637,989,989,989,989,989,989,989,989,989,989,5112797,989,989,989,989,989,989,5874653,989,989,989,989,989,989,989,989,989,989,989,6276061,989,989,989,4858845,4875229,989,989,989,989,989,989,989,989,989,989,989,989,989,5178333,989,989,4359057,5637009,4359057,5686161,4359057,4359057,5751697,4359057,4359057,4359057,4359057,4359057,5874577,4359057,4359057,4359057,4359057,5186449,4359057,5235601,5301137,4359057,4359057,5407633,5530513,4359057,4359057,4359057,4359057,4359057,6300561,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5112721,4359057,4359057,4359057,4359057,989,989,5809041,4359057,4359057,4359057,4826001,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5178257,4359057,4359057,4359057,4359057,4359057,5243793,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5342097,4359057,4359057,4359057,4359057,4359057,4359057,5415825,4359057,5448593,4359057,5464977,4359057,5481361,5563281,4359057,4359057,0,0,0,913,913,913,913,913,913,913,913,913,913,913,4932497,4940689,913,913,6464401,0,0,0,0,989,989,989,989,989,989,989,989,989,4998109,989,989,5039069,989,989,989,5096413,989,5456861,989,989,989,989,989,5555165,5571549,5579741,5620701,5669853,989,989,989,5792733,5817309,989,5858269,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,4359057,4359057,4359057,6120413,989,6169565,989,989,989,989,989,6243293,989,6292445,989,6317021,989,989,989,989,989,5071837,989,989,989,989,989,989,989,5219293,989,5268445,4359057,4359057,4932497,4940689,4359057,4359057,4359057,4359057,4359057,4359057,5055377,4359057,4359057,4359057,4359057,4359057,4359057,6054801,4359057,4359057,4359057,0,0,0,0,5193728,0,4359057,5456785,4359057,4359057,4359057,4359057,4359057,5555089,5571473,5579665,5620625,5669777,4359057,4359057,4359057,5792657,5817233,4359057,5858193,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,0,5013504,0,6120337,4359057,6169489,4359057,4359057,4359057,4359057,4359057,6243217,4359057,6292369,4359057,6316945,4359057,4359057,4359057,5194641,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4907008,0,5079040,6094848,6430720,6438912,0,0,0,0,0,0,4785041,913,913,913,4850577,913,913,913,913,913,913,5055377,913,913,913,913,913,913,913,913,5211025,5489553,913,913,913,913,913,913,913,913,913,5800849,913,913,5882769,913,913,913,913,5219217,913,5268369,913,913,5309329,5317521,913,913,913,5432209,913,913,913,6333329,913,913,913,6390673,913,913,6431633,6439825,0,0,0,0,0,0,0,393685,0,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,0,393685,0,4785117,989,989,989,4850653,989,989,989,989,989,4916189,989,4957149,4973533,989,989,989,6030301,989,989,989,989,6161373,989,989,989,989,989,989,989,6325213,4359057,4359057,5006225,4359057,4359057,4359057,5120913,5137297,989,989,5309405,5317597,989,989,989,5432285,989,5489629,989,989,989,989,989,989,5325789,5374941,5538781,5546973,5587933,5735389,5972957,989,6046685,989,6104029,989,989,989,6185949,989,989,989,6284253,989,989,6333405,989,989,989,6390749,989,989,6431709,6439901,4785041,4359057,4359057,4359057,4850577,4359057,4359057,4359057,4359057,4359057,4916113,4359057,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,0,0,0,0,0,0,0,319488,0,0,0,0,0,0,0,0,0,0,319488,0,4957073,4973457,4359057,4359057,4359057,4359057,4359057,4359057,5071761,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6275985,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5219217,4359057,5268369,4359057,4359057,5309329,5317521,4359057,4359057,4359057,5432209,4359057,5489553,4359057,4359057,4359057,5211025,4359057,4359057,4359057,4359057,5292945,4359057,4359057,4359057,4359057,5366673,4359057,4359057,4359057,4359057,6390673,4359057,4359057,6431633,6439825,4358144,4358144,4358144,6266880,6488064,913,913,913,6267793,6488977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,730,4358144,4358144,4358144,0,0,913,913,4842385,913,913,913,4899729,913,913,913,913,913,913,913,6103953,913,913,913,6185873,913,913,913,6284177,913,913,5473169,5522321,913,913,913,913,5596049,5710737,5718929,913,5825425,5866385,913,913,913,913,5243793,913,913,913,913,913,913,913,5342097,913,913,913,0,0,989,989,989,4826077,989,989,989,989,989,989,989,0,913,4359057,4359057,4359057,4359057,4359057,4858769,4875153,5923729,913,913,6022033,913,6038417,913,913,6079377,6112145,913,6177681,6210449,913,6235025,913,913,913,913,6243217,913,6292369,913,6316945,913,913,913,913,913,913,913,4998033,913,913,5038993,913,913,913,5096337,5104529,5284829,989,989,989,989,5473245,5522397,989,989,989,989,5596125,5710813,5719005,989,5825501,5866461,989,989,5923805,989,989,6022109,989,6038493,989,989,6079453,6112221,989,6177757,6210525,989,6235101,989,989,989,989,989,989,989,4359057,4359057,4842385,4359057,4359057,4359057,4899729,4359057,5284753,4359057,4359057,4359057,4359057,5473169,5522321,4359057,4359057,4359057,4359057,5596049,5710737,5718929,4359057,4359057,4359057,6103953,4359057,4359057,4359057,6185873,4359057,4359057,4359057,6284177,4359057,4359057,6333329,4359057,4359057,4923392,4358144,4358144,4358144,4358144,4358144,913,4924305,913,913,913,913,4366336,0,0,0,0,1779,0,0,0,0,0,0,0,0,0,0,0,3156,0,3157,0,0,5825425,5866385,4359057,4359057,5923729,4359057,4359057,6022033,4359057,6038417,4359057,4359057,6079377,6112145,4359057,6177681,6210449,4359057,6235025,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,913,913,913,913,913,5194641,913,913,913,913,913,913,913,913,913,913,988,989,989,989,989,989,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,913,913,913,913,6325137,989,989,5006301,989,989,989,5120989,5137373,989,989,989,989,989,6226909,4359057,5063569,4359057,4359057,4359057,4359057,4359057,6226833,0,6086656,913,913,5202833,913,913,913,913,913,913,913,913,913,913,913,5890961,913,913,913,5555089,5571473,5579665,5620625,5669777,913,913,913,5792657,5817233,913,5858193,913,913,913,913,5292945,913,913,913,913,5366673,913,913,913,5456785,913,913,913,913,913,6308753,913,913,6357905,6382481,6398865,4801501,4809693,989,989,4891613,913,913,6030225,913,913,913,913,6161297,913,913,913,913,913,913,913,6407057,5104605,989,989,5202909,989,989,989,989,989,989,989,989,989,989,989,5891037,6407133,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4998033,4359057,4359057,5038993,4359057,4359057,4359057,5325713,5374865,5538705,5546897,5587857,5735313,5972881,4359057,6046609,4359057,6071185,4359057,4359057,5096337,5104529,4359057,4359057,5202833,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,4358144,5890961,4359057,4359057,4359057,6030225,4359057,4359057,4359057,4359057,6161297,4359057,4359057,4359057,4359057,4359057,4359057,5800849,4359057,4359057,5882769,4359057,4359057,4359057,4359057,4359057,4359057,5628817,5653393,4359057,5702545,4359057,4359057,5809041,4359057,4359057,4359057,4359057,6407057,4358144,4358144,4358144,913,913,913,4890624,0,0,0,0,0,0,0,0,327680,0,0,0,0,0,0,0,0,319488,0,0,0,0,319488,0,319488,6397952,4801425,4809617,913,913,4891537,913,4948881,913,913,913,5047185,913,913,913,913,913,913,913,6300561,913,913,913,913,913,913,913,913,913,913,913,913,6120337,913,6169489,913,5186449,913,5235601,5301137,913,913,5407633,5530513,913,913,913,913,5899153,913,913,913,913,913,913,6054801,913,913,913,989,989,5014493,989,989,989,989,989,5194717,989,989,989,989,989,989,989,989,4359057,4359057,989,4948957,989,989,989,5047261,989,989,989,989,5186525,989,5235677,5301213,989,989,989,5211101,989,989,989,989,5293021,989,989,989,989,5366749,989,989,989,5243869,989,989,989,989,989,989,989,5342173,989,989,989,989,989,989,6464477,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6325137,5914624,5915537,0,0,0,5407709,5530589,989,989,989,989,5899229,989,989,989,989,989,989,989,989,6308829,989,989,6357981,6382557,6398941,4801425,4809617,4359057,4359057,4891537,4359057,4948881,4359057,4359057,4359057,5047185,5899153,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6308753,4359057,4359057,6357905,6382481,6398865,5021696,4358144,4358144,5022609,913,913,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,1792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114688,0,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,913,4866961,4883345,913,913,4916113,913,4957073,4973457,913,913,913,913,913,913,5071761,913,913,913,913,913,913,5260177,913,913,913,913,913,913,913,913,5415825,4981649,913,913,913,913,913,913,913,913,5325713,5374865,5538705,5546897,5587857,5735313,5972881,913,6046609,913,6071185,913,913,913,913,6349713,989,4867037,4883421,989,4981725,989,989,989,5800925,989,989,5882845,989,989,989,989,989,989,989,989,989,5628893,5653469,989,5702621,989,989,989,989,6071261,989,989,989,989,6349789,4359057,4866961,4883345,4359057,4981649,4359057,4359057,4359057,4359057,4359057,4359057,6464401,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,5178257,913,4359057,4359057,6349713,4358144,6144e3,913,6144913,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,1795,0,0,1798,0,1800,0,0,0,0,0,1806,4358144,6324224,913,913,5006225,913,913,913,5120913,5137297,913,913,913,913,913,913,913,5112721,913,913,913,913,913,5284753,913,913,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,913,913,5014417,913,913,913,913,913,5874577,913,913,913,913,913,913,913,913,913,913,913,913,913,989,989,989,4358144,6094848,913,4907921,913,5079953,913,5227409,913,5743505,913,913,913,6095761,913,989,989,4932573,4940765,989,989,989,989,989,989,5055453,989,989,989,989,989,989,6054877,989,989,989,4359057,4359057,5014417,4359057,4359057,4359057,4907997,989,5080029,989,5227485,989,5743581,989,989,989,6095837,989,4359057,4907921,4359057,5079953,4359057,5227409,4359057,5743505,4359057,4359057,4359057,6095761,4359057,5062656,0,0,0,0,0,4358144,4358144,0,913,913,913,913,913,913,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4817809,913,913,913,913,6087569,4817885,5332992,5980160,4358144,913,5333905,5981073,913,989,5333981,5981149,989,4359057,5333905,5981073,4359057,0,0,0,0,1811,0,0,0,0,0,0,0,0,0,1820,0,0,0,0,1825,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,528,5439488,5128192,4358144,5129105,913,5129181,989,5129105,4359057,0,4358144,913,989,4359057,0,4358144,913,989,4359057,6004736,6004736,6005649,6005725,6005649,0,0,0,450560,450560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,375,0,450560,450560,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1876,1877,0,0,0,0,0,0,0,0,0,0,1867,0,0,1870,0,0,0,0,0,196608,0,0,0,106496,0,0,4284416,0,0,0,0,0,0,0,417792,0,0,417792,0,0,417792,0,417792,0,0,0,0,139264,147456,417792,0,0,0,417792,196608,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,303,0,0,307,0,0,0,4956160,4964352,0,0,0,0,0,0,0,466944,0,0,0,0,0,0,0,0,0,5480448,0,0,0,0,0,0,6430720,6438912,914,0,0,0,914,0,4784128,0,0,0,4849664,0,0,0,0,0,648,0,0,0,0,0,0,818,0,0,0,0,0,658,659,0,0,0,0,0,0,0,0,0,1272,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,990,0,0,0,990,4358144,4358144,4358144,914,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,2383,0,0,0,0,0,0,0,0,0,2825,0,0,0,0,0,0,0,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459379,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1887,0,1889,1865,528,528,528,528,528,528,528,528,3516,528,528,3519,528,528,528,60866,4358144,4358144,483328,0,0,0,0,0,0,0,0,0,0,0,0,0,1243,0,0,1,24578,3,0,0,0,0,507904,0,0,0,507904,0,0,0,0,0,0,2398,0,0,0,0,0,0,0,0,0,49723,0,0,0,0,0,327680,0,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2084,0,0,0,4825088,0,0,0,0,0,0,0,0,3423,0,0,0,0,0,0,0,0,3460,0,0,0,0,0,3465,0,4268032,306,307,0,0,442368,0,0,0,0,0,0,0,0,0,0,1168,1167,0,0,0,0,0,0,0,229376,0,491520,524288,0,0,0,0,0,0,0,0,0,678,0,0,0,0,0,0,4358144,4358144,491520,0,0,0,0,0,0,0,0,0,0,0,0,0,1275,0,1277,1,24578,3,0,0,0,0,0,516096,0,0,0,516096,0,0,0,0,0,0,0,0,0,0,0,0,368,0,296,0,0,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,1,24578,0,0,0,4366336,0,0,548864,0,0,302,303,0,0,0,0,2306,0,0,0,0,0,0,0,0,0,0,0,0,5627904,0,0,0,4268032,306,307,409600,0,0,0,0,0,0,0,0,0,0,0,0,368,0,308,0,0,0,5513216,5783552,0,40960,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,5193728,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4907008,0,5079040,6094848,1,24578,4227365,0,0,0,0,0,0,299,0,0,0,299,0,0,0,0,0,245760,0,245760,245760,0,0,0,245760,245760,0,0,0,0,0,0,245760,0,0,0,245760,0,0,245760,245760,245760,0,0,540672,0,0,540672,0,0,0,540672,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,0,0,417792,0,0,0,417792,0,0,0,0,0,1,24578,4227365,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2328,0,0,0,0,2332,0,0,0,0,0,0,0,1879,0,0,0,0,0,0,0,0,768,0,0,771,0,0,0,0,0,0,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1291,0,0,0,0,499712,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5111808,4358144,4358144,4358144,4358144,4358144,5283840,4358144,4358144,4358144,4358144,4358144,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1314,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2355,0,0,0,0,0,0,0,0,0,0,0,1882,0,0,0,0,1,24578,3,155942,296,0,0,0,0,0,0,0,0,0,0,0,528,4087,528,4088,528,528,57893,528,57893,528,528,57893,528,528,57916,57893,528,528,57893,57893,57893,0,0,0,0,0,0,3821,0,0,0,0,57916,57893,57893,57893,57893,57893,57893,57893,57916,57916,57893,57893,57943,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61529,57916,57916,57916,57943,57943,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60631,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,0,664,0,0,0,0,3453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,744,1825,0,0,0,0,0,0,0,0,0,0,0,2373,0,0,0,0,0,674,0,0,0,0,0,0,0,0,0,0,1182,0,0,0,0,0,0,0,1280,0,0,0,0,0,0,0,0,0,0,0,0,0,1788,0,0,528,57894,528,57894,528,528,57894,528,528,57917,57894,528,528,57894,57894,57894,57894,57944,57944,57894,57894,57894,57894,57944,57944,57894,528,57894,57894,57917,57894,57894,57894,57894,57894,57894,57894,57917,57917,57894,57894,57944,57894,57894,57894,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1,24578,3,155943,296,0,0,0,0,0,0,0,0,0,0,0,740,661,0,0,528,0,573440,573440,573440,0,0,0,0,0,0,0,0,0,0,0,0,368,0,516096,0,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,3675,0,0,0,0,0,694,0,0,0,787,0,0,0,0,806,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,637,303,0,0,0,0,2381,0,0,0,0,0,0,0,0,0,0,0,344064,0,0,0,0,4268032,640,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1804,0,0,581632,0,0,0,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,746,581632,581632,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2397,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3827,4882432,0,0,0,0,0,0,2784,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,420,0,0,0,3926,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,0,0,5513216,5783552,0,3926,0,0,0,0,0,0,0,0,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,0,306,0,0,0,0,0,0,306,237983,147456,0,0,0,306,0,0,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,1819,0,0,312,0,311,311,312,0,0,0,0,0,0,0,0,0,0,0,311,409,312,0,458,472,472,472,485,485,485,485,485,485,485,485,485,506,485,485,485,485,485,524,485,485,485,524,485,485,485,485,485,485,529,57895,529,57895,529,529,57895,529,529,57918,57895,529,529,57895,57895,57895,57895,57945,57945,57895,57895,57895,57895,57945,57945,57895,529,57895,57895,57918,57895,57895,57895,57895,57895,57895,57895,57918,57918,57895,57895,57945,57895,57895,57895,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,736,0,0,0,0,0,0,0,0,0,745,368,368,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,750,0,0,0,0,645,0,0,0,0,0,0,0,6299648,0,0,0,0,0,0,0,0,0,777,0,0,781,0,0,0,0,0,0,0,789,0,0,0,0,0,0,2807,0,0,0,0,0,0,0,0,0,2310,0,0,0,0,0,0,793,0,0,0,0,0,0,0,797,0,0,0,0,0,0,0,0,557056,557056,0,0,0,0,0,0,0,833,793,0,0,0,0,0,837,838,0,0,0,0,793,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1155,0,0,0,0,2295,0,1160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1759,528,847,851,528,528,863,528,528,528,879,528,884,528,892,528,895,528,528,909,528,57893,57893,57893,58266,58270,57893,57893,58282,57893,57893,57893,58298,57893,58303,57893,58311,57893,58314,57893,57893,58328,57893,0,57916,57916,57916,58342,58346,57916,57916,58358,57916,57916,57916,58374,57916,58379,57916,58387,57916,58390,57916,57916,58404,57916,0,0,0,0,58303,57943,57943,57943,58417,58421,57943,57943,58433,57943,57943,528,528,528,57893,57893,57893,0,0,3655,0,3657,0,0,0,0,0,2356,0,2358,0,0,0,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,57943,58449,57943,58454,57943,58462,57943,58465,57943,57943,58479,57943,847,851,1141,895,1159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,1320,0,0,0,0,0,0,0,0,0,0,0,0,368,302,0,0,528,528,528,1411,528,528,528,528,528,528,528,528,528,528,528,528,528,2470,528,528,0,0,1809,0,0,0,0,0,0,0,0,0,0,0,0,0,1842,0,0,1832,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1201,1885,0,0,1886,0,0,0,0,528,528,528,528,528,528,528,528,528,528,3225,528,528,528,1899,528,528,528,528,528,528,528,528,528,1912,528,528,528,0,0,57893,60609,57893,57893,57893,57893,57893,57893,57893,57893,57893,61085,57893,57893,57893,57893,57893,57893,528,528,528,528,58773,1985,57893,57893,57893,57893,57893,59336,57893,57893,57893,57893,57893,58822,57893,57893,57893,57893,58827,57893,57893,57893,57893,57893,58319,57893,57893,57893,57893,0,57916,57916,58341,57916,57916,57893,59342,57893,57893,57893,57893,57893,57893,57893,57893,57893,59355,57893,57893,57893,57893,57893,58859,57893,57893,57893,58866,57893,50676,58773,990,57916,57916,59442,57916,57916,57916,57916,57916,57916,57916,57916,57916,59455,57916,57916,57916,57916,57916,57916,60387,57916,57916,57916,57916,57916,57916,60394,57916,57916,57916,57916,57916,57916,59514,57916,57916,57916,57916,57916,57916,59520,57916,57916,57916,57916,57916,57943,61127,57943,57943,57943,61130,57943,57943,57943,57943,57943,57943,57943,60968,57943,57943,57943,57943,57943,57943,57943,57943,57943,60721,57943,57943,57943,57943,57943,57943,57943,57943,57943,59610,57943,57943,57943,57943,57943,57943,59616,57943,57943,57943,57943,57943,57943,57943,60982,60984,57943,57943,57943,57943,60988,57943,60990,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,2300,0,0,0,0,2806,0,0,0,0,0,2811,0,2813,2814,0,0,0,0,0,483328,0,0,0,0,0,0,0,0,0,0,801,0,0,0,0,0,0,2325,0,0,0,0,0,0,0,0,0,2334,0,0,0,0,0,0,2822,0,0,0,0,0,0,0,0,0,769,0,0,0,774,0,0,0,2407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,702,528,2399,528,528,528,528,528,528,528,528,528,528,528,2429,528,528,2432,528,528,2475,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2471,528,57893,57893,59863,57893,57893,57893,57893,57893,57893,59871,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60351,57916,57916,57916,57916,57916,57916,57893,59891,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60640,57916,57916,57916,59949,57916,57916,59952,57916,57916,57916,57916,57916,57916,59960,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,57916,57916,60017,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60417,57943,57943,57943,57943,57943,60032,57943,57943,60035,57943,57943,57943,57943,57943,57943,60043,57943,57943,528,528,528,57893,57893,57893,0,3654,0,0,0,0,0,0,0,1325,0,0,0,1329,0,0,0,0,57943,57943,60100,57943,57943,57943,57943,2760,528,528,528,528,60109,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,59945,57916,0,0,2781,0,0,0,0,0,0,0,0,0,0,0,0,0,1884,0,0,0,0,2794,0,0,0,0,0,2798,0,0,0,0,0,0,0,0,4784128,0,0,0,0,0,0,0,0,3181,0,0,0,0,0,3186,0,57893,60285,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60293,57893,57893,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57943,57943,60461,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,4075,0,4076,57943,60472,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3150,0,0,0,0,0,0,0,0,0,0,0,0,0,2299,0,0,0,3160,0,0,0,0,0,0,0,0,0,0,0,0,3173,0,0,0,0,2820,0,0,0,2824,0,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,2331,0,0,0,0,0,0,0,0,3189,0,0,0,0,0,0,0,0,0,0,0,0,3202,3203,0,0,3215,0,528,528,528,528,528,528,528,528,528,528,528,3226,528,528,3230,528,528,528,528,528,528,528,528,528,528,3239,528,528,0,0,0,0,0,0,57893,57893,60279,57893,57893,57893,57893,57893,58320,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,4289,0,528,60617,57893,57893,60621,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60630,57893,0,0,3137,3138,0,0,0,0,0,0,0,0,0,0,0,3199,0,0,0,0,57916,57916,57916,60666,57916,57916,60670,57916,57916,57916,57916,57916,57916,57916,57916,57916,58383,57916,57916,57916,57916,57916,57916,57916,60679,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60687,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,57943,57943,57943,57943,60715,57943,57943,60719,57943,57943,57943,57943,57943,57943,57943,57943,57943,59582,57943,57943,57943,57943,57943,57943,57943,57943,60728,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60736,0,3430,0,0,0,0,0,0,0,0,0,0,0,0,0,0,729,0,528,3495,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2904,528,528,528,528,3512,528,3514,528,528,528,528,528,528,528,528,57893,57893,58259,57893,57893,57893,57893,57893,57893,58292,57893,57893,60879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59389,57893,57893,57893,57893,60897,57893,60899,57893,57893,57893,57893,57893,57893,57893,57893,57893,59399,57893,57893,57893,57893,57893,57893,57916,60921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,60963,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60457,57943,528,4015,528,528,528,528,528,528,528,528,528,528,528,57893,61372,57893,302,306,0,0,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,61374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61388,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,58442,61390,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,61404,57943,528,2281,528,528,528,57893,59630,57893,57893,57893,2290,0,2291,0,0,0,0,0,262144,0,0,0,0,0,0,0,0,0,0,663,0,0,666,667,0,61406,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,4077,0,0,0,0,0,0,0,4084,0,0,528,528,528,528,4089,0,0,4148,0,4150,528,528,528,528,528,528,528,528,528,528,528,528,1399,528,528,528,0,0,0,313,314,315,0,0,0,0,0,0,0,0,0,0,1240,0,0,0,0,0,0,0,427,0,131072,0,0,0,0,427,0,0,0,0,0,427,459,0,0,0,459,459,459,459,459,459,459,459,459,459,459,459,523,459,523,523,523,459,523,523,523,523,523,523,530,57896,530,57896,530,530,57896,530,530,57919,57896,530,530,57896,57896,57896,57896,57946,57946,57896,57896,57896,57896,57946,57946,57896,621,57896,57973,57919,57896,57896,57896,57896,57896,57896,57896,57919,57919,57896,57896,57946,57896,57896,57896,57973,57973,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,2830,0,0,0,0,0,0,0,0,0,0,0,680,681,0,0,0,57893,57893,58307,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,57916,60350,57916,57916,57916,57916,57916,57916,57916,60915,57916,57916,57916,57916,57916,57916,57916,57916,58942,57916,57916,57916,57916,57916,57916,57916,57916,60389,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,58458,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,528,528,1965,528,528,528,528,528,528,1972,528,528,528,528,528,528,528,3501,528,3503,528,528,528,528,528,528,1360,528,528,528,528,528,528,528,528,528,2887,528,2889,528,528,528,528,57893,59408,57893,57893,57893,57893,57893,57893,59416,57893,57893,57893,57893,57893,57893,57893,58823,57893,57893,57893,57893,57893,57893,57893,57893,58840,57893,57893,57893,57893,57893,57893,57893,59508,57916,57916,57916,57916,57916,57916,59516,57916,57916,57916,57916,57916,57916,57916,57916,58909,57916,57916,57916,58912,57916,57916,57916,57893,57893,57893,60286,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58814,57893,57893,57893,60408,57916,57916,57916,57943,57943,57943,57943,57943,57943,60414,57943,57943,57943,57943,60418,57943,57943,57943,60473,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,2292,528,528,528,4093,528,4095,528,528,4097,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61077,57893,57893,57893,57893,61450,57893,61452,57893,57893,61454,57893,57893,57916,57916,57916,57916,57916,57916,58879,57916,57916,57916,57916,57916,58891,57916,57916,57916,57916,57916,61464,57916,61466,57916,57916,61468,57916,57916,57943,57943,57943,57943,57943,57943,60956,57943,57943,57943,57943,57943,60960,57943,57943,57943,57943,61478,57943,61480,57943,57943,61482,57943,57943,0,0,0,0,0,0,0,1766,0,0,1769,0,0,0,0,0,320,320,428,429,131072,436,429,437,439,428,436,437,0,316,437,455,460,473,473,473,486,486,486,486,486,486,486,486,486,486,508,508,521,521,522,522,508,522,522,522,508,522,522,522,522,522,522,531,57897,531,57897,531,531,57897,531,531,57920,57897,531,531,57897,57897,57897,57897,57947,57947,57897,57897,57897,57897,57947,57947,57897,622,57972,57972,57920,57897,57897,57897,57897,57897,57897,57897,57920,57920,57897,57897,57947,57897,57897,57897,57972,57972,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,3151,0,0,0,0,0,3155,0,0,0,0,0,0,814,0,0,0,0,0,0,819,0,0,0,686,0,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,0,368,368,702,0,0,0,0,0,0,0,0,0,0,0,0,0,2315,0,0,0,0,0,734,0,0,0,0,0,0,0,0,0,0,0,0,368,303,0,0,0,823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,775,0,0,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,804,0,0,0,0,1216,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,2336,0,0,0,0,0,1281,0,0,0,0,0,0,0,0,0,0,0,0,368,342,296,0,0,0,1295,0,0,0,0,0,0,0,0,0,0,0,0,0,2363,0,0,1307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229,58773,914,57893,57893,58777,57893,57893,58781,57893,57893,57893,57893,57893,57893,57893,57893,58808,57893,57893,57893,57893,57893,57893,57893,58795,57893,58800,57893,57893,58804,57893,57893,58807,57893,57893,57893,57893,57893,57893,57893,58838,57893,57893,57893,57893,57893,57893,57893,57893,58841,57893,57893,57893,57893,57893,57893,57893,58872,57916,57916,58876,57916,57916,57916,57916,57916,57916,57916,57916,58890,57916,58895,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58428,57943,57943,58444,57916,58899,57916,57916,58902,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59985,57916,57916,57916,1860,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1245,528,528,528,528,1902,528,528,528,528,528,528,528,528,528,1914,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1156,0,0,0,0,327,327,377,0,0,0,0,0,0,0,0,0,1210,0,368,368,0,1213,0,1929,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,896,57893,57893,57893,59345,57893,57893,57893,57893,57893,57893,57893,57893,57893,59357,57893,57893,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,57916,57916,59445,57916,57916,57916,57916,57916,57916,57916,57916,57916,59457,57916,57916,57916,57916,57916,59967,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,61474,57943,59541,57943,57943,57943,57943,57943,57943,57943,57943,57943,59553,57943,57943,57943,57943,57943,57943,57943,61152,57943,57943,57943,57943,57943,57943,57943,528,528,528,2763,2764,57893,57893,57893,60112,57943,57943,57943,59591,59592,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59601,57943,57943,57943,57893,59917,59918,59919,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58848,57893,57893,58852,57916,59989,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60002,57943,60072,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60085,57893,57893,60325,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58849,57893,57893,0,0,0,3216,528,528,528,528,528,528,528,528,528,528,528,528,528,2484,528,528,528,528,528,3243,528,528,528,528,528,528,528,528,528,528,528,528,528,2891,528,528,57893,57893,57893,57893,60634,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,61125,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60962,528,528,4092,528,528,528,528,528,528,528,57893,61444,57893,61445,57893,57893,57893,2589,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61106,57916,57916,57916,57916,57916,57916,57916,57916,59954,57916,57916,59958,57916,57916,57916,59962,57893,61449,57893,57893,57893,57893,57893,57893,57893,57893,57916,61458,57916,61459,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59540,57916,61463,57916,57916,57916,57916,57916,57916,57916,57916,57943,61472,57943,61473,57943,57943,528,528,1715,528,528,1718,57893,57893,59064,57893,57893,59067,1151,0,57943,61477,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1814,0,0,0,0,0,0,0,0,528,1338,528,528,528,528,528,528,528,528,4291,57893,57893,57893,61637,57916,57916,57916,61639,57943,57943,57943,61641,0,0,0,0,3178,0,0,0,0,0,0,0,0,0,0,0,1312,0,0,0,0,326,327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1186,0,0,0,377,0,131072,0,0,0,440,377,0,0,445,451,0,377,461,474,474,474,487,487,487,487,487,487,487,487,487,487,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,532,57898,532,57898,532,532,57898,532,532,57921,57898,532,532,57898,57898,57898,57898,57948,57948,57898,57898,57898,57898,57948,57948,57898,532,57898,57898,57921,57898,57898,57898,57898,57898,57898,57898,57921,57921,57898,57898,57948,57898,57898,57898,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1188,0,1190,1191,0,0,0,1193,1194,0,0,0,0,0,0,0,0,4997120,0,0,5038080,0,0,0,5095424,5103616,0,0,1232,1233,0,0,0,0,0,0,0,0,0,0,0,0,370,0,0,0,1263,1265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1200,0,1317,0,0,0,0,0,0,0,0,0,1303,0,0,0,1331,1193,528,528,1390,528,528,1392,528,528,528,528,1397,528,528,528,528,528,528,3500,528,528,528,528,528,528,528,528,528,528,61443,57893,57893,57893,57893,57893,58773,914,57893,57893,58778,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,2588,2999,0,0,0,58831,57893,57893,57893,57893,58836,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58811,58813,57893,57893,57893,57893,58873,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60380,57916,58900,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58928,57916,57916,58915,57916,57916,57916,57916,57916,57916,57916,58924,57916,57916,58926,57916,57916,57916,57916,57916,59980,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61530,57916,57916,57943,57943,57916,58931,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58950,57916,57916,57916,58956,57916,57916,57916,57916,0,58831,57943,57943,58967,57943,57943,57943,57943,57943,57943,60464,57943,57943,57943,57943,57943,57943,57943,57943,60470,57943,57943,57943,57943,59018,57943,57943,59020,57943,57943,57943,57943,59026,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2778,1963,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,901,0,0,2293,0,2294,0,0,0,0,0,2297,0,0,0,0,0,0,316,317,318,319,320,321,322,323,324,325,57893,59862,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60650,57893,59878,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58816,57893,59947,57916,57916,57916,57916,59951,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,61475,60015,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,61133,57943,60030,57943,57943,57943,57943,60034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60723,57943,57943,57943,60098,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,1729,0,0,0,0,2844,0,0,0,0,0,2849,0,0,0,0,0,0,0,1852,0,0,0,0,0,0,0,1859,0,57916,57916,57916,60347,57916,60348,57916,57916,57916,57916,57916,57916,57916,57916,57916,58385,57916,57916,57916,57916,58403,57916,0,0,3205,0,0,0,0,0,0,0,0,0,0,0,0,0,2374,0,0,528,528,528,528,3253,528,528,528,528,528,528,528,528,528,528,528,528,1926,528,528,528,57916,60688,57916,57916,57916,57916,57916,57916,57916,60694,57916,57916,57916,57916,57916,57916,58906,58908,57916,57916,57916,57916,57916,57916,57916,57916,59451,57916,57916,57916,57916,57916,57916,57916,57916,59498,57916,57916,57916,57916,57916,57916,57916,57916,60672,57916,57916,57916,57916,57916,57916,57916,57943,57943,60737,57943,57943,57943,57943,57943,57943,57943,60743,57943,57943,57943,57943,57943,57943,57943,61339,57943,57943,57943,528,57893,0,0,0,0,0,0,3671,0,0,0,0,0,0,0,0,0,0,0,0,665,0,0,668,57916,61126,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60961,57943,57916,57916,57916,61239,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60959,57943,57943,57943,57943,61258,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,2776,2777,0,528,528,528,528,4018,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58280,57893,57893,57893,57893,57893,57893,57893,57893,61377,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,61223,57916,57916,57916,57916,57916,57916,61393,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60025,57943,57943,57943,57943,57943,57943,57943,61409,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,4241,0,4243,528,528,528,528,528,4094,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59372,57893,57893,57893,61451,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61318,57916,57916,57916,61465,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,61244,57943,57943,57943,57943,57943,57943,61479,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1865,1866,0,0,0,1869,0,0,0,0,0,328,329,330,331,0,0,0,0,0,0,0,0,0,0,1855,1856,0,1857,1858,0,0,376,0,0,0,0,0,328,376,331,375,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0,0,139264,147456,0,0,450560,0,0,0,331,0,0,0,0,0,0,376,0,0,0,0,0,0,0,0,5210112,0,5365760,0,5554176,5570560,5578752,0,462,475,475,475,488,488,488,488,499,501,488,488,499,488,510,510,510,510,510,525,510,510,510,525,510,510,510,510,510,510,533,57899,533,57899,533,533,57899,533,533,57922,57899,533,533,57899,57899,57899,57899,57949,57949,57899,57899,57899,57899,57949,57949,57899,533,57899,57899,57922,57899,57899,57899,57899,57899,57899,57899,57922,57922,57899,57899,57949,57899,57899,57899,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,670,671,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,0,689,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,0,0,1163,0,0,0,0,0,0,0,0,0,0,6152192,0,0,0,6316032,0,731,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1292,778,779,0,0,0,0,0,0,0,0,788,0,790,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,3830,0,822,0,0,0,0,0,822,822,825,0,0,0,790,0,0,0,0,0,1235,0,1237,0,0,0,0,1242,0,0,0,0,0,1268,0,0,0,0,0,0,0,0,0,0,3675,0,0,3829,0,0,0,0,834,0,0,0,0,0,0,0,788,0,0,0,834,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,302,0,0,306,1,24578,3,0,0,4366336,0,0,0,0,0,65536,303,0,528,848,528,854,528,528,869,528,528,880,528,885,528,528,894,897,902,528,910,528,57893,57893,57893,58267,57893,58273,57893,57893,58288,57893,57893,58299,57893,58304,57893,57893,58313,58316,58321,57893,58329,57893,0,57916,57916,57916,58343,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58430,57943,57943,57943,57943,57943,59547,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61417,57943,0,0,0,58349,57916,57916,58364,57916,57916,58375,57916,58380,57916,57916,58389,58392,58397,57916,58405,57916,0,0,0,0,58304,57943,57943,57943,58418,57943,58424,57943,57943,58439,57943,1906,528,528,528,528,59349,57893,57893,57893,57893,0,0,0,0,0,3140,0,0,3143,3144,0,0,3147,3148,0,57943,58450,57943,58455,57943,57943,58464,58467,58472,57943,58480,57943,848,528,528,1142,902,528,0,57893,58267,57893,58492,58321,57893,155942,1151,0,0,0,0,0,0,364,365,366,367,0,0,368,0,296,0,0,0,0,1176,0,0,0,0,0,0,0,1183,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,421,0,0,1203,1204,0,0,0,0,1208,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,713,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1244,0,0,0,1248,0,0,1200,0,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,0,726,0,0,0,0,528,1347,528,528,528,528,528,528,1362,528,528,528,1367,528,528,528,528,528,2464,528,528,528,528,528,528,528,528,528,528,528,1910,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58786,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,59944,57916,57916,57893,57893,57893,58801,57893,57893,57893,58806,57893,57893,57893,57893,57893,57893,57893,57893,58809,57893,57893,57893,57893,57893,57893,57893,57893,57893,58854,57893,57893,57893,57893,57893,57893,58865,57893,50676,58773,990,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59537,57943,57943,528,1351,528,1408,528,528,58790,57893,57893,58847,57893,57893,1151,0,57916,57916,57916,58901,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58391,57916,57916,57916,57916,57916,57916,58918,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58396,57916,57916,57916,57916,57916,57916,58933,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58949,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58431,57943,57943,57943,57943,57943,60063,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60428,57943,60430,57943,57943,57943,57943,58975,57943,57943,57943,57943,57943,57943,58990,57943,57943,57943,58995,57943,2280,528,2282,528,528,59629,57893,59631,57893,57893,0,0,0,0,0,0,1298,0,0,0,0,1303,0,0,0,0,59055,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,0,1760,0,0,1763,1764,1765,0,1767,1768,0,0,0,0,1773,0,0,0,0,3192,0,0,0,0,3197,0,0,0,0,0,0,0,2368,2369,0,0,0,0,0,0,0,692,0,0,0,0,0,0,699,368,1807,0,0,0,0,0,0,0,0,1816,1817,0,0,0,0,0,0,373,0,0,0,0,0,0,0,0,0,139264,147456,0,0,352256,0,0,0,1823,0,0,1825,0,0,0,0,0,0,0,0,1829,1830,1831,0,1870,0,0,0,1888,1740,1740,1890,528,1892,528,1893,1894,528,1896,528,528,528,1900,528,528,528,528,528,528,528,528,528,1913,528,528,0,0,0,0,0,0,57893,60278,57893,57893,57893,57893,57893,57893,0,2592,57916,57916,57916,57916,57916,57916,57916,57916,59969,57916,57916,57916,57916,57916,57916,59974,57916,528,528,1917,528,528,528,528,1921,528,1923,528,528,528,528,528,528,1393,528,1395,528,528,528,528,528,528,528,872,528,528,528,528,528,528,528,528,528,3710,528,528,528,528,528,528,528,528,528,528,1933,1934,1936,528,528,528,528,528,528,528,1944,1945,528,1947,528,528,1950,1951,528,528,528,528,528,528,528,1959,528,1961,528,1964,528,528,528,528,528,1971,528,528,1973,528,528,528,528,528,528,3855,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58279,57893,57893,57893,57893,57893,528,528,528,528,58773,0,59332,57893,59334,57893,59335,57893,59337,57893,59339,57893,302,306,0,0,0,0,3141,0,0,0,3145,0,0,0,0,0,0,2832,0,0,0,0,0,0,0,0,0,2835,0,0,0,0,0,0,57893,57893,59343,57893,57893,57893,57893,57893,57893,57893,57893,57893,59356,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,59942,57916,57916,57916,57916,57916,59515,57916,57916,59517,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,58966,57943,57943,58970,57943,57893,59360,57893,57893,57893,57893,59364,57893,59366,57893,57893,57893,57893,57893,57893,57893,58839,57893,57893,58846,57893,57893,57893,57893,57893,57893,57893,57893,59376,59377,59379,57893,57893,57893,57893,57893,57893,57893,59387,59388,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,0,0,0,0,770,0,0,0,0,0,59390,57893,57893,59393,59394,57893,57893,57893,57893,57893,57893,57893,59402,57893,59404,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,2775,0,0,0,0,0,784,0,0,679,0,0,0,0,0,0,0,660,661,0,0,0,0,0,0,0,384,0,139264,147456,0,406,0,0,406,59407,57893,57893,57893,57893,57893,59415,57893,57893,59417,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,60660,57916,57916,57916,57916,59443,57916,57916,57916,57916,57916,57916,57916,57916,57916,59456,57916,57916,57916,57916,57916,58878,57916,57916,57916,58882,57916,57916,58893,57916,57916,58897,59460,57916,57916,57916,57916,59464,57916,59466,57916,57916,57916,57916,57916,57916,57916,57916,59467,59468,57916,57916,57916,57916,57916,57916,57916,57916,59476,59477,59479,57916,57916,57916,57916,57916,57916,57916,59487,59488,57916,59490,57916,57916,59493,59494,57916,57916,57916,57916,57916,57916,57916,59502,57916,59504,57916,59507,57943,57943,57943,59560,57943,59562,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60987,57943,57943,57943,59572,59573,59575,57943,57943,57943,57943,57943,57943,57943,59583,59584,57943,57943,59586,57943,57943,57943,57943,57943,60731,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60081,57943,57943,57943,57943,57943,59589,59590,57943,57943,57943,57943,57943,57943,57943,59598,57943,59600,57943,59603,57943,57943,57943,57943,57943,60739,57943,57943,57943,60742,57943,60744,57943,57943,57943,57943,57943,57943,60740,57943,57943,57943,57943,57943,57943,57943,57943,57943,59023,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59611,57943,57943,59613,57943,57943,57943,57943,57943,57943,57943,57943,57943,60039,57943,57943,57943,57943,57943,57943,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,2301,0,0,2304,2305,0,0,0,2309,0,0,0,0,0,0,0,0,0,6406144,5357568,0,5505024,0,0,0,0,2352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1276,0,1825,0,2365,0,0,0,0,0,0,0,0,2372,0,0,2375,0,0,0,0,3217,528,528,528,528,528,528,528,528,528,528,528,528,2929,528,528,528,0,2378,0,0,0,0,0,0,2385,0,2387,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,332,333,0,0,0,0,0,0,0,0,334,335,336,0,0,0,0,0,0,0,0,2396,0,0,0,0,0,0,0,0,0,0,0,0,697,698,0,368,2406,0,0,0,0,0,0,0,0,0,0,0,0,0,2417,0,0,0,0,3433,0,0,0,0,0,0,0,0,0,0,0,786,0,0,0,528,2433,528,2435,528,528,528,528,528,528,2443,528,2445,528,528,528,528,528,1414,528,528,528,528,528,528,528,528,528,528,1956,528,528,528,528,528,528,528,528,2451,528,528,528,528,528,528,528,528,528,528,528,528,528,2902,528,528,2473,528,528,528,528,528,528,2480,528,528,528,528,528,528,528,528,1906,528,528,528,528,528,528,528,57893,57893,57893,59864,57893,59866,57893,57893,57893,57893,57893,57893,59874,57893,59876,57893,2770,2291,0,2771,2294,0,0,2773,0,0,0,0,0,0,0,0,2359296,418,418,0,0,0,0,0,57893,57893,59904,59905,57893,57893,57893,57893,57893,57893,59912,57893,57893,57893,57893,57893,57893,60885,57893,60887,57893,57893,57893,57893,57893,57893,57893,59397,57893,57893,59400,57893,57893,57893,57893,57893,59930,59931,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,58910,57916,57916,57916,57916,57916,57916,59963,57916,59965,57916,57916,57916,57916,57916,57916,57916,59971,57916,57916,57916,57916,57916,57916,60914,57916,57916,57916,57916,57916,60918,57916,57916,57916,57916,60016,57916,57916,60019,60020,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,4239,0,0,0,0,528,60046,57943,60048,57943,57943,57943,57943,57943,57943,57943,60054,57943,57943,57943,57943,57943,57943,58979,58986,57943,57943,57943,57943,57943,57943,57943,57943,57943,60079,57943,57943,57943,57943,57943,57943,57943,60099,57943,57943,60102,60103,57943,2435,528,2762,528,528,59866,57893,60111,57893,57893,57893,57893,57893,61083,57893,57893,57893,57893,57893,57893,57893,57893,61089,57893,57893,57893,57893,57893,61219,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,1272,57893,57943,57943,57943,57943,57943,57943,57943,528,3132,528,528,528,57893,60479,57893,57893,0,0,2829,0,0,0,0,2833,0,0,0,0,0,0,0,0,312,311,0,0,0,311,311,312,2905,528,528,528,528,2909,528,528,528,2914,528,528,528,528,528,528,1920,528,528,528,528,528,528,528,528,528,1908,528,528,528,528,528,528,528,528,2922,528,528,528,528,528,528,528,2927,528,528,528,528,528,528,3940,528,528,528,528,528,528,3946,528,528,60284,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59406,60296,57893,60298,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59403,57893,57893,57893,60324,57893,57893,57893,57893,57893,57893,57893,57893,60332,57893,57893,57893,57893,57893,57893,61096,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,60703,57916,57916,57943,57943,57943,57943,57943,57943,57943,58466,57943,57943,57943,57943,528,528,528,896,57893,57893,57893,60338,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,0,0,1323,0,0,0,0,0,0,0,0,0,0,2836,2837,0,0,0,0,57916,60382,57916,57916,57916,57916,60386,57916,57916,57916,60391,57916,57916,57916,57916,57916,57916,60926,57916,57916,57916,57916,57916,57916,57916,57916,57916,59956,57916,57916,57916,57916,57916,57916,57916,57916,57916,60399,57916,57916,57916,57916,57916,57916,57916,57916,60405,57916,57916,57916,57916,57916,59992,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58925,57916,57916,57916,57916,57916,57943,57943,57943,57943,60447,57943,57943,57943,57943,60451,57943,57943,57943,60456,57943,57943,528,1352,528,528,1717,528,58791,57893,57893,57893,59066,57893,1151,0,0,0,3177,0,0,0,0,0,0,0,0,0,0,0,0,0,2390,0,0,528,528,528,528,3232,528,528,528,528,528,528,528,528,528,528,528,528,1941,528,528,528,528,528,3251,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2892,528,57893,57893,57893,57893,60643,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,3442,3443,0,3444,0,3446,0,0,0,0,3448,0,0,0,0,0,0,737,0,0,0,0,0,0,0,0,0,2360,0,0,0,0,0,2364,3467,0,0,0,0,3472,3473,0,3475,0,0,3478,0,0,0,3481,528,528,528,528,3498,528,528,528,528,528,3504,528,528,528,528,528,528,4020,528,4022,4023,528,4025,528,57893,57893,57893,57893,57893,57893,60882,57893,57893,57893,57893,57893,60888,57893,57893,60891,57893,57893,57893,0,0,0,0,57916,57916,57916,59941,57916,59943,57916,57916,57916,57916,57916,60006,60007,60008,57916,57916,57916,57916,57916,57916,57916,57916,58943,57916,57916,58947,57916,57916,57916,57916,57916,57916,57916,57916,60924,57916,57916,57916,57916,57916,60930,57916,57916,60933,57916,57916,57893,57943,57943,57943,57943,57943,59532,57943,57943,57943,57943,57943,59538,57943,60991,57943,528,528,3650,57893,57893,60997,0,0,0,0,0,0,3659,0,0,0,0,3445,0,0,0,0,0,0,0,0,0,0,0,2812,0,0,2815,0,0,3662,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1306,0,3669,0,0,0,0,0,0,0,0,0,0,0,0,3676,0,3678,528,528,528,528,3705,528,528,528,528,528,528,528,528,528,528,528,528,2458,528,528,528,528,528,3715,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2903,528,528,57893,57893,57893,61071,57893,57893,57893,57893,57893,57893,57893,61076,57893,57893,57893,0,0,0,0,57916,57916,59940,57916,57916,57916,57916,57916,57916,59981,57916,57916,57916,57916,57916,57916,57916,57916,57916,59453,57916,57916,57916,57916,57916,57916,57893,57893,57893,57893,61095,57893,57893,57893,57893,57893,57893,57916,57916,57916,61100,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58432,57943,57943,57943,57943,57943,60075,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59048,57943,57943,57943,57943,61134,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61145,3832,0,0,3835,0,0,0,0,0,0,0,0,0,0,0,0,772,0,0,0,57916,57916,61238,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61142,57943,57943,57943,3924,0,3675,0,0,0,0,0,3932,0,0,0,0,0,0,0,312,0,0,0,0,0,311,0,311,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61301,57893,57893,57893,57893,57893,59363,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60315,57893,57893,57893,57893,60319,57893,57893,57943,61333,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,1736,0,0,0,0,0,0,0,0,0,0,2334720,0,2334720,0,0,0,0,0,0,4079,0,0,0,0,0,0,0,528,528,528,528,528,528,528,4157,528,4159,528,528,4091,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61448,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,61317,57916,61462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60028,57943,61476,57943,57943,57943,57943,57943,57943,57943,57943,57943,4141,4142,0,0,0,4145,528,528,61507,61508,61509,57893,57893,57893,61512,57893,61514,57893,57893,57893,57893,61519,61520,61521,61522,57916,57916,57916,61525,57916,61527,57916,57916,57916,57916,61532,61533,61534,61535,57943,57943,57943,61538,57943,61540,57943,57943,57943,57943,61545,0,0,0,0,0,0,3194,0,0,0,3198,0,3200,0,0,0,528,4245,528,528,528,4249,57893,57893,61595,57893,57893,57893,61599,57893,57916,57916,57893,57943,59529,57943,57943,57943,57943,57943,57943,57943,59536,57943,57943,57943,57943,57943,59040,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,3412,528,57893,60759,57893,61601,57916,57916,57916,61605,57916,57943,57943,61607,57943,57943,57943,61611,57943,0,0,0,0,0,2342912,0,0,0,0,0,0,0,0,0,4358144,4359058,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6275072,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,413,0,0,0,0,0,0,413,139264,147456,0,0,0,422,0,0,0,0,3456,0,0,0,0,0,0,0,0,0,0,0,749,0,0,0,0,372,372,0,430,131072,372,430,430,0,333,372,430,0,0,430,456,430,0,0,0,430,495,495,495,500,495,495,495,500,495,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,534,57900,534,57900,534,534,57900,534,534,57923,57900,534,534,57900,57900,57900,57900,57950,57950,57900,57900,57900,57900,57950,57950,57900,534,57900,57900,57923,57900,57900,57900,57900,57900,57900,57900,57923,57923,57900,57900,57950,57900,57900,57900,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,841,528,528,528,528,528,528,873,528,528,528,528,528,528,528,528,1939,528,528,528,528,528,528,528,0,0,1175,0,0,0,0,0,0,0,0,0,0,0,0,0,2416,0,0,0,0,0,1296,0,1175,0,0,0,0,0,0,0,0,0,0,2371,0,0,0,0,0,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,58784,57893,57893,57893,57893,57893,57893,61210,57893,57893,57893,57893,57893,57893,57893,57893,57893,60626,57893,57893,60629,57893,57893,57893,58796,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59424,57943,58973,57943,57943,57943,57943,57943,58985,57943,57943,57943,57943,57943,57943,57943,57943,57943,60053,57943,57943,57943,57943,57943,57943,0,1873,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1743,1744,57943,60460,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60726,57943,61135,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61257,528,528,528,61636,57893,57893,57893,61638,57916,57916,57916,61640,57943,57943,57943,0,0,0,0,3471,0,0,0,0,0,0,0,0,0,0,0,1868,0,0,0,0,0,0,0,431,131072,0,431,431,0,0,0,431,446,0,431,0,0,0,0,3663,0,0,0,0,0,0,0,0,0,0,0,1289,0,0,0,0,431,476,476,476,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,535,57901,535,57901,535,535,57901,535,535,57924,57901,535,535,57901,57901,57901,57901,57951,57951,57901,57901,57901,57901,57951,57951,57901,535,57901,57901,57924,57901,57901,57901,57901,57901,57901,57901,57924,57924,57901,57901,57951,57901,57901,57901,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59353,57893,57893,57893,57893,57893,0,0,0,2327,0,0,0,0,0,0,0,0,0,0,0,0,773,0,0,776,2351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1774,57893,57893,59892,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59900,57893,57893,0,0,0,2805,0,0,0,0,0,0,0,0,0,0,0,0,800,0,0,528,3175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1790,0,0,3431,0,0,0,0,0,3437,0,0,0,0,0,0,0,331,0,139264,147456,0,0,0,0,0,3482,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1372,57893,57893,57893,57893,60883,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60893,60908,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60396,60935,57916,57916,57916,57916,57916,57916,57916,57916,57916,60944,57916,57916,60947,57916,57916,57893,59528,57943,59530,57943,59531,57943,59533,57943,59535,57943,57943,57943,59539,57916,60950,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59012,57943,57943,60977,57943,57943,57943,57943,57943,57943,57943,57943,57943,60986,57943,57943,60989,57943,57943,57943,57943,57943,60966,57943,57943,57943,57943,57943,60972,57943,57943,60975,57943,57943,57943,57943,57943,60750,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,3660,528,528,528,528,3716,528,3718,528,528,528,528,528,528,528,528,528,528,3491,528,528,528,528,528,528,57893,57893,61070,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59385,57893,57893,57893,57893,57893,57893,57893,61082,57893,57893,57893,57893,57893,57893,57893,57893,61088,57893,61090,57943,61146,57943,61148,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,528,528,528,528,3854,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58277,57893,57893,58293,57893,57893,61216,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61229,57916,57916,57916,57916,57916,57916,57916,57916,57916,61235,57916,57916,57916,57916,57916,61467,57916,57916,61469,57916,57943,57943,57943,57943,57943,57943,57943,60449,57943,57943,60453,57943,57943,57943,57943,57943,61248,57943,57943,57943,57943,57943,57943,57943,57943,57943,61254,57943,57943,57943,57943,57943,57943,58980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60734,57943,57943,57943,57943,57943,57916,61625,61626,57916,57916,57943,57943,61629,61630,57943,57943,0,0,0,0,528,528,528,528,4275,528,57893,57893,57893,57893,61623,57893,57916,0,761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1789,0,761,0,0,0,0,0,761,761,0,0,828,0,0,0,0,0,0,738,0,644,738,0,742,743,644,0,0,528,528,852,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2919,528,528,528,528,911,57893,57893,57893,57893,58271,57893,57893,57893,57893,57893,57893,57893,58862,57893,57893,57893,50676,58773,990,57916,58871,58406,0,0,0,0,57893,57943,57943,57943,57943,58422,57943,57943,57943,57943,57943,57943,58981,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60985,57943,57943,57943,57943,57943,528,911,0,58271,57893,57893,57893,57893,58330,155942,1151,0,0,0,0,0,0,751,0,0,0,0,0,0,0,0,0,139264,147456,0,0,319,0,0,0,1279,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2337,0,57943,59035,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59028,57943,528,528,528,1983,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59418,57893,57893,57893,57893,57893,57893,57893,59427,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60377,57916,57916,57916,57916,59527,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60746,57943,59623,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3142,0,0,0,0,0,0,0,752,0,0,0,0,0,0,758,0,59861,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59889,57916,57916,57916,57916,59950,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60675,57916,57916,60678,57943,57943,57943,57943,60033,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60042,57943,57943,57943,3812,528,57893,61158,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,386,57916,57916,57916,57916,61240,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61255,57943,57943,57943,57943,61259,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3146,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,334,385,387,0,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,0,3672,0,0,0,0,0,0,0,0,0,0,0,1786,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,334,0,0,139264,147456,0,0,0,0,0,425,425,0,0,131072,425,0,0,0,0,425,0,447,0,0,425,335,477,477,477,490,490,490,490,490,490,490,490,490,490,511,519,519,519,519,519,526,519,519,519,526,519,519,519,519,519,519,536,57902,536,57902,536,536,57902,536,536,57925,57902,536,536,57902,57902,57902,57902,57952,57952,57902,57902,57902,57902,57952,57952,57902,536,57902,57902,57925,57902,57902,57902,57902,57902,57902,57902,57925,57925,57902,57902,57952,57902,57902,57902,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,780,0,0,0,0,0,0,0,0,0,0,0,0,0,2789,2790,0,0,795,0,0,0,0,0,0,0,799,0,0,0,0,0,0,0,2330,0,0,0,0,0,0,0,0,1238,0,0,0,0,0,0,0,819,0,0,0,0,0,819,819,0,0,0,0,799,0,0,0,0,0,1750,0,0,0,0,0,0,0,0,0,0,2850,0,0,0,0,0,0,0,0,835,795,0,0,835,0,0,0,0,0,0,0,528,528,528,4154,528,528,528,528,528,528,528,3234,528,528,528,528,528,528,528,528,528,3942,528,528,528,528,528,528,528,528,528,855,528,864,528,528,528,528,528,528,528,528,528,528,528,3944,528,528,528,528,528,528,528,912,57893,57893,57893,57893,57893,58274,57893,58283,57893,57893,57893,57893,57893,59395,59396,57893,57893,57893,57893,57893,57893,57893,57893,57893,59897,57893,57893,57893,57893,57893,57893,58350,57916,58359,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58401,57916,57916,58407,0,0,0,0,57893,57943,57943,57943,57943,57943,58425,57943,58434,57943,57943,528,1354,528,528,528,528,58793,57893,57893,57893,57893,57893,1151,0,1143,912,0,57893,57893,57893,57893,58493,58331,155942,1151,0,0,0,0,0,0,790,0,802,0,816,0,0,0,0,810,1246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1821,0,0,0,1308,0,0,0,0,0,0,0,0,1313,0,0,0,0,0,1796,0,0,0,0,0,0,0,0,0,0,1211,368,368,0,0,1214,528,528,528,1350,528,528,528,528,528,528,528,528,528,1369,528,528,0,0,0,2933,0,1986,57893,57893,57893,57893,57893,57893,57893,57893,59884,57893,57893,57893,57893,57893,57893,57893,528,1409,528,528,1413,528,528,528,528,528,1420,528,528,528,1427,528,528,0,57893,57893,57893,58315,57893,57893,155942,1151,0,0,0,0,0,0,0,6324224,4358144,4358144,5005312,4358144,4358144,4358144,512e4,5136384,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6119424,4358144,6168576,4358144,4358144,4358144,4358144,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58789,57893,57893,57893,57893,57893,61379,57893,61381,61382,57893,61384,57893,61386,57916,57916,57916,57916,57916,60385,57916,57916,57916,57916,57916,57916,60393,57916,57916,57916,57916,57916,60691,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59484,57916,57916,57916,57916,57916,57893,57893,58818,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59914,57893,57893,57916,58954,57916,57916,57916,58961,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61140,57943,57943,57943,57943,57943,57943,57943,57943,60969,57943,60971,57943,57943,57943,57943,57943,57943,57943,57943,59038,57943,57943,59042,57943,57943,57943,57943,57943,59049,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,3923,59056,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,4003,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,1345,1844,1845,0,1847,0,0,0,0,0,0,0,0,0,0,0,0,806,0,0,0,0,1861,0,1863,0,0,0,0,0,0,0,0,0,0,0,0,839,0,0,528,0,0,0,1875,0,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,0,0,1861,0,0,0,0,0,528,528,528,528,528,528,528,528,3223,528,528,528,528,528,528,1949,528,528,528,528,528,528,528,528,1958,528,528,528,528,528,2478,528,528,528,528,528,528,528,528,528,528,1421,528,528,528,528,528,528,528,528,1967,528,528,528,528,528,528,528,528,528,528,1977,1979,57893,57893,59392,57893,57893,57893,57893,57893,57893,57893,57893,59401,57893,57893,57893,57893,57893,59414,57893,57893,57893,57893,57893,57893,59420,57893,57893,57893,57893,57893,59410,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59421,59423,57893,57893,57893,57893,57893,61453,57893,57893,61455,57893,57916,57916,57916,57916,57916,57916,59482,57916,57916,57916,57916,57916,57916,57916,57916,57916,59983,57916,57916,57916,57916,57916,57916,57916,59492,57916,57916,57916,57916,57916,57916,57916,57916,59501,57916,57916,57916,57916,57916,57916,60940,60942,57916,57916,57916,57916,60946,57916,60948,60949,57916,59510,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59521,59523,57916,57916,57916,57916,57916,61570,57916,61571,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,60416,57943,57943,57943,59588,57943,57943,57943,57943,57943,57943,57943,57943,59597,57943,57943,57943,57943,57943,57943,57943,59043,57943,57943,57943,57943,57943,57943,57943,57943,58988,57943,57943,57943,57943,57943,57943,57943,59606,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59617,59619,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,3921,0,0,0,0,0,1812,0,0,0,0,0,0,0,0,0,0,1839,0,0,0,0,0,0,0,2340,0,0,0,0,0,2346,0,0,0,0,0,0,0,372,0,0,0,380,382,0,0,0,0,0,0,2354,0,0,0,0,0,0,0,0,2362,0,0,0,0,0,1835,0,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,2424,528,528,528,528,528,528,528,528,528,528,3722,528,528,528,528,528,528,528,2436,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2930,528,528,528,2463,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3240,3241,0,0,0,57893,57893,57893,57893,57893,57893,59855,57893,57893,57893,57893,57893,57893,0,0,57916,60658,57916,57916,57916,57916,57916,57916,58940,57916,57916,57916,57916,57916,57916,57916,57916,57916,59518,57916,57916,57916,57916,57916,57916,57916,60003,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58951,57916,57916,57916,57916,60018,57916,57916,57916,57943,57943,57943,57943,57943,57943,60027,57943,57943,528,1355,528,528,528,528,58794,57893,57893,57893,57893,57893,1151,0,57943,60086,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59570,57943,57943,57943,57943,60101,57943,57943,57943,2436,528,528,528,528,59867,57893,57893,57893,0,0,0,0,57916,59939,57916,57916,57916,57916,57916,57916,57916,60927,57916,60929,57916,57916,57916,57916,57916,57916,0,2793,0,2795,0,0,0,0,0,0,0,0,2800,0,0,2803,0,0,2818,0,0,0,0,0,0,0,2826,0,0,0,0,2828,0,2842,0,0,2845,0,0,0,0,0,0,0,0,0,0,2855,0,0,528,2869,528,528,528,528,528,528,528,528,528,528,528,528,528,2918,528,528,57893,57893,57893,57893,60327,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61099,57916,57916,60336,57893,57893,57893,60339,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,2772,0,0,0,0,0,0,0,0,2359,0,0,0,0,0,0,0,0,57916,60345,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58894,57916,57916,57943,60433,57943,57943,57943,57943,57943,57943,57943,60438,57943,57943,57943,57943,57943,57943,57943,59549,57943,57943,57943,57943,57943,57943,57943,57943,57943,60067,57943,57943,57943,57943,57943,57943,57943,60444,57943,57943,57943,57943,57943,57943,57943,60452,57943,57943,57943,57943,57943,57943,57943,59595,57943,57943,57943,57943,57943,57943,57943,57943,57943,61543,57943,57943,0,0,0,0,60459,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60468,57943,57943,57943,528,528,57893,57893,0,0,0,3919,0,0,3922,0,0,60471,57943,57943,57943,57943,57943,57943,3131,528,528,528,528,60478,57893,57893,57893,0,0,0,0,59938,57916,57916,57916,57916,57916,57916,57916,59946,3204,0,0,0,3206,0,0,0,0,0,0,0,0,0,0,0,1818,0,0,0,0,528,528,528,528,3244,528,528,528,528,528,528,528,528,528,528,3249,528,528,528,3252,528,3254,528,528,528,528,528,528,528,3258,528,528,0,0,2503,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,59858,57893,57893,57893,60632,57893,57893,57893,57893,60635,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59924,57893,59926,57893,57893,57893,57893,60641,57893,57893,57893,60644,57893,60646,57893,57893,57893,57893,57893,57893,57893,57893,58843,57893,57893,57893,57893,57893,57893,57893,60651,57893,57893,57893,57893,57893,0,0,57916,57916,57916,60659,57916,57916,57916,57916,57916,58905,57916,58907,57916,57916,57916,57916,57916,57916,57916,57916,60362,57916,57916,57916,57916,57916,57916,57916,57916,60664,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59458,57916,57916,57916,60680,60681,57916,57916,57916,57916,60684,57916,57916,57916,57916,57916,57916,57916,57943,60022,57943,57943,57943,57943,57943,57943,57943,57943,61153,57943,57943,57943,57943,57943,57943,528,57916,57916,57916,57916,60690,57916,57916,57916,60693,57916,60695,57916,57916,57916,57916,57916,57916,61105,57916,57916,57916,57916,57916,57916,57916,57916,57916,58944,57916,57916,57916,57916,57916,58952,57916,57916,57916,60700,57916,57916,57916,57916,57916,57943,57943,57943,60708,57943,57943,57943,528,528,57893,57893,3918,0,0,0,3920,0,0,0,0,0,0,3695,0,3697,528,528,528,528,528,528,528,1905,528,528,528,528,528,528,528,528,2926,528,528,528,528,528,528,528,57943,57943,60713,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61144,57943,57943,57943,57943,60729,60730,57943,57943,57943,57943,60733,57943,57943,57943,57943,57943,57943,57943,60036,57943,60038,57943,57943,57943,57943,57943,57943,57943,58984,57943,58989,57943,57943,58993,57943,57943,58996,57943,57943,57943,57943,60749,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3417,0,0,3420,3421,0,0,0,0,0,0,0,0,0,0,0,1827,0,0,0,0,528,528,528,528,3486,528,528,528,528,3490,528,528,528,528,528,528,1952,1953,528,528,528,528,528,528,528,528,528,3517,528,528,528,528,528,57893,528,3496,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2931,528,3510,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,61204,57893,57893,57893,60870,57893,57893,57893,57893,60874,57893,57893,57893,57893,57893,57893,57893,58863,58864,57893,57893,50676,58773,990,57916,57916,60880,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59901,57893,60895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58830,57893,57916,57916,57916,57916,60912,57916,57916,57916,57916,60916,57916,57916,57916,57916,57916,57916,58962,0,58963,58964,57943,57943,57943,57943,57943,58971,57916,60922,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59472,57916,57916,57916,60937,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58927,57916,58929,57916,57943,57943,57943,57943,60954,57943,57943,57943,57943,60958,57943,57943,57943,57943,57943,57943,58982,57943,57943,57943,57943,58992,57943,57943,57943,57943,57943,57943,60964,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61256,57943,57943,57943,57943,60979,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60974,57943,60976,528,528,57893,57893,57893,0,0,0,0,3819,0,0,0,0,0,3822,0,528,528,528,528,528,528,3844,528,528,528,528,528,528,528,528,2481,528,528,528,528,528,2485,2486,57893,57893,61206,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59927,57893,57893,57893,57893,61217,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61225,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,3934,0,0,0,0,4080,0,0,0,0,0,0,528,528,528,528,528,528,4211,528,4212,528,528,528,57893,57893,57893,57893,57893,57893,61562,57893,61563,57893,57893,57893,57893,57916,57943,4313,4314,61659,61660,61661,0,528,57893,57916,57943,0,0,0,0,0,2382,0,0,0,0,0,0,0,0,0,0,4284416,0,0,0,0,0,57943,57943,61578,57943,61579,57943,57943,57943,57943,0,0,0,0,0,0,528,528,4273,4274,528,528,57893,57893,61621,61622,57893,57893,57916,0,528,528,57893,57893,57916,57916,57943,57943,4303,4304,61649,61650,61651,0,528,528,528,528,528,528,528,528,528,2428,528,528,528,528,528,528,4096,528,528,4098,57893,57893,57893,57893,57893,57893,58861,57893,57893,57893,57893,50676,58773,990,57916,57916,537,57903,537,57903,537,537,57903,537,537,57926,57903,537,537,57903,57903,57903,57903,57953,57953,57903,57903,57903,57903,57953,57953,57903,537,57903,57903,57926,57903,57903,57903,57903,57903,57903,57903,57926,57926,57903,57903,57953,57903,57903,57903,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57893,57893,58833,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60649,57893,57893,57916,59948,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59489,57916,57943,60031,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60044,57943,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2404,0,0,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2854,0,0,0,406,0,0,0,0,0,0,0,0,0,0,0,0,406,0,0,0,432,131072,0,432,432,0,0,0,432,0,452,432,0,0,0,0,4206,0,528,528,528,528,528,528,528,528,528,528,528,528,2430,528,528,432,478,478,478,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,538,57904,538,57904,538,538,57904,538,538,57927,57904,538,538,57904,57904,57904,57904,57954,57954,57904,57904,57904,57904,57954,57954,57904,538,57904,57904,57927,57904,57904,57904,57904,57904,57904,57904,57927,57927,57904,57904,57954,57904,57904,57904,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,661,0,661,0,0,0,0,826,0,0,0,661,0,0,0,0,0,5218304,0,0,0,0,5799936,0,5881856,0,0,0,0,0,0,5029888,5038080,0,0,5103616,5201920,0,0,0,0,0,0,1878,0,0,0,0,0,0,0,0,0,2296,0,0,0,0,0,0,842,528,528,528,857,528,528,528,528,528,528,528,528,528,528,898,528,528,528,528,57893,57893,58260,57893,57893,57893,58276,57893,57893,57893,57893,57893,57893,61220,57893,57893,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,59022,57943,59024,57943,57943,57943,57943,57943,57916,58352,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58393,57916,57916,57916,57916,57916,60913,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61471,57943,57943,57943,57943,57943,1160,0,0,0,0,0,0,0,0,0,1167,1168,0,0,0,0,0,0,1299,0,0,0,0,0,0,0,0,528,528,1340,528,528,528,528,528,0,0,0,1249,0,0,0,0,0,0,0,0,0,1260,1261,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,2415,0,0,2418,528,528,528,528,1351,1358,528,528,528,528,528,528,528,528,1371,528,528,0,57893,57893,57893,58317,57893,57893,294,1151,0,0,1155,0,0,0,0,0,5857280,0,6463488,4939776,0,0,5455872,0,0,0,0,0,5554176,5570560,5578752,5619712,5668864,0,0,0,5791744,5816320,0,5857280,0,1373,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1406,1408,528,528,528,528,528,528,528,528,528,528,528,1423,528,528,528,528,528,2910,528,528,528,528,528,528,2917,528,528,528,528,528,2490,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,60612,57893,60613,57893,57893,57893,58773,914,57893,58776,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58790,58797,57893,57893,57893,57893,57893,57893,57893,57893,58810,57893,58812,57893,57893,57893,57893,57893,59867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59872,57893,57893,57893,57893,57893,57893,58832,57893,58834,57893,57893,57893,57893,57893,57893,57893,58847,57893,57893,57893,57893,57893,59881,57893,57893,57893,57893,57893,57893,57893,57893,59888,57893,57916,57916,57916,58957,57916,57916,57916,0,57893,57943,58965,57943,57943,57943,57943,57943,57943,59548,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61154,57943,57943,57943,57943,528,58999,57943,59001,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59027,57943,57943,57943,57943,59037,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59052,57943,57943,57943,57943,57943,61139,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60454,57943,57943,57943,57943,1946,528,528,528,528,528,528,528,528,1955,528,528,528,528,528,528,1970,528,528,528,528,528,528,1976,528,528,528,528,1982,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60648,57893,57893,57893,57893,57893,57893,57893,57893,57893,59346,59347,57893,57893,57893,57893,59354,57893,57893,57893,57893,57893,58315,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,60349,57916,57916,57916,57916,60353,57916,57916,57916,57893,59426,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60932,57916,60934,57916,57916,57916,57916,59446,59447,57916,57916,57916,57916,59454,57916,57916,57916,57916,57916,57916,59449,57916,57916,57916,57916,57916,57916,57916,57916,57916,60390,57916,57916,57916,57916,57916,57916,59526,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59051,57943,57943,57943,59542,59543,57943,57943,57943,57943,59550,57943,57943,57943,57943,57943,57943,57943,57943,57943,60425,57943,57943,57943,57943,57943,57943,0,2313,0,0,0,0,0,0,0,0,0,2322,0,0,0,0,0,0,3208,0,0,0,0,0,0,0,0,0,3210,3211,0,0,0,0,0,528,528,528,528,2477,528,528,528,528,528,528,528,2483,528,528,528,528,528,2924,528,528,528,528,528,528,528,528,528,528,528,2496,528,528,528,0,528,528,528,2488,528,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,990,57916,57916,57916,57916,57916,60004,57916,57916,57916,57916,57916,57916,57916,60010,57916,57916,57916,57916,57916,58921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60917,57916,57916,57916,57916,57916,57943,57943,57943,60087,57943,57943,57943,57943,57943,57943,57943,60093,57943,57943,57943,57943,57943,57943,60967,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60040,57943,57943,57943,57943,57943,0,0,0,2782,0,0,0,0,0,0,0,0,0,0,0,0,1169,1170,1171,1172,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1871,528,528,528,3231,528,528,528,528,528,528,528,528,528,528,528,528,528,3248,528,528,528,3262,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,60614,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59441,57893,57893,57893,57893,60622,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61098,57916,57916,57916,57893,57893,57893,57893,60655,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60928,57916,57916,57916,57916,57916,57916,57916,60663,57916,57916,57916,57916,57916,57916,60671,57916,57916,57916,57916,57916,57916,57916,57916,61118,57916,57916,57916,57916,57916,57916,57916,57943,60712,57943,57943,57943,57943,57943,57943,60720,57943,57943,57943,57943,57943,57943,57943,57943,61340,57943,57943,528,57893,0,0,0,57893,57893,57893,61094,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61232,57916,57916,57916,57916,61233,61234,57916,57916,57916,528,528,57893,57893,57893,57893,57893,57893,57893,61513,57893,61515,57893,57893,57893,57893,57893,59894,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58335,57916,57916,528,528,61559,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61567,61624,57916,57916,57916,57916,57943,61628,57943,57943,57943,57943,0,0,0,0,528,4272,528,528,528,528,57893,61620,57893,57893,57893,57893,57916,0,389,341,0,0,0,0,0,0,0,0,0,0,0,0,0,2801,0,0,463,479,479,479,463,463,463,463,463,463,463,463,463,463,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,539,57905,539,57905,539,539,57905,539,539,57928,57905,539,539,57905,57905,57905,57905,57955,57955,57905,57905,57905,57905,57955,57955,57905,539,57905,57905,57928,57905,57905,57905,57905,57905,57905,57905,57928,57928,57905,57905,57955,57905,57905,57905,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3427,0,0,0,662,0,662,0,0,0,0,0,0,0,0,662,0,0,0,0,0,6225920,4358144,5062656,4358144,4358144,4358144,4358144,4358144,6225920,0,6086656,528,528,528,528,858,528,528,874,528,528,528,528,528,528,528,528,2913,528,528,528,528,528,528,528,57916,58353,57916,57916,58369,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61575,57943,57943,57943,0,1189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3451,0,0,1318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3480,0,0,0,1334,0,0,0,0,0,528,528,528,528,528,528,528,528,2876,528,528,528,528,528,528,528,528,528,1352,528,528,528,528,528,528,528,528,528,528,528,528,2469,528,528,528,528,528,528,1391,528,528,528,528,528,528,528,528,528,528,528,528,528,3493,528,528,528,528,1410,528,528,528,528,528,1418,528,528,528,528,528,528,528,1379,528,528,528,528,528,528,528,528,1954,528,528,1957,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58791,57893,57893,57893,58857,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,57943,57943,57943,60412,57943,60413,57943,57943,57943,57943,57943,57943,57943,58471,57943,57943,57943,57943,528,528,528,901,57943,57943,57943,57943,59039,57943,57943,57943,57943,57943,59047,57943,57943,57943,57943,57943,57943,59563,59564,57943,57943,57943,57943,57943,57943,57943,57943,57943,61484,0,0,4143,4144,0,0,0,1727,0,0,0,0,1734,0,0,0,0,0,0,0,0,0,2370,0,0,0,0,0,0,528,1916,528,528,528,528,528,528,528,528,528,528,528,528,1927,528,528,0,57893,57893,57893,58319,57893,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,4358144,59359,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59370,57893,57893,57893,50676,0,57916,59433,57916,57916,57916,57916,57916,57916,57916,59440,57916,57943,57943,57943,59544,57943,57943,57943,57943,57943,57943,57943,57943,57943,59555,57943,57943,528,1714,528,1716,528,528,59063,57893,57893,59065,57893,57893,1151,0,57943,57943,57943,59577,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61143,57943,57943,0,0,2379,2380,0,0,0,0,0,2386,0,0,0,0,0,0,0,2785,0,0,0,0,0,0,0,0,1753,0,0,0,0,0,0,0,528,2474,528,528,528,528,2479,528,528,528,528,528,528,528,528,528,1396,528,528,528,1403,1405,528,2501,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60878,57893,57893,57893,57893,57893,57893,59906,57893,57893,57893,57893,59911,57893,57893,57893,57893,57893,57893,2999,0,57916,57916,57916,57916,57916,57916,57916,57916,57943,61327,57943,57943,61329,57943,57943,57943,57916,59964,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59506,57916,57943,60047,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60070,60071,57916,57916,57916,57916,61115,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58885,58892,57916,57916,57916,0,3925,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,2838,2839,0,3949,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58850,57893,57893,57893,61308,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58886,57916,57916,57916,57916,4001,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,1895,528,528,528,4016,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,61375,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,61461,57916,61391,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61407,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2316,0,0,0,0,0,0,0,0,0,0,3838,0,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61566,57916,0,0,0,0,57893,57943,57943,58410,57943,57943,57943,57943,57943,57943,58443,0,0,0,390,391,393,343,0,0,0,0,0,0,342,0,0,0,343,0,0,0,0,0,0,0,0,0,2787,0,0,0,0,0,0,0,0,0,390,0,0,0,0,0,0,343,0,0,0,390,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,310,0,0,0,0,1749,0,0,0,0,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,480,480,480,480,496,496,496,496,496,496,496,496,496,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,540,57906,540,57906,540,540,57906,540,540,57929,57906,540,540,57906,57906,57906,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57929,57906,57906,57906,57906,57906,57906,57906,57929,57929,57906,57942,57956,57942,57942,57942,57942,57956,57956,57942,57942,57942,57942,57956,57956,57942,540,57906,57906,368,368,0,0,0,0,0,706,0,0,0,0,0,0,0,0,740,0,0,0,0,740,0,746,715,0,717,0,0,0,0,0,0,0,725,0,0,0,0,0,0,804,0,0,0,0,0,0,804,0,528,0,0,813,0,796,0,0,815,0,667,0,792,0,0,0,0,0,836,0,0,0,0,796,663,840,0,528,0,792,815,0,815,813,0,0,0,827,0,0,0,663,830,0,0,0,0,131072,0,0,0,0,0,0,0,444,0,0,0,0,0,690,691,0,0,0,0,696,0,0,0,368,843,528,528,528,859,528,528,875,528,528,528,528,889,528,528,528,528,528,3245,528,528,528,528,528,528,528,528,528,528,528,1398,528,528,528,528,528,907,528,528,57893,57893,58261,57893,57893,57893,58278,57893,57893,58294,57893,57893,57893,50676,0,59432,57916,59434,57916,59435,57916,59437,57916,59439,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,59534,57943,57943,57943,57943,57943,57943,59594,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60467,57943,57943,57943,57943,57943,57893,57893,58308,57893,57893,57893,57893,58326,57893,57893,0,57916,57916,58337,57916,57916,57916,57916,57943,57943,60411,57943,57943,57943,57943,57943,57943,57943,57943,57943,59044,57943,57943,57943,57943,57943,57943,57916,58354,57916,57916,58370,57916,57916,57916,57916,58384,57916,57916,57916,57916,58402,57916,0,0,0,0,57893,57943,57943,58411,57943,57943,57943,58427,57943,57943,57943,57943,57943,59005,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59008,57943,57943,57943,57943,57943,57943,57943,57943,58459,57943,57943,57943,57943,58477,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,1170,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,806,0,0,0,0,787,0,806,0,528,1293,0,0,0,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,0,0,4890624,0,4947968,0,0,0,5046272,0,0,0,0,5185536,0,5234688,5300224,0,0,0,0,1210,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,2343,0,0,0,0,0,2347,0,0,2349,0,0,1333,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1353,528,528,528,528,528,528,528,528,528,528,528,528,2901,528,528,528,528,528,528,1377,528,528,528,528,528,528,528,528,528,528,528,528,528,3724,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58792,0,0,1777,0,0,1780,0,1782,0,0,0,0,0,0,0,0,753,0,0,0,0,0,0,0,0,1833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3667,3668,528,1898,528,528,528,528,528,528,528,528,1909,528,528,528,528,528,868,528,528,528,528,528,887,528,528,528,528,59341,57893,57893,57893,57893,57893,57893,57893,57893,59352,57893,57893,57893,57893,57893,57893,58325,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,59578,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60056,57943,57943,57943,0,2394,0,0,0,0,0,0,0,0,0,0,0,0,0,2405,0,528,528,528,2422,2423,528,528,528,528,528,528,528,528,528,528,1366,528,528,528,528,528,0,0,0,57893,57893,57893,59852,57893,59854,57893,57893,57893,57893,57893,57893,57893,59349,57893,57893,57893,57893,57893,57893,57893,57893,60647,57893,57893,57893,57893,57893,57893,57893,57893,59903,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59405,57893,0,2780,0,0,2783,0,0,0,0,0,0,2788,0,0,0,2791,2792,0,0,0,0,0,0,0,0,0,0,0,0,0,2802,0,0,0,0,131072,0,0,0,0,0,0,0,448,0,0,0,0,0,2307,0,0,0,0,0,0,0,0,0,0,3674,0,0,0,0,0,0,2817,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3677,0,0,0,2843,0,0,0,0,0,0,0,0,2851,0,0,0,0,0,0,3448,0,0,0,0,0,0,0,0,0,1287,1288,0,0,0,0,0,0,2857,0,0,0,0,2860,0,0,0,0,0,0,0,0,0,2862,0,0,0,0,0,0,2868,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,2879,528,528,2882,2883,528,528,528,528,528,2888,528,2890,528,528,528,528,528,3487,528,528,528,528,528,528,528,528,528,528,2468,528,528,528,528,528,528,2894,528,528,528,528,528,528,528,528,528,2900,528,528,528,528,528,1903,1904,528,528,528,528,1911,528,528,528,528,528,1935,528,528,528,1940,528,528,528,528,528,528,2897,528,528,528,528,528,528,528,528,528,528,3858,528,57893,57893,57893,57893,528,528,528,528,2908,528,528,528,528,528,528,2916,528,528,528,528,528,2439,528,528,528,528,2444,528,528,528,528,528,528,61594,57893,57893,57893,57893,57893,57893,57893,61600,57916,528,2921,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1387,528,57893,60297,57893,60299,57893,57893,57893,57893,60303,57893,57893,57893,57893,57893,57893,57893,59382,57893,57893,57893,57893,57893,57893,57893,57893,59398,57893,57893,57893,57893,57893,57893,57893,57893,57893,60309,57893,57893,57893,57893,57893,57893,57893,57893,57893,60318,57893,57893,57893,0,0,0,2593,57916,57916,57916,57916,57916,57916,57916,57916,57916,60704,57916,57943,57943,57943,57943,57943,57943,57943,60957,57943,57943,57943,57943,57943,57943,57943,57893,57893,57893,60326,57893,57893,57893,57893,57893,60331,57893,57893,57893,57893,57893,57893,58837,57893,57893,57893,57893,57893,57893,57893,58851,57893,60355,57916,57916,60358,60359,57916,57916,57916,57916,57916,60364,57916,60366,57916,57916,57916,57916,57916,60925,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58884,57916,57916,57916,57916,57916,57916,60370,57916,57916,57916,57916,57916,57916,57916,57916,57916,60376,57916,57916,57916,57916,57916,58960,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,60732,57943,57943,57943,57943,57943,57943,57943,57943,60450,57943,57943,57943,57943,57943,57943,60458,57916,57916,60398,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59505,57916,57916,57943,57943,57943,60420,57943,57943,60423,60424,57943,57943,57943,57943,57943,60429,57943,60431,57943,57943,57943,57943,60435,57943,57943,57943,57943,57943,57943,57943,57943,57943,60441,57943,57943,57943,57943,57943,61150,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3133,528,528,57893,57893,60480,57893,0,0,3161,3162,3163,0,0,0,0,0,0,0,0,0,0,0,2311,0,0,0,0,0,3176,0,0,0,0,0,0,0,3182,0,3184,0,0,0,0,0,0,3458,0,0,0,0,0,0,0,0,0,786,0,0,0,0,0,0,0,0,0,0,0,802,0,807,0,810,3188,0,0,0,0,3193,0,0,3196,0,0,0,0,0,0,0,389,0,139264,147456,0,0,0,0,0,528,528,3263,0,0,60608,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61086,57893,57893,57893,57893,57893,57893,57893,60653,57893,57893,60656,0,0,60657,57916,57916,57916,57916,57916,57916,57916,58880,57916,57916,57916,58889,57916,57916,57916,57916,57916,57916,60689,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59986,57916,57916,57916,57916,60699,57916,57916,60702,57916,57916,60705,60706,57943,57943,57943,57943,57943,57943,57943,60052,57943,57943,57943,57943,57943,57943,60057,57943,60727,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59031,57943,57943,57943,60738,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58994,57943,57943,57943,57943,57943,57943,60748,57943,57943,60751,57943,57943,60754,3411,528,528,60758,57893,57893,57893,50676,2085,57916,57916,57916,57916,57916,59436,57916,57916,57916,57916,57916,57916,60373,57916,57916,57916,57916,57916,57916,57916,60379,57916,3429,0,0,0,0,3434,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,0,0,0,3470,0,0,0,0,0,0,3477,0,0,3479,0,0,0,0,306,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,2852,0,0,0,528,528,3484,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3259,528,3509,528,528,3511,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,61446,57893,57893,60868,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59928,57893,60894,57893,57893,60896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60877,57893,57893,57893,57916,57916,60910,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60012,57916,57916,57916,60936,57916,57916,60938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59485,57916,57916,57916,57916,57916,57943,57943,60952,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59009,57943,57943,57943,57943,57943,60978,57943,57943,60980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60055,57943,57943,57943,60058,3661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,3679,0,0,0,0,0,0,0,0,0,0,0,0,0,3691,0,0,0,0,131072,0,0,0,0,0,0,0,450,0,0,0,0,0,3457,0,0,0,0,3462,0,0,0,0,3466,3702,3703,528,528,528,528,3707,3708,528,528,528,528,528,3712,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59859,57893,57893,528,57893,57893,57893,57893,57893,57893,57893,61073,61074,57893,57893,57893,57893,61078,61079,57916,57916,61102,61103,57916,57916,57916,57916,61107,61108,57916,57916,57916,57916,57916,61112,57943,57943,61136,61137,57943,57943,57943,57943,57943,61141,57943,57943,57943,57943,57943,57943,57943,60436,57943,57943,57943,57943,57943,57943,57943,57943,58476,57943,57943,57943,1139,528,528,528,57943,57943,61147,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,528,57893,57893,57893,0,0,3817,0,0,0,0,0,0,0,0,1165,0,0,0,0,0,0,0,0,0,3834,0,0,0,0,0,0,0,0,0,0,0,0,0,2865,0,0,57916,57916,57916,57916,61230,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59486,57916,57916,57916,57916,57943,61249,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60096,57943,0,0,3675,0,3928,0,0,0,0,0,0,0,0,0,0,0,2361,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61303,57893,57893,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61236,61319,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,57943,61335,57943,57943,57943,57943,57943,57943,57943,528,57893,0,3999,0,0,0,0,131072,0,0,0,0,0,0,0,450560,0,0,0,0,0,372,0,0,0,0,0,0,0,0,0,0,2333,0,0,0,0,2338,0,4002,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,1341,528,528,528,528,4014,528,528,528,528,4019,528,528,528,528,4024,528,528,57893,57893,61373,57893,57893,57893,57893,61378,57893,57893,57893,57893,61383,57893,57893,57893,57916,57916,61389,57916,57916,57916,57916,61394,57916,57916,57916,57916,61399,57916,57916,57916,57943,57943,61405,57943,57943,57943,57943,61410,57943,57943,57943,57943,61415,57943,57943,57943,0,0,0,0,0,2366,0,0,0,0,0,0,0,0,0,0,352256,0,352256,0,0,0,0,0,0,4078,0,0,4081,0,0,0,0,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,528,528,4246,4247,528,528,57893,57893,57893,61596,61597,57893,57893,57893,57916,57916,57916,57916,57943,60410,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58481,528,852,528,528,57916,61602,61603,57916,57916,57916,57943,57943,57943,61608,61609,57943,57943,57943,0,0,0,0,306,306,306,306,306,306,306,306,306,306,306,306,306,0,306,0,0,0,0,345,346,347,348,349,0,0,0,0,0,0,0,0,1181,0,0,0,0,0,0,0,0,0,349,348,131072,347,348,348,0,349,347,348,0,347,348,457,464,481,481,481,492,492,492,498,492,492,498,498,492,498,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,541,57907,541,57907,541,541,57907,541,541,57930,57907,541,541,57907,57907,57907,57907,57957,57957,57907,57907,57907,57907,57957,57957,57907,541,57907,57907,57930,57907,57907,57907,57907,57907,57907,57907,57930,57930,57907,57907,57957,57907,57907,57907,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,656,657,0,0,0,0,0,0,0,0,0,0,0,2388,0,0,0,0,0,0,0,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,307,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,352256,0,0,0,0,0,0,0,716,0,0,719,0,721,0,723,0,0,0,0,0,0,0,394,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,0,3172,0,0,0,0,0,763,764,0,766,767,675,0,0,0,0,0,0,0,395,0,0,0,0,0,0,0,0,2319,0,0,0,0,0,0,0,0,0,0,782,783,0,785,0,0,0,0,764,0,0,791,0,0,0,0,131072,0,0,0,0,0,245760,0,0,0,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,3171,0,0,0,0,692,0,0,0,764,0,0,0,0,0,0,0,0,757,821,0,0,0,757,0,0,824,699,0,0,0,829,0,0,0,831,0,0,0,692,699,0,0,692,829,829,0,0,0,0,0,528,528,528,528,528,528,2874,528,528,528,528,528,528,528,3489,528,528,528,528,528,528,528,528,3256,528,528,528,528,528,528,528,528,849,853,856,528,865,528,528,528,881,883,886,528,528,528,899,903,528,528,528,57893,57893,57893,58268,58272,58275,57893,58284,57893,57893,57893,58300,58302,58305,57893,57893,57893,58318,58322,57893,57893,57893,0,57916,57916,57916,58344,58348,58351,57916,58360,57916,57916,57916,58376,58378,58381,57916,57916,57916,58394,58398,57916,57916,57916,57916,58367,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59999,57916,57916,57916,57916,0,0,0,0,58409,57943,57943,57943,58419,58423,58426,57943,58435,57943,57943,528,3649,528,57893,60996,57893,0,0,0,0,0,0,0,0,1254,0,0,0,0,0,0,0,57943,58451,58453,58456,57943,57943,57943,58469,58473,57943,57943,57943,849,1140,528,899,903,1144,0,58489,58268,57893,58318,58322,58494,155942,1151,0,0,0,0,0,0,1179,0,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,1278,0,0,0,0,1283,0,0,0,0,0,0,0,0,0,0,3675,0,3828,0,0,0,0,0,0,1321,0,0,0,0,0,0,0,0,0,0,0,0,1198,0,0,0,528,1375,528,528,528,1378,528,528,528,528,528,528,528,1385,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,60282,57893,1389,528,528,528,528,528,528,528,528,528,528,528,1400,528,528,1407,58817,57893,57893,57893,57893,57893,57893,57893,58824,57893,57893,58828,57893,57893,57893,57893,57893,59895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59898,59899,57893,57893,57893,57893,57916,57916,57916,58934,57916,57916,58941,57916,57916,57916,57916,57916,57916,57916,57916,57916,59984,57916,57916,57916,57916,57916,57916,57916,58955,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61542,57943,57943,57943,0,4202,0,0,57943,57943,57943,59003,57943,57943,57943,59006,57943,57943,57943,57943,57943,57943,57943,59013,57943,57943,59017,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59029,57943,57943,57943,57943,57943,61337,57943,57943,57943,61341,57943,528,57893,0,0,0,0,3139,0,0,0,0,0,0,0,0,0,3149,57943,59036,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59050,57943,57943,57943,57943,57943,59019,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58482,528,528,528,528,1822,0,1824,0,0,0,1826,0,746,0,0,0,0,0,0,0,399,0,0,404,0,0,0,0,0,1872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2350,0,1757,0,0,0,0,0,0,528,1891,528,528,528,528,528,528,2440,528,528,528,528,528,528,528,528,528,528,2495,528,528,528,528,0,1897,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1428,528,528,528,528,1919,528,528,528,528,528,528,528,528,528,528,1928,528,528,528,1932,528,528,1937,528,528,528,528,528,528,528,528,528,1419,528,528,528,528,528,528,528,528,528,528,58773,0,57893,59333,57893,57893,57893,57893,57893,57893,57893,59340,57893,57893,57893,59362,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59371,57893,57893,57893,57893,57943,57943,57893,57893,57893,57893,57943,57943,57893,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61075,57893,57893,57893,57893,57893,58821,57893,57893,57893,58825,57893,57893,57893,57893,57893,57893,59348,57893,57893,57893,57893,57893,57893,57893,57893,57893,60875,57893,57893,57893,57893,57893,57893,57893,57893,59375,57893,57893,59380,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61457,57916,57916,57916,57916,57916,57916,57916,59462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59471,57916,57916,57916,57916,58368,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60011,57916,57916,57916,57916,59475,57916,57916,59480,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59972,57916,57916,57916,59975,59558,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59567,57943,57943,57943,59571,57943,57943,59576,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59569,57943,57943,57916,57916,57916,59990,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58948,57916,57916,57916,57943,57943,57943,60073,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59010,57943,57943,57943,2804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2376,57916,60409,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59030,57943,57943,57943,57943,60474,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,0,2291,0,0,3214,0,0,0,528,3218,528,528,528,528,528,528,528,528,528,528,1383,528,528,528,528,1388,3242,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1962,57893,60633,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60335,57893,57916,57916,57916,57916,60682,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59998,57916,57916,57916,57916,0,0,3419,0,0,0,0,0,0,0,0,0,3425,0,0,0,0,0,2410,0,0,0,0,0,0,0,0,0,0,417792,309,310,0,0,0,0,3841,528,528,528,528,528,528,528,3846,528,528,528,528,528,528,2465,528,528,528,528,528,528,528,528,528,528,3943,528,3945,528,528,528,57893,57893,57893,57893,61208,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59369,57893,57893,57893,57893,57916,61227,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59524,57916,0,0,3675,3927,0,0,0,0,0,0,0,0,0,0,0,0,1266,0,0,0,528,528,528,3937,528,528,528,528,3941,528,528,528,528,528,3947,528,528,0,57893,57893,57893,58320,57893,57893,155942,1151,0,0,0,0,0,0,1751,0,0,0,0,0,0,0,0,0,754,0,0,0,0,0,0,528,528,57893,57893,57893,61296,57893,57893,57893,57893,61300,57893,57893,57893,57893,57893,58317,57893,57893,57893,57893,0,57916,57916,58336,57916,57916,61306,57893,57893,57893,57893,57916,57916,57916,61312,57916,57916,57916,57916,61316,57916,57916,57916,57916,58371,58373,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58945,57916,57916,57916,57916,57916,57916,57916,57916,61322,57916,57916,57916,57916,57943,57943,57943,61328,57943,57943,57943,57943,57943,57943,60981,57943,60983,57943,57943,57943,57943,57943,57943,57943,57943,60078,57943,57943,57943,57943,60083,57943,57943,61332,57943,57943,57943,57943,57943,61338,57943,57943,57943,57943,528,57893,0,0,0,0,0,2797,0,0,0,0,0,0,0,0,0,0,1881,0,0,0,0,0,528,528,528,4017,528,528,528,4021,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58281,57893,57893,57893,57893,57893,57893,57893,61376,57893,57893,57893,61380,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,60939,57916,60941,57916,57916,57916,57916,57916,57916,57916,57916,58881,57916,57916,57916,57916,57916,57916,58896,57916,57916,61392,57916,57916,57916,61396,57916,57916,57916,57916,57916,57916,57943,57943,57943,61242,57943,57943,57943,61245,57943,57943,57943,57943,61408,57943,57943,57943,61412,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2821,0,0,0,0,0,0,0,0,0,0,1739,0,0,0,0,0,0,4270,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,61311,57916,57916,61313,57916,57916,57916,57916,57916,57916,59497,57916,57916,59500,57916,57916,57916,57916,57916,57916,57916,61526,57916,61528,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60415,57943,57943,57943,57943,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,4308,4309,61654,61655,61656,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,0,2831,0,0,0,0,0,0,0,0,0,0,1257,0,0,0,0,1262,0,350,0,408,0,0,0,0,0,0,0,0,0,0,408,0,350,0,139264,147456,0,0,0,0,0,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,542,57908,542,57908,542,542,57908,542,542,57931,57908,542,542,57908,57908,57908,57908,57958,57958,57908,57908,57908,57908,57958,57958,57908,623,57908,57974,57931,57908,57908,57908,57908,57908,57908,57908,57931,57931,57908,57908,57958,57908,57908,57908,57974,57974,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,328,0,0,330,0,0,0,0,0,0,2847,2848,0,0,0,0,0,0,0,0,0,5808128,0,0,0,0,4792320,4833280,844,528,528,528,528,528,528,528,528,528,528,528,890,528,528,528,528,528,3499,528,528,528,528,528,528,528,528,528,3508,528,908,528,528,57893,57893,58262,57893,57893,57893,57893,57893,57893,57893,57893,57893,61222,57916,57916,57916,57916,57916,57916,57893,57893,58309,57893,57893,57893,57893,58327,57893,57893,0,57916,57916,58338,57916,57916,57916,57916,58877,57916,57916,57916,57916,58883,57916,57916,57916,57916,57916,57916,59993,59994,57916,57916,57916,57916,57916,57916,60001,57916,57943,57943,57943,57943,58460,57943,57943,57943,57943,58478,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,1173,0,0,0,0,1178,0,0,0,0,0,0,0,0,0,0,2310144,0,368,0,0,0,0,0,1173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2816,528,528,528,528,1354,528,528,528,528,1364,528,528,528,528,528,528,2491,528,2493,528,528,528,528,528,528,0,58773,914,57893,57893,57893,58779,57893,57893,57893,57893,57893,57893,57893,57893,57893,58793,57916,58874,57916,57916,57916,57916,57916,57916,57916,57916,57916,58888,57916,57916,57916,57916,57916,59448,57916,57916,57916,57916,57916,57916,57916,57916,57916,59459,58898,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59961,57916,58914,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59987,59988,58953,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,58968,57943,57943,57943,57943,57943,59041,57943,57943,57943,57943,57943,57943,57943,57943,59053,59054,0,1728,0,0,0,0,1735,0,0,0,0,0,0,0,0,0,3424,0,0,0,0,0,0,0,0,1761,0,0,0,0,0,0,0,0,0,0,0,0,0,3185,0,0,1775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2840,0,0,2353,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,0,0,2449,528,528,528,528,528,528,2454,528,2456,528,528,528,528,528,528,2884,528,528,528,528,528,528,528,528,528,528,2915,528,528,528,528,528,2502,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61387,57916,57916,57893,57893,57893,59880,57893,57893,57893,57893,57893,57893,59885,57893,59887,57893,57893,57893,0,0,2592,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61470,57943,57943,57943,57943,57943,57943,59976,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60013,57916,60059,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59033,528,2906,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1960,528,57916,57916,60383,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60367,57916,57916,0,0,3675,0,0,0,0,3931,0,0,3933,0,0,0,0,0,0,1192,0,0,0,1196,1197,0,0,0,0,528,3936,528,528,3938,528,528,528,528,528,528,528,528,528,528,528,528,3247,528,528,528,528,528,57893,61295,57893,57893,61297,57893,57893,57893,57893,57893,57893,57893,57893,57893,61456,57916,57916,57916,57916,57916,57916,0,0,800,0,800,0,0,0,0,0,0,0,0,800,0,0,0,0,307,307,307,307,307,307,307,307,307,307,307,307,307,0,307,0,528,528,528,528,860,528,528,528,528,528,528,528,528,528,528,528,528,3257,528,528,3260,57916,58355,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60368,57916,1161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3174,528,528,528,528,58773,1987,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59910,57893,57893,57893,57893,57893,57893,57893,57943,57943,60445,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59585,57943,57943,57893,61081,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60639,57893,0,0,0,351,0,0,0,0,0,0,0,0,0,0,0,0,1746,0,0,0,0,0,0,352,0,0,0,0,0,0,0,0,0,0,0,0,1756,1757,0,0,0,0,353,351,131072,0,351,351,0,353,0,351,0,0,351,353,351,0,0,0,351,351,351,351,351,351,351,351,505,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,543,57909,543,57909,543,543,57909,543,543,57932,57909,543,543,57909,57909,57909,57909,57959,57959,57909,57909,57909,57909,57959,57959,57909,543,57909,57909,57932,57909,57909,57909,57909,57909,57909,57909,57932,57932,57909,57909,57959,57909,57909,57909,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,811,812,0,0,0,0,0,0,758,0,0,817,0,0,0,0,0,0,4082,0,0,0,0,528,528,528,528,528,3221,528,3222,528,528,528,528,0,817,0,664,0,0,0,0,0,0,0,0,0,0,0,0,1787,0,0,0,832,0,0,0,0,0,0,812,0,0,0,0,0,0,0,528,528,528,528,528,2873,528,528,528,528,2877,528,528,528,0,2503,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61087,57893,57893,57893,57893,528,850,528,528,528,866,870,528,528,528,528,528,891,893,528,528,0,2932,0,0,0,0,57893,57893,57893,60280,57893,60281,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59473,904,528,528,528,57893,57893,58263,58269,57893,57893,57893,58285,58289,57893,57893,57893,0,2590,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59970,57916,57916,57916,57916,57916,57916,57893,57893,58310,58312,57893,57893,58323,57893,57893,57893,0,57916,57916,58339,58345,57916,0,0,0,0,57893,57943,57943,58412,57943,57943,57943,58429,57943,57943,58445,57916,57916,58361,58365,57916,57916,57916,57916,57916,58386,58388,57916,57916,58399,57916,57916,57916,57916,58904,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60945,57916,57916,57916,57916,57943,57943,57943,57943,58461,58463,57943,57943,58474,57943,57943,57943,850,528,893,528,528,0,58270,58266,58491,58314,57893,57893,155942,1151,0,0,1154,0,0,0,0,0,245760,245760,245760,245760,245760,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,904,528,0,57893,58269,58312,57893,58323,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1772,0,0,0,0,0,1217,0,1219,0,1221,0,0,0,0,0,0,0,0,1286,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3839,0,1332,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,3850,528,528,1374,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2461,528,528,528,1412,528,528,528,528,528,528,528,528,1424,1425,528,528,0,57893,57893,57893,57893,57893,57893,294,1151,0,0,0,0,0,0,0,5480448,4358144,4358144,4358144,4358144,4857856,4874240,4358144,4358144,58773,914,57893,57893,57893,57893,58780,57893,57893,57893,57893,57893,57893,57893,57893,57893,60289,57893,57893,57893,57893,57893,60294,57893,57916,57916,58875,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60378,57916,57916,57916,57916,58932,57916,57916,57916,57916,57916,57916,57916,58946,57916,57916,57916,57916,57916,57916,61241,57943,57943,57943,57943,57943,57943,57943,61246,57943,57916,57916,57916,58958,58959,57916,57916,0,57893,57943,57943,57943,57943,58969,57943,57943,3648,528,528,60995,57893,57893,0,0,0,0,0,0,0,0,1815,0,0,0,0,0,0,0,57943,59e3,59002,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59602,57943,57943,0,1808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,212992,0,528,528,1966,528,528,528,528,528,528,528,528,528,1975,528,528,528,528,528,3513,3515,528,528,528,3518,528,3520,3521,528,57893,528,1981,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,59338,57893,57893,57893,50676,2087,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60674,57916,57916,57916,57916,57893,59409,57893,57893,57893,57893,57893,57893,57893,57893,57893,59419,57893,57893,57893,57893,57893,59907,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58340,57916,57916,59425,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,59438,57916,57916,57916,57916,57916,61116,57916,57916,57916,57916,57916,57916,57916,57916,61124,57916,59509,57916,57916,57916,57916,57916,57916,57916,57916,57916,59519,57916,57916,57916,57916,59525,57943,57943,59559,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59620,57943,57943,2393,0,2395,0,0,0,0,0,0,0,0,0,0,2403,0,0,0,0,343,390,0,0,0,139264,147456,0,0,0,423,0,0,0,2408,2409,0,0,0,0,0,2413,0,0,0,0,0,0,0,3153,0,0,0,0,0,0,0,0,378,0,0,0,0,0,0,0,0,2419,528,528,528,528,528,528,2426,528,528,528,528,528,528,528,1394,528,528,528,528,528,528,528,528,2886,528,528,528,528,528,528,528,528,528,2450,528,528,528,528,528,528,528,528,2457,528,2459,528,2462,528,528,528,2476,528,528,528,528,528,528,528,528,528,528,528,528,528,61371,57893,57893,0,0,0,59849,57893,57893,57893,57893,57893,57893,57893,59857,57893,57893,57893,57893,57893,60301,57893,57893,57893,57893,57893,57893,57893,60306,57893,57893,59890,57893,59893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60304,57893,57893,57893,57893,59902,57893,57893,57893,57893,57893,59908,57893,57893,57893,57893,57893,57893,57893,57893,57893,60330,57893,57893,57893,60333,60334,57893,57893,57916,57916,59977,57916,59979,57916,59982,57916,57916,57916,57916,57916,57916,57916,57916,57916,60363,57916,60365,57916,57916,57916,57916,57916,57916,57916,57916,59991,57916,57916,57916,57916,57916,59997,57916,57916,57916,57916,57916,57916,61606,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,60060,57943,60062,57943,60065,57943,57943,57943,57943,57943,57943,57943,57943,57943,59007,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60074,57943,57943,57943,57943,57943,60080,57943,57943,57943,57943,57943,57943,59612,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,4240,0,0,0,528,0,0,0,2819,0,0,0,0,0,0,0,0,0,0,2827,0,0,0,0,131072,0,0,0,357,0,0,0,0,359,0,0,400,0,0,0,0,0,139264,147456,400,411,0,424,411,2841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3187,528,2880,528,528,528,528,528,2885,528,528,528,528,528,528,528,528,3502,528,528,528,528,528,528,528,57893,57893,57893,60310,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60628,57893,57893,57893,57893,57916,60356,57916,57916,57916,57916,57916,60361,57916,57916,57916,57916,57916,57916,57916,57916,59953,57916,59955,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60421,57943,57943,57943,57943,57943,60426,57943,57943,57943,57943,57943,57943,60064,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59566,57943,57943,57943,57943,57943,57893,60652,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,60661,57916,60662,57916,57916,57916,57916,60701,57916,57916,57916,57916,57943,57943,57943,57943,57943,60710,57943,57943,57943,57943,57943,61481,57943,57943,61483,57943,0,0,0,0,0,0,0,2808,0,0,0,0,0,0,0,0,350,0,0,0,0,0,0,0,60711,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59587,528,3483,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1978,528,60867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59929,57916,60909,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60395,57916,57916,57943,60951,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60069,57943,57943,0,3670,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278528,0,0,0,3675,0,0,0,3930,0,0,0,0,0,0,0,0,0,3476,0,0,0,0,0,0,3935,528,528,528,528,3939,528,528,528,528,528,528,528,528,528,3948,528,528,61294,57893,57893,57893,57893,61298,57893,57893,57893,57893,57893,57893,57893,57893,60342,57893,57893,0,0,0,3e3,0,57893,61307,57893,57893,57893,61310,57916,57916,57916,57916,61314,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,528,528,528,3219,528,528,528,528,528,3224,528,528,57916,57916,57916,57916,61323,57916,57916,57916,61326,57943,57943,57943,57943,61330,57943,57943,57943,57943,57943,60089,60090,60091,57943,57943,57943,57943,57943,57943,57943,57943,57943,59615,57943,57943,57943,57943,59621,57943,4090,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,61447,0,0,0,4149,0,528,528,528,528,528,528,528,528,528,528,528,528,528,3851,528,528,528,528,528,4248,528,57893,57893,57893,57893,57893,61598,57893,57893,57916,57916,57916,57916,58919,57916,57916,58923,57916,57916,57916,57916,57916,57916,57916,57916,61572,61573,57916,57916,57943,57943,57943,57943,57916,57916,57916,61604,57916,57916,57943,57943,57943,57943,57943,61610,57943,57943,0,0,0,0,363,0,0,0,0,139264,147456,0,0,0,0,0,0,1307,0,528,528,1339,528,1342,528,528,528,4269,0,4271,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58413,57943,57943,57943,57943,57943,57943,57943,57943,61582,0,0,0,0,0,0,528,388,0,354,0,0,0,0,0,397,398,0,399,0,0,0,0,0,0,4208,528,528,528,528,528,528,528,528,528,1380,528,528,528,528,528,528,371,379,407,0,0,0,371,0,0,354,0,0,0,371,0,410,412,0,371,399,0,0,371,379,0,139264,147456,399,410,0,0,410,0,0,0,433,131072,0,433,433,443,0,0,433,0,412,433,0,0,0,0,131072,0,0,0,438,0,0,0,0,0,311,0,0,0,0,2796,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,0,465,0,0,0,493,493,493,493,493,493,493,493,493,493,515,515,515,515,515,527,515,515,515,527,515,515,515,515,515,515,544,57910,544,57910,544,544,57910,544,544,57933,57910,544,544,57910,57910,57910,57910,57960,57960,57910,57910,57910,57910,57960,57960,57910,624,57910,57975,57933,57910,57910,57910,57910,57910,57910,57910,57933,57933,57910,57910,57960,57910,57910,57910,57975,57975,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,441,342,0,0,0,453,0,342,343,344,0,0,0,0,0,0,0,0,0,0,0,0,0,2853,0,0,0,306,307,0,0,0,643,0,0,0,0,0,0,0,0,0,3687,0,0,0,0,0,0,669,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3428,845,528,528,528,528,528,528,876,878,528,528,528,528,528,528,528,1415,528,528,528,528,528,528,1426,528,528,528,528,528,57893,57893,58264,57893,57893,57893,57893,57893,57893,58295,58297,57893,57893,57893,57893,58803,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59384,57893,57893,57893,57893,58448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,1725,2291,0,0,0,0,0,1309,1335,1336,0,1309,528,528,528,528,528,528,1344,528,528,528,528,528,3706,528,528,528,528,528,528,528,528,528,528,528,1974,528,528,528,528,528,528,1348,528,528,1359,528,528,1363,528,528,528,528,528,528,528,1416,528,528,528,528,528,528,528,528,3709,528,528,528,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,58783,57893,57893,57893,58787,57893,57893,57893,57893,57893,60623,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58845,57893,57893,57893,57893,57893,58798,57893,57893,58802,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60638,57893,57893,57893,57893,57916,58916,57916,57916,57916,58920,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59469,57916,57916,57916,57916,57916,58972,57943,57943,57943,58976,57943,57943,58987,57943,57943,58991,57943,57943,57943,57943,57943,57943,60076,60077,57943,57943,57943,57943,57943,57943,60084,57943,59014,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59604,1745,1746,0,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,0,0,0,0,1778,0,0,0,0,0,0,0,0,0,0,0,0,1828,0,0,0,1791,0,1793,0,0,0,1797,0,0,0,1801,0,0,0,1805,0,0,0,0,131072,0,0,0,442,0,0,0,449,0,0,0,0,0,2846,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,1980,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60625,57893,57893,57893,57893,57893,57893,57893,57943,57943,57943,57943,59545,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60068,57943,57943,57943,0,0,2314,0,2315,0,0,0,0,0,0,0,0,0,0,0,262738,0,0,0,0,2377,0,0,0,0,0,0,2384,0,0,0,0,0,0,0,0,1326,1327,0,0,1167,0,0,0,0,528,528,2421,528,528,528,528,528,528,528,528,528,528,528,528,888,528,528,528,528,528,528,528,2489,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,60611,57893,57893,57893,57893,57893,57893,59868,57893,57893,57893,57893,57893,57893,57893,57893,57893,58330,0,57916,57916,57916,57916,58347,0,0,0,57893,57893,59851,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60901,57893,57893,57893,57893,57893,57893,57893,60113,0,0,1729,0,0,1736,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,0,0,0,0,2858,0,0,0,0,0,0,0,0,0,2864,0,0,0,0,0,3152,0,0,0,0,0,0,0,0,0,3158,57893,57893,57893,57893,60311,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60890,57893,60892,57893,57893,60323,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60295,60443,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60455,57943,57943,57943,57943,57943,59593,57943,57943,59596,57943,57943,57943,57943,57943,57943,57943,57943,59551,57943,57943,57943,57943,57943,57943,57943,57943,59565,57943,57943,57943,57943,57943,57943,57943,57943,59580,57943,57943,57943,57943,57943,57943,57943,57943,59614,57943,57943,57943,57943,57943,57943,57943,57943,60037,57943,57943,60041,57943,57943,57943,60045,0,0,3190,0,0,0,0,3195,0,0,0,0,0,0,0,0,1783,1784,1785,0,0,0,0,0,3250,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2472,57893,57893,60642,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61385,57893,57916,57916,57916,0,3468,3469,0,0,0,0,3474,0,0,0,0,0,0,0,0,1799,0,0,0,0,0,0,0,0,0,3681,0,0,0,3684,0,0,0,0,0,0,0,0,3692,57893,61092,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,4290,528,3813,57893,57893,61159,3816,0,0,0,0,3820,0,0,0,0,0,0,1236,0,0,0,0,0,0,0,0,0,2799,0,0,0,0,0,0,0,3833,0,0,0,0,3837,0,0,0,0,0,0,0,0,3840,0,528,528,528,3842,528,528,528,3845,528,528,528,528,528,528,528,1938,528,528,528,528,528,528,528,528,3235,528,528,3238,528,528,528,528,57893,57893,57893,61207,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61084,57893,57893,57893,57893,57893,57893,57893,61226,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60407,57916,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61302,57893,61304,57893,57893,57893,57893,58819,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59913,57893,57893,57893,57893,57916,61320,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,4268,0,57943,57943,61334,57943,61336,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,3164,0,0,0,0,3169,0,0,0,0,0,0,1220,0,0,0,0,0,1226,0,1228,0,4146,0,0,0,0,528,528,528,528,528,528,528,528,528,528,4160,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61516,57893,57893,57893,0,2591,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59996,57916,57916,57916,57916,57916,57916,528,528,57893,57893,61560,57893,61561,57893,57893,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58414,58420,57943,57943,57943,58436,58440,57943,57943,57943,57943,57943,61411,57943,61413,61414,57943,61416,57943,61418,0,0,0,0,0,1849,0,0,0,0,0,0,1748,0,0,0,0,0,1864,0,0,0,0,0,0,0,0,0,0,2401,0,0,0,0,0,57916,61568,57916,61569,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,61576,57943,57943,57943,57943,57943,61539,57943,61541,57943,57943,57943,57943,0,0,0,0,0,0,3435,0,0,0,0,0,0,0,0,0,1273,0,0,0,0,0,0,61577,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,528,528,2871,2872,528,528,528,528,528,528,528,528,528,528,3237,528,528,528,528,528,358,359,360,0,0,0,0,0,0,0,0,0,368,0,296,0,0,0,0,131072,0,352256,352256,0,0,0,352256,0,0,352256,0,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,0,482,482,482,0,0,0,0,0,0,0,0,0,0,516,516,520,520,520,520,520,516,520,520,520,516,520,520,520,520,520,520,545,57911,545,57911,545,545,57911,545,545,57934,57911,545,545,57911,57911,57911,57911,57961,57961,57911,57911,57911,57911,57961,57961,57911,625,57911,57976,57934,57911,57911,57911,57911,57911,57911,57911,57934,57934,57911,57911,57961,57911,57911,57911,57976,57976,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,245760,0,0,245760,0,0,245760,0,0,245760,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,516567,516567,516567,0,306,307,0,0,0,0,644,0,0,0,0,0,0,0,0,1837,0,0,0,0,0,0,0,0,0,687,688,0,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,760,0,0,0,0,765,0,0,0,0,0,0,0,0,0,0,4841472,0,0,0,4898816,0,794,0,0,0,0,0,0,0,0,0,0,803,0,808,0,0,0,0,392,0,0,0,396,392,0,0,0,0,0,0,0,2823,0,0,0,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,820,0,0,0,0,0,644,0,0,0,0,0,0,0,3436,0,0,0,0,0,0,0,0,681,0,0,0,0,0,0,680,0,0,794,0,0,0,0,0,0,0,0,644,0,0,794,528,528,528,528,528,3717,528,528,528,528,528,528,528,528,528,528,1381,528,528,528,528,528,846,528,528,528,528,867,871,877,528,882,528,528,528,528,528,900,528,528,528,528,57893,57893,58265,57893,57893,57893,57893,58286,58290,58296,57893,58301,57916,57916,58362,58366,58372,57916,58377,57916,57916,57916,57916,57916,58395,57916,57916,57916,57916,57916,61231,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60686,57916,57916,57916,57916,57916,57943,58452,57943,57943,57943,57943,57943,58470,57943,57943,57943,57943,528,528,528,900,1215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3441,1264,0,0,0,0,0,1269,0,0,0,0,0,1274,0,0,0,0,0,3179,0,0,0,0,0,0,0,0,0,0,679,0,0,0,0,0,0,1294,0,0,1165,0,0,0,1300,0,1302,0,0,0,0,0,0,1284,0,0,0,0,0,0,0,0,0,1301,0,0,0,0,0,0,0,1300,1319,0,1322,0,0,0,1196,0,0,0,0,1330,0,0,1215,1330,1337,528,528,528,528,1343,528,528,528,528,1349,528,528,528,528,528,528,528,528,528,528,1370,528,528,0,57893,57893,57893,57893,57893,57893,155942,0,0,0,0,0,0,0,1285,0,0,0,0,1290,0,0,0,58773,914,58775,57893,57893,57893,57893,57893,58782,57893,57893,57893,57893,58788,57893,57893,57893,57893,57893,60872,57893,57893,57893,57893,57893,60876,57893,57893,57893,57893,57893,58860,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,58917,57916,57916,57916,57916,58922,57916,57916,57916,57916,57916,57916,57916,57916,57916,60403,57916,57916,57916,60406,57916,57916,58930,57916,57916,57916,58937,58939,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59957,57916,57916,57916,57916,57916,57943,57943,57943,57943,58977,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58998,57943,59016,57943,57943,57943,57943,57943,59021,57943,57943,57943,59025,57943,57943,57943,59032,59034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59622,57943,59057,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,385024,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5259264,4358144,4358144,4358144,4358144,0,0,1729,0,0,0,0,1736,0,0,0,0,0,0,0,0,1880,0,0,0,0,0,0,0,0,0,1747,1748,0,0,0,0,0,1754,0,0,0,0,0,0,0,3447,0,0,0,0,0,3450,0,3452,0,1776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5177344,0,0,0,0,0,1794,0,0,0,0,0,0,0,1802,1803,0,0,0,0,0,3207,0,0,0,0,0,0,0,0,0,0,3183,0,0,0,0,0,0,0,0,1810,0,0,0,0,0,0,0,0,0,0,0,0,1841,0,1843,0,0,0,1874,0,0,0,0,0,0,0,0,0,0,0,0,0,3213,0,0,528,528,528,1901,528,528,528,528,1907,528,528,528,528,528,528,528,2441,528,528,528,528,528,528,528,528,3720,528,528,528,528,528,528,528,528,528,528,1918,528,528,528,528,1922,528,528,528,528,528,528,528,2466,2467,528,528,528,528,528,528,528,1417,528,528,528,528,528,528,528,528,3856,528,528,528,57893,57893,57893,57893,528,528,528,528,1968,1969,528,528,528,528,528,528,528,528,528,528,1924,1925,528,528,528,528,57893,57893,59344,57893,57893,57893,57893,59350,57893,57893,57893,57893,57893,57893,57893,57893,61212,57893,57893,57893,57893,57893,57893,57893,57893,57893,59361,57893,57893,57893,57893,59365,57893,57893,57893,57893,57893,57893,57893,57893,59883,57893,57893,57893,59886,57893,57893,57893,57893,57893,57893,57893,57893,59378,57893,57893,57893,59383,57893,57893,57893,57893,57893,57893,57893,59909,57893,57893,57893,57893,57893,57893,57893,59915,57893,57893,57893,59412,59413,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59921,57893,57893,57893,57893,57893,57893,57893,57893,59351,57893,57893,57893,57893,57893,57893,57893,57916,59444,57916,57916,57916,57916,59450,57916,57916,57916,57916,57916,57916,57916,57916,57916,60685,57916,57916,57916,57916,57916,57916,57916,59461,57916,57916,57916,57916,59465,57916,57916,57916,57916,57916,57916,57916,57916,57916,60943,57916,57916,57916,57916,57916,57916,57916,57916,57916,59478,57916,57916,57916,59483,57916,57916,57916,57916,57916,57916,57916,57916,60021,57943,57943,57943,57943,57943,57943,57943,60029,57916,57916,59512,59513,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59470,57916,57916,57916,57943,57943,57943,57943,59546,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59557,57943,57943,57943,57943,59561,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60082,57943,57943,57943,57943,59574,57943,57943,57943,59579,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60735,57943,57943,57943,57943,57943,59608,59609,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60095,57943,57943,2302,2303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5767168,0,2339,0,0,2341,2342,0,0,0,0,0,0,0,0,0,0,0,335872,0,0,0,0,528,2434,528,528,2438,528,528,528,2442,528,528,528,528,528,528,528,2912,528,528,528,528,528,528,528,528,528,3857,528,528,57893,57893,57893,57893,528,528,528,528,2452,528,528,528,2455,528,528,528,528,528,528,528,2925,528,528,528,2928,528,528,528,528,528,2487,528,528,528,528,528,2492,528,528,528,528,528,528,528,0,0,57893,57893,57893,60610,57893,57893,57893,57893,57893,60615,57893,0,2503,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60288,57893,57893,60291,60292,57893,57893,57893,57893,57893,57893,57893,57893,59865,57893,57893,59869,57893,57893,57893,59873,57893,57893,57893,57893,57893,60312,57893,57893,57893,57893,57893,57893,57893,60320,57893,57893,59916,57893,57893,57893,57893,59920,57893,57893,57893,57893,57893,59925,57893,57893,57893,57893,57893,60328,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58867,50676,58773,990,58870,57916,57916,57916,57916,57916,60005,57916,57916,57916,57916,60009,57916,57916,57916,57916,57916,60014,57943,57943,57943,57943,60088,57943,57943,57943,57943,60092,57943,57943,57943,57943,57943,60097,2856,0,0,0,0,0,0,0,0,0,0,2863,0,0,0,0,0,0,212992,0,0,0,0,0,212992,212992,212992,212992,2893,528,528,528,528,2896,528,528,2898,528,2899,528,528,528,528,528,1356,528,1361,528,528,1365,528,528,1368,528,528,528,528,528,2907,528,528,2911,528,528,528,528,528,528,528,528,528,2494,528,528,2497,2498,528,0,2920,528,528,528,2923,528,528,528,528,528,528,528,528,528,528,528,528,3506,3507,528,528,57893,60308,57893,57893,57893,57893,57893,57893,57893,57893,57893,60317,57893,57893,60321,57893,57893,57893,57893,58835,57893,57893,57893,58842,58844,57893,57893,57893,57893,57893,57893,59381,57893,57893,57893,57893,57893,57893,57893,57893,57893,60902,57893,57893,60905,57893,57893,57893,0,57916,57916,60346,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60354,60369,57916,57916,57916,57916,60372,57916,57916,60374,57916,60375,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,4288,0,0,0,528,57916,57916,57916,57916,60384,57916,57916,60388,57916,57916,57916,57916,57916,57916,57916,57916,60402,57916,57916,57916,57916,57916,57916,57916,57916,59995,57916,57916,57916,57916,6e4,57916,57916,57916,60397,57916,57916,57916,60400,60401,57916,57916,57916,57916,57916,57916,57916,57916,57916,60683,57916,57916,57916,57916,57916,57916,57916,57916,59452,57916,57916,57916,57916,57916,57916,57916,57943,57943,60419,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60469,57943,57943,57943,57943,57943,60434,57943,57943,57943,57943,60437,57943,57943,60439,57943,60440,57943,57943,57943,57943,57943,60422,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61155,57943,57943,57943,528,57943,57943,57943,57943,60462,57943,57943,57943,60465,60466,57943,57943,57943,57943,57943,57943,57943,60752,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,3658,0,0,3228,528,528,528,528,3233,528,528,528,3236,528,528,528,528,528,528,3255,528,528,528,528,528,528,528,528,528,528,2482,528,528,528,528,528,3261,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60616,57893,60619,57893,57893,57893,57893,60624,57893,57893,57893,60627,57893,57893,57893,57893,57893,58805,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61460,57916,57893,57893,57893,60654,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60692,57916,57916,57916,57916,57916,57916,57916,57916,59499,57916,57916,57916,57916,57916,57916,57916,57916,57916,60665,57916,60668,57916,57916,57916,57916,60673,57916,57916,57916,60676,57916,57916,57916,57916,58935,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58887,57916,57916,57916,57916,57943,57943,57943,60714,57943,60717,57943,57943,57943,57943,60722,57943,57943,57943,60725,57943,57943,57943,57943,57943,61580,61581,57943,57943,0,0,0,0,4242,0,528,528,528,528,528,528,528,528,2427,528,528,528,528,2431,528,0,3454,0,3455,0,0,0,0,0,0,0,0,0,0,0,0,1883,0,0,0,528,528,528,3485,528,528,528,528,528,528,528,528,528,528,528,528,1384,528,528,528,528,528,3497,528,528,528,528,528,528,528,528,3505,528,528,528,528,528,2453,528,528,528,528,528,528,528,528,528,528,1382,528,528,528,1386,528,57893,57893,60869,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60637,57893,57893,57893,57893,57893,57893,57893,57893,60314,57893,57893,57893,57893,57893,57893,57893,57893,60341,57893,57893,57893,0,2999,0,0,0,57893,60881,57893,57893,57893,57893,57893,57893,57893,57893,60889,57893,57893,57893,57893,57893,58820,57893,57893,57893,57893,57893,57893,57893,58829,57893,57893,57916,57916,57916,60911,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59503,57916,57916,57916,57916,57916,60923,57916,57916,57916,57916,57916,57916,57916,57916,60931,57916,57916,57916,57916,57916,59481,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58911,57916,57916,57916,57916,57916,57916,57943,57943,57943,60953,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60094,57943,57943,57943,57943,57943,57943,60965,57943,57943,57943,57943,57943,57943,57943,57943,60973,57943,57943,57943,57943,57943,60050,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60745,57943,57943,57943,0,3680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3439,0,0,0,0,0,3693,3694,0,0,0,0,528,528,528,528,528,528,528,2875,528,528,528,528,528,528,528,528,3704,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3494,528,528,3714,528,528,528,528,528,3719,528,3721,528,528,528,528,528,528,3488,528,528,528,528,528,3492,528,528,528,61091,57893,61093,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,61131,61132,57943,57943,57916,57916,57916,57916,61104,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61110,57916,57916,57916,57916,57916,57916,57916,61114,57916,57916,57916,57916,57916,57916,61120,57916,61122,57916,57916,57916,57916,57916,61324,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60970,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61149,57943,61151,57943,57943,57943,57943,57943,57943,57943,57943,528,2761,528,528,528,57893,60110,57893,57893,528,528,57893,57893,57893,0,0,0,3818,0,0,0,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,3823,0,0,0,0,0,0,0,3675,0,0,0,0,3831,0,528,528,528,528,528,3843,528,528,528,3847,528,528,528,528,528,1357,528,528,528,528,528,528,528,528,528,528,528,1422,528,528,528,528,57893,61205,57893,57893,57893,61209,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60886,57893,57893,57893,57893,57893,57893,57893,57893,59896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61218,57893,57893,57893,57893,57916,57916,57916,57916,57916,61224,57916,0,0,0,0,57893,57943,57943,58415,57943,57943,57943,57943,57943,57943,58446,57916,57916,61228,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60697,57916,57916,57916,61237,57916,57916,57916,57916,57943,57943,57943,57943,57943,61243,57943,57943,57943,61247,528,4162,57893,57893,57893,61510,57893,57893,57893,57893,57893,57893,57893,57893,61518,57893,57893,57893,57893,58858,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58903,57916,57916,57916,57916,57916,57916,57916,57916,57916,58913,57916,57916,57916,57916,61523,57916,57916,57916,57916,57916,57916,57916,57916,61531,57916,57943,57943,57943,57943,57943,60955,57943,57943,57943,57943,57943,57943,57943,57943,57943,59581,57943,57943,57943,57943,57943,57943,57943,61536,57943,57943,57943,57943,57943,57943,57943,57943,61544,57943,0,0,0,0,0,0,262144,262144,0,0,0,0,0,0,0,0,0,0,4203,4204,4205,0,4207,528,528,528,528,528,528,528,528,528,4213,4214,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61564,61565,57893,57893,57916,0,0,0,0,57893,57943,57943,58416,57943,57943,57943,57943,58437,58441,58447,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,4298,0,528,4299,57893,61644,57916,61645,57943,61646,0,528,57893,57916,57943,0,528,528,528,528,528,528,2425,528,528,528,528,528,528,528,528,528,3246,528,528,528,528,528,528,0,0,0,361,362,0,0,0,0,0,0,0,368,0,296,0,0,0,0,393685,0,393685,393685,393685,0,393685,393685,393685,393685,393685,393685,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,1741,1742,0,0,0,0,0,278528,278528,0,0,0,0,0,0,0,0,0,416,416,0,0,0,0,0,426,426,0,0,131072,426,0,0,0,0,426,0,0,454,0,426,0,483,483,483,0,0,362,362,362,502,362,362,362,362,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,546,57912,546,57912,546,546,57912,546,546,57935,57912,546,546,57912,57912,57912,57912,57962,57962,57912,57912,57912,57912,57962,57962,57912,546,57912,57912,57935,57912,57912,57912,57912,57912,57912,57912,57935,57935,57912,57912,57962,57912,57912,57912,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,368,368,0,703,0,0,0,0,0,0,0,0,0,0,0,0,2298,0,0,0,905,528,528,528,57893,57893,57893,57893,57893,57893,57893,58287,57893,57893,57893,57893,57893,60340,57893,57893,57893,57893,57893,0,2999,0,0,0,57893,58306,57893,57893,57893,57893,58324,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,61129,57943,57943,57943,57943,57943,57943,57943,57943,60741,57943,57943,57943,57943,57943,57943,57943,57943,60753,57943,528,528,528,57893,57893,57893,57916,57916,58363,57916,57916,57916,57916,57916,58382,57916,57916,57916,57916,58400,57916,57916,57916,57916,58936,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60392,57916,57916,57916,57916,57916,0,0,0,0,58306,57943,57943,57943,57943,57943,57943,57943,58438,57943,57943,57943,57943,57943,60448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60427,57943,57943,57943,57943,57943,57943,57943,58457,57943,57943,57943,57943,58475,57943,57943,57943,528,528,528,528,2284,57893,57893,57893,57893,59633,2290,0,2291,0,0,905,528,0,57893,57893,57893,57893,58324,57893,155942,1151,0,1152,0,0,1157,0,0,0,1266,0,0,0,0,0,0,0,1266,0,0,0,0,0,0,450560,0,0,450560,0,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,1346,528,528,528,1355,528,528,528,528,528,528,528,528,528,528,528,528,3711,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,58785,57893,57893,57893,58794,57893,57893,58855,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61121,57916,57916,57916,57916,57943,57943,58974,57943,57943,57943,58983,57943,57943,57943,57943,57943,57943,57943,57943,57943,59045,57943,57943,57943,57943,57943,57943,0,0,0,1730,0,0,0,0,1737,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,1271,0,0,0,0,0,0,0,0,0,0,1762,0,0,0,0,0,0,0,1770,1771,0,0,0,0,0,3422,0,0,0,0,0,0,0,3426,0,0,0,0,0,1834,0,0,0,0,0,0,0,1840,0,0,0,0,0,0,532480,0,0,0,0,0,0,0,0,0,694,0,0,0,0,0,368,0,0,1846,0,1848,0,0,0,0,0,0,0,0,0,0,0,376832,0,376832,0,0,1915,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2499,528,1930,528,528,528,528,528,528,528,528,528,528,528,1943,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,796,0,0,0,0,805,0,0,0,59373,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59386,57893,57893,57893,2588,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,60352,57916,57916,57916,57916,57916,57893,57893,59411,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59422,57893,57893,57893,57893,57893,60884,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60903,57893,57893,57893,57893,57893,57916,59511,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59522,57916,57916,57916,57916,57916,61395,57916,61397,61398,57916,61400,57916,61402,57943,57943,57943,3916,528,61261,57893,0,0,0,0,0,0,0,0,0,0,2774,0,0,0,0,59607,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59618,57943,57943,57943,57943,57943,58978,57943,57943,57943,57943,57943,57943,57943,57943,57943,58997,0,0,2326,0,0,0,0,0,0,0,0,0,0,0,0,0,221652,221652,221652,0,0,2504,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61097,57893,57893,57893,57916,57916,57916,57916,57916,528,3229,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2447,528,60618,57893,60620,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61211,57893,57893,57893,57893,57893,57893,57893,57893,59870,57893,57893,57893,57893,59875,57893,57893,57916,57916,57916,60667,57916,60669,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60404,57916,57916,57916,57916,57916,60698,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60709,57943,57943,57943,57943,57943,60463,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59599,57943,57943,57943,59605,57943,57943,57943,57943,60716,57943,60718,57943,57943,57943,57943,57943,57943,57943,57943,57943,59046,57943,57943,57943,57943,57943,57943,57943,60747,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,3656,0,0,0,0,0,0,0,3432,0,0,0,0,0,0,0,0,0,0,0,0,2323,2324,0,0,57943,57943,61250,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60724,57943,57943,0,4147,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,0,4161,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61517,57893,57893,57893,57893,57893,60898,60900,57893,57893,57893,57893,60904,57893,60906,60907,57893,57916,57916,57916,61627,57916,57943,57943,57943,57943,61631,57943,0,0,0,0,528,528,2870,528,528,528,528,528,528,528,528,528,528,2878,373,373,0,0,131072,373,0,0,0,0,373,0,0,0,0,373,547,57913,547,57913,547,547,57913,547,547,57936,57913,547,547,57913,57913,57913,57913,57963,57963,57913,57913,57913,57913,57963,57963,57913,547,57913,57913,57936,57913,57913,57913,57913,57913,57913,57913,57936,57936,57913,57913,57963,57913,57913,57913,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,861,528,528,528,528,528,528,528,528,528,528,528,528,3723,528,528,528,57916,58356,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60677,57916,57893,58799,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61221,57893,57916,57916,57916,57916,57916,57916,57916,57943,57943,60023,57943,57943,57943,57943,57943,57943,528,528,1931,528,528,528,528,528,528,528,528,528,528,528,528,528,1401,528,528,57893,59374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59882,57893,57893,57893,57893,57893,57893,57893,57893,57893,60290,57893,57893,57893,57893,57893,57893,59474,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60920,57916,0,0,0,3824,0,3825,0,0,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,1227,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,2335,0,0,0,365,0,0,0,0,364,0,0,0,139264,147456,0,0,0,0,0,0,1324,0,0,0,0,0,0,0,0,0,1166,0,0,0,0,0,0,0,0,0,434,131072,0,434,434,0,0,0,434,0,365,434,0,0,0,0,401408,0,0,0,0,0,0,0,0,0,0,0,0,6471680,0,0,0,466,0,0,0,494,494,497,497,497,497,503,504,497,497,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,548,57914,548,57914,548,548,57914,548,548,57937,57914,548,548,57914,57914,57914,57914,57964,57964,57914,57914,57914,57914,57964,57964,57914,626,57914,57977,57937,57914,57914,57914,57914,57914,57914,57914,57937,57937,57914,57914,57964,57914,57914,57914,57977,57977,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,459187,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,0,528,2420,528,528,528,528,528,528,528,528,528,528,528,528,528,1402,528,528,0,0,0,57893,59850,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60287,57893,57893,57893,57893,57893,57893,57893,57893,57893,60302,57893,57893,57893,57893,60305,57893,57893,60307,528,528,528,528,2895,528,528,528,528,528,528,528,528,528,528,528,528,4026,57893,57893,57893,57893,60337,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,1781,0,0,0,0,0,0,0,0,0,139264,147456,0,0,335872,0,0,57916,57916,57916,57916,60371,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61401,57916,57943,57943,57943,368,368,0,0,0,0,705,0,0,0,0,0,0,0,0,0,139264,147456,0,0,540672,0,0,0,0,735,0,801,0,0,0,0,0,0,0,0,801,0,0,0,0,416,0,0,0,0,0,0,0,0,0,0,0,0,3464,0,0,0,528,528,528,528,862,528,528,528,528,528,528,528,528,528,528,528,528,61203,57893,57893,57893,57916,58357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61111,57916,1202,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,709,0,0,0,0,0,0,1251,0,0,0,0,0,0,0,0,0,2810,0,0,0,0,0,0,58853,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59463,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60696,57916,57916,57916,57916,59015,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60442,1726,0,0,0,0,1733,0,0,0,0,0,0,0,0,0,0,319488,319488,0,0,0,0,0,57916,57916,57916,59978,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59959,57916,57916,57916,57943,57943,57943,60061,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59011,57943,57943,57943,2779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245760,528,528,2881,528,528,528,528,528,528,528,528,528,528,528,528,528,1404,528,528,57916,57916,60357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60919,57916,57916,0,306,307,0,0,0,0,0,0,0,647,0,0,0,0,0,0,1813,0,0,0,0,0,0,0,0,0,787,0,0,0,0,0,0,906,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,906,528,0,57893,58490,57893,57893,58325,57893,155942,1151,0,0,0,0,0,0,1836,0,0,1838,0,0,0,0,0,0,0,2861,2813,0,0,0,0,0,2866,0,57893,57893,58856,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59495,59496,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61574,57943,57943,57943,57943,0,0,1862,0,0,0,0,0,0,0,0,0,0,0,0,0,327680,327680,327680,528,528,1948,528,528,528,528,528,528,528,528,528,528,528,528,528,1942,528,528,57893,59391,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60313,57893,57893,57893,57893,57893,57893,57893,57893,57893,59922,57893,57893,57893,57893,57893,57893,57893,59491,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61123,57916,57916,0,0,0,57893,57893,57893,57893,59853,57893,57893,57893,57893,57893,57893,57893,57893,60329,57893,57893,57893,57893,57893,57893,57893,57893,57893,59367,59368,57893,57893,57893,57893,57893,59877,57893,59879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60636,57893,57893,57893,57893,57893,57893,57893,57893,57893,60316,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,59966,57916,59968,57916,57916,57916,57916,57916,57916,57916,57916,57916,61117,57916,61119,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60049,57943,60051,57943,57943,57943,57943,57943,57943,57943,57943,57943,59552,57943,57943,57943,57943,59556,57943,60381,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61403,57943,57943,57943,57943,57943,60446,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59554,57943,57943,57943,0,3418,0,0,0,0,0,0,0,0,0,0,0,0,0,0,352256,352256,352256,57893,57893,57893,57893,60871,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60645,57893,57893,57893,57893,57893,57893,57893,57893,57893,59923,57893,57893,57893,57893,57893,57893,3713,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2500,57916,57916,61113,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59973,57916,57916,57916,0,0,0,2310144,0,0,0,0,0,0,2310144,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,2310144,0,0,0,0,0,0,0,2310144,2310144,0,0,0,0,0,0,0,0,2310144,0,0,0,2310144,0,0,0,0,0,2310144,0,2310144,0,0,0,0,0,0,2310144,2310561,2310561,0,2310144,0,0,2310144,0,0,2310144,0,2310144,2310144,0,2310144,0,2310144,2310144,0,0,0,0,0,0,2310561,0,0,0,0,0,0,0,0,0,0,0,2359296,368,0,0,0,0,2310144,0,0,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310144,2310740,2310144,2310144,2310740,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459222,459379,459222,2318336,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4276224,0,0,0,0,4358144,4358144,4358144,4358144,0,914,0,0,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,467,2335204,2335204,2335204,467,467,467,467,467,467,467,467,467,467,2335238,2335238,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,467,0,0,0,0,0,0,0,0,0,0,2335238,2335204,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,0,0,0,2342912,0,0,0,0,0,0,0,0,0,0,0,0,2348,0,0,0,0,0,0,2326528,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,4358144,4358144,4358144,4358144,0,0,0,2359296,0,2359296,0,0,0,2359296,0,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,573440,0,573440,573440,573440,0,573440,573440,573440,573440,573440,573440,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,2367488,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4931584,0,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,507904,507904,0,913,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,1180,0,0,0,0,1184,0,0,1187,0,6275072,0,0,0,0,0,0,0,0,0,0,0,989,0,0,0,0,913,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5260177,4359057,4359057,0,0,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,212992,0,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,0,0,0,0,0,4366336,0,0,0,0,0,0,0,0,2412,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,0,4882432,0,0,0,0,0,0,4825088,0,0,5177344,0,0,0,0,5701632,0,0,0,0,0,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,0,0,913,913,913,4826001,913,913,913,913,913,913,0,0,989,989,4842461,989,989,989,4899805,989,0,0,5513216,5783552,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4857856,4874240],r.EXPECTED=[169,185,215,1326,231,1001,278,928,942,1085,320,247,263,307,336,352,368,384,400,914,2264,430,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2268,1707,1603,1403,460,1356,1591,491,507,517,533,1816,1031,2119,564,475,580,596,625,684,700,1905,716,1114,747,778,788,1693,1145,762,804,820,836,852,868,884,900,958,988,1017,972,1997,1047,1057,1073,1101,1130,2028,1562,1190,1205,1221,1237,1253,1269,1298,1314,1342,1174,1446,1372,1876,2073,1633,668,1388,1419,1434,1467,1483,1499,1515,609,1531,1547,1578,444,654,640,1619,1649,1662,1678,1723,1738,1754,1770,1786,1802,1832,1848,291,1864,2228,1892,1921,1937,199,2149,1953,1969,1985,1282,2013,2044,2060,2089,2105,548,2135,2165,2181,2197,2213,1160,2244,731,2260,2264,1457,412,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,419,2284,2288,2290,2290,2290,2291,2295,2290,2297,2301,2304,2311,2307,2315,2318,2322,2326,2330,2334,2338,2345,2345,3446,2344,2345,3427,2352,3605,2345,4169,2345,2345,2345,3950,4664,4990,4059,4582,2828,4588,2345,4069,4598,2345,4069,4603,2734,3100,2397,2497,2359,2366,2466,2372,2376,2345,2345,4266,2345,2345,2383,3820,2359,2359,2392,2419,2419,2419,2419,2405,2427,2345,2345,2345,2345,2345,2409,2455,3819,2345,2345,3099,3100,3100,3100,2495,2398,2398,2398,2504,2359,2359,2359,2482,2419,2419,2419,2517,2345,2345,2345,2457,2345,3100,3100,3101,2398,2398,2398,2359,2359,2359,2359,2359,2418,2419,2419,2419,2419,2419,2424,2437,2345,2345,2345,2345,4505,2729,2345,2345,2345,2345,4509,5101,4513,2345,2345,3904,2359,2359,2484,2419,2419,2519,2345,3864,2345,4865,3100,3100,2501,2398,2538,2359,2359,2359,2359,2359,2548,2419,2419,2419,2419,2395,2490,2345,2345,2359,2483,2419,2549,2508,3755,2345,4867,4911,2398,2400,2359,2515,2419,2525,3605,3100,2476,2401,2547,2550,2816,4868,2399,2481,2485,2735,2532,2503,2361,2368,4866,2476,2360,2420,4909,2537,2546,2486,2533,2362,2542,2554,2567,2571,2575,2579,2583,2586,2586,2586,2598,2591,2586,2587,2595,2602,2606,2610,2614,2618,2622,2626,2630,4594,2634,2345,2345,2903,2640,2345,2345,2999,2345,2345,2645,2345,2345,2345,2345,2345,2345,4208,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,4460,2655,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2655,2345,2345,2636,4128,2345,2345,2345,2345,2635,4127,2345,2345,2345,2345,2635,4127,2794,2345,2345,2345,3016,2798,2345,2345,2345,3017,2799,2345,2345,2345,2806,2729,2876,3308,2345,2915,2345,3310,2345,2922,2345,3536,2683,4475,3831,4927,2685,4422,2850,2345,2345,2345,2345,2345,2345,5004,2345,2345,2345,2345,4417,3024,3547,2854,5007,2861,2345,2345,2345,2345,4422,2869,2345,2345,2345,2345,2345,2868,2729,2345,2345,2345,2345,2345,2873,2345,2345,2345,4443,2345,3549,3338,2880,2345,2345,2345,2345,2887,2729,2345,2345,2345,2883,2880,2345,2345,4951,4956,2345,2345,2345,2345,4604,4971,4982,2345,2345,4805,4988,3762,2345,3965,2345,4436,4591,2907,2345,3192,2909,2345,4490,2345,3191,2908,2345,3491,4849,4476,4920,4920,4920,4849,2720,4477,4477,4477,4918,4922,2683,4476,4863,4478,2719,2684,2432,2429,2431,2563,2345,2345,2345,2345,2345,2345,2984,2345,2345,2345,2511,4068,4075,2345,2345,4081,2345,4085,2345,2345,4099,2345,3067,3768,2729,4088,2928,3046,2947,2932,2935,2938,2940,2940,2944,2345,2951,2956,2345,2345,5022,2729,2345,2345,2345,2345,4180,2345,2345,2345,2345,5023,2345,4654,2345,4496,2345,3077,4168,3570,5100,4176,2345,2345,2345,5024,2345,2345,4147,2345,2345,4258,2345,2345,2339,3845,2345,3726,3911,3122,3918,2345,4757,2345,4949,2345,2961,2974,2978,3641,3718,2988,2996,2722,3003,3008,2345,2998,4205,2345,2952,2345,2345,3697,2345,3015,4630,3021,3029,3033,2412,2991,2723,3040,3497,2345,2951,2956,2345,5067,4831,2345,3623,2964,3050,4101,2345,3156,3059,2345,2345,5115,3712,2387,4578,2345,5120,2458,2509,4221,2345,5107,2345,3202,2763,3060,2345,2345,2345,3733,2345,2951,2733,2345,4755,4856,3111,4236,2557,3086,2345,2348,3162,2345,2345,2527,3154,2345,2345,2347,3161,2345,2345,4684,3167,3432,4676,3096,2345,2345,2345,2345,2472,3106,2345,2345,2345,2345,2346,3105,2345,2345,2345,4878,3110,3119,2345,5067,4832,4234,3023,3126,4109,3602,3171,3176,2345,4069,3180,2345,4170,3176,2345,2345,3187,2345,4682,3217,4094,3257,3196,3972,3190,2345,3974,2345,3251,3209,2345,3973,2345,3214,3218,3223,3227,3231,4192,2345,3229,2345,3237,3606,3242,3246,4319,3250,3238,3230,3255,3261,3266,3266,3266,3274,3278,3262,3262,3262,3285,3289,4198,3290,4959,3294,4246,5038,3298,3302,3306,3316,3322,3329,2345,2345,2345,2345,3926,2345,2345,2875,3333,3337,4593,3342,3347,4397,3357,3361,3365,3366,3366,3370,2345,4118,3376,2345,4445,3382,4945,3392,2721,3398,2829,3406,3410,3417,3424,3004,3431,3947,2345,3426,2345,2345,3115,3658,4038,4560,2345,2345,2345,2345,2345,2345,2345,2650,2345,2345,2454,2345,2345,2345,4867,3100,3100,3100,3100,3101,2398,2398,2398,2398,2545,2359,2359,2359,2359,2359,2464,2419,2419,2419,2419,2419,2395,2470,4119,2345,2345,3437,3706,3578,3394,4115,2345,5085,3441,3522,4170,3451,2345,2345,3132,3489,2345,2345,2345,2345,3143,3495,2345,2345,2345,2345,4516,3484,2345,4070,3455,2345,2345,2345,4071,3456,2345,2345,2345,3460,3464,2345,2345,2345,3098,3100,3100,3100,3100,3100,2397,2398,2398,2398,2398,2398,2480,4118,3830,2345,3469,3584,3579,3476,4935,4215,3011,2345,2345,4515,3483,2345,2345,3191,2898,2345,2345,2345,2892,2345,2345,2345,2897,2345,2345,2345,3963,3232,2345,2345,2345,2345,3517,3490,2345,2345,2345,2345,4515,3520,2345,2345,2345,2345,3982,2345,3526,3585,3535,4117,2786,2345,2345,3541,2345,2345,2345,2345,4530,3545,2345,2345,2345,2345,3541,2345,2345,2345,2345,2456,2345,2345,4910,3100,3100,3100,3100,2476,2398,2398,2398,4531,3232,2345,2345,2345,3560,3565,3576,4115,3204,3583,2345,5095,2345,2345,2345,3163,3064,2345,2345,2345,2345,3219,3071,2345,2345,2345,2345,3157,5054,2345,2345,2345,5094,2345,2345,2345,5053,2345,2345,2345,3590,3966,3561,2345,2521,3137,2345,2345,3754,2981,3141,5078,4842,4667,2967,3147,2528,3155,2345,2751,5076,2686,5082,4996,5091,5099,2345,2345,5072,2345,2345,5105,2345,2345,4450,3818,2345,3825,2345,2460,3835,3839,2345,2345,2345,4069,3843,2345,4928,2345,3443,2345,3828,2345,4052,3148,2345,2386,3114,3150,4047,3149,3635,3635,4052,3113,3150,3150,3150,3980,3634,3112,3635,4053,3622,3635,3150,4974,4976,3627,4978,3631,3640,2345,2345,2345,2345,4428,3779,3723,2345,3595,3645,3649,4091,3655,3663,3667,3671,3675,3679,3680,3684,2345,2801,3689,2345,4841,3695,4295,2763,3350,3199,3691,5040,3485,3701,4584,3465,3705,4823,3710,3716,2345,2345,2802,3690,2345,4616,4756,3722,3731,3957,3201,3737,3750,3759,2345,3940,3766,2345,2345,2345,3312,4745,4749,4761,4765,4769,4773,4777,4781,4785,4788,4792,4795,3504,3232,2345,2345,2345,3505,2345,2345,2345,2646,3772,2345,2345,2345,4427,3778,2345,4164,4095,2345,3785,4903,2651,2345,3753,2345,2345,3793,2345,2345,2345,2345,3098,3100,3100,3100,3100,2398,2398,2398,2398,2478,2359,2359,2345,3797,2345,2345,2345,2345,2345,3801,2345,2345,2345,2345,2345,3805,2345,2345,3846,2810,5004,2345,2345,2345,2345,4151,2345,2815,2820,2833,4077,2838,3850,2345,2345,2345,2345,4737,2345,3855,2458,4716,3837,3863,2345,2345,3172,3871,3924,2345,2340,2345,2345,4149,2345,2339,3845,3723,3089,3789,2345,3930,4129,2345,2776,3914,4135,2728,2345,2345,2345,2345,3210,2345,2784,3082,3938,2345,2790,5046,2345,3935,2345,3944,2730,3877,2345,3352,2732,3955,2731,4157,4157,4157,3351,2732,2732,2732,3531,4156,4716,4157,4718,3878,4157,2732,2345,2345,2345,2345,3851,2345,2345,2345,2345,2345,3850,2345,2345,2345,2345,2345,2345,2345,3612,2663,2345,2345,2345,2345,2345,2345,2345,3780,3961,2345,2345,3920,3970,3978,3986,3990,3994,3998,4001,4005,4007,4011,2345,2345,2345,4015,2345,3606,4752,4107,3553,4020,4024,4643,4888,4028,2345,4851,2811,4032,4826,4037,4042,4046,2345,2345,4016,2345,3746,4051,3551,3877,4057,3636,4570,4063,2345,2345,2345,2780,2345,2345,2345,2510,4067,4105,2924,4156,4113,2386,4123,4538,2345,2345,2635,4127,2345,2345,2345,2345,2641,4133,2345,2345,2345,2345,2778,4181,2345,2457,2345,2345,4984,5025,2345,4139,2345,2855,3611,2345,2857,2345,2345,3386,2345,2856,2345,2345,3830,3616,2345,3445,2345,4145,2345,4670,3724,4155,3572,3114,4161,2345,2345,2345,3472,2729,2345,2345,2345,2345,2842,2345,2345,2345,2345,3081,2846,2345,2345,2345,2345,2345,2739,2692,3821,2749,2757,2345,2761,2767,2345,2771,4802,2345,4185,3077,3725,4231,3041,4220,2345,5087,2729,2345,2345,2911,4134,2345,2345,4172,2345,2345,2345,2354,3845,2345,3723,3606,2458,3787,3901,2345,3781,3537,4190,2345,2345,2910,4196,3378,3685,3607,4673,4202,2823,2345,4033,2729,2345,3931,2956,2345,3925,4214,4219,4225,4240,4244,4264,2345,4250,2345,4252,2345,2345,4256,2345,4251,3343,4538,4228,4262,2345,4270,3353,2345,4610,2345,3183,3130,2345,2345,2345,2346,3136,2345,2345,2345,2345,3183,3130,2345,2345,2673,2345,2345,2677,3814,2690,2696,2700,2704,2708,2712,2716,3744,2727,4275,4284,4288,4419,2668,3659,2733,4292,4308,4420,3556,3556,3556,4317,3530,4421,4335,4323,3555,3529,3568,3025,2669,3556,4330,4339,4341,4333,4326,4345,4349,4351,2345,2345,2345,2345,3897,2992,2345,4313,4355,4359,4390,4363,4367,4371,4375,4379,4381,4383,2345,2345,2345,4937,4387,4657,4394,4401,4460,2827,4636,4599,4278,4407,4411,5122,3727,4426,4432,2345,4440,4449,2345,2345,4938,3774,2657,4454,4458,3325,2345,3053,4464,4468,2345,2345,2345,5128,4474,2345,2345,2345,4482,2345,2345,4271,2888,2345,2345,2345,2345,3233,2345,2345,2345,4962,2864,3650,2893,2345,3727,4483,2345,2345,2345,3055,4487,4494,2345,2345,3890,4311,2433,2446,3618,2826,4186,5066,4947,2733,2345,2345,2345,3413,4500,2345,2345,2345,2345,3420,2800,4414,4622,4520,3318,2345,2970,5060,2345,2345,2345,2377,4524,2345,2345,2345,2345,3869,2345,2345,2345,2345,4171,3876,2345,2345,2345,4069,3870,2345,4952,4311,2443,4535,2827,3865,3433,2345,2345,2345,2379,4543,2345,2345,2345,3858,2345,2345,2345,2345,3859,2345,2345,2345,2957,3045,2345,2345,2377,4548,2345,2345,2345,2345,3281,4553,2345,2345,2345,2378,4549,4470,2345,4558,2440,4564,3203,4831,2345,2345,2377,4568,2345,2345,2345,3951,2345,2345,2345,4574,2345,4640,2345,4069,4647,2560,4651,4661,2345,4680,4539,4642,5031,2345,5014,4688,4830,4815,4403,3883,4642,4692,4628,4816,4696,4696,4702,4830,4706,4714,4714,4722,2414,2449,3808,4731,2414,4906,2450,4735,4725,4727,4741,4829,2345,2345,2345,2345,3925,2345,2772,3501,4141,3509,4115,4215,3074,2345,2345,3513,4799,2345,2345,2345,2345,4809,3015,4813,4820,4967,2388,2680,4210,4836,4554,2345,3372,2345,2345,3384,2345,2345,3372,2345,2345,2856,2345,2345,3589,3594,3599,4708,3872,4840,4846,2345,4710,4855,2345,2345,4544,4860,2834,3742,4965,3080,4872,4877,4882,2345,2345,2345,2345,3606,4886,2345,2345,2345,3478,4892,2345,2345,2345,3882,2663,2459,3092,3887,2345,2345,3894,2345,2345,2345,2355,2345,3479,2345,2345,2345,2345,4897,3616,2345,2345,4544,4915,3035,4280,2918,3446,4873,4698,4926,2345,2345,2345,2345,2345,4932,2345,2345,2345,2345,3606,4942,2345,2345,4435,3377,3907,2902,2345,4489,2729,2345,3651,2902,2345,3192,2909,2345,4994,5020,5001,3205,5011,2345,2345,2345,2345,2741,2745,2345,2345,2345,2345,4170,4608,2345,2345,4614,4989,4620,4626,3755,4950,2345,4634,2345,5013,2345,2744,2345,2345,2345,2345,2345,2743,2345,2345,2345,2345,2345,2743,4900,2345,4501,4915,3036,5018,3447,3864,5029,2345,2345,2345,4170,5035,2345,2345,2345,2345,4303,5044,2345,2345,2345,2345,5050,2345,2345,2345,2345,4304,4900,2345,3811,3740,4997,5058,5064,2345,2345,2345,5071,2345,2345,2345,3269,2345,2345,2345,4297,4301,2345,3402,2800,2345,2345,2345,2345,3401,4528,2345,2345,2345,2345,3401,4528,4470,4299,2345,2345,3270,2345,5111,4997,4577,2345,2345,2753,2345,4893,5116,2345,2752,2491,2458,2345,5126,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2661,3388,2667,2345,7267,5893,5132,5144,5141,5151,5153,5153,5153,5153,5148,5176,5152,5153,5153,5153,5159,5163,5176,5153,5153,5169,5164,5153,5180,5155,5154,5168,5151,6159,5173,5199,5205,5205,5205,5209,5209,5201,5213,5217,5220,5224,5228,5245,5232,5242,5234,5238,5236,5249,5252,7269,7026,5260,5273,5276,5276,5276,5255,5821,5295,5276,5276,5276,5276,5268,5730,6588,6270,5301,5276,5276,5254,6597,5821,6646,6646,6646,6646,5394,5396,5325,5449,5322,5396,5396,5325,5276,5384,5428,5333,5409,5274,5276,5276,5276,5286,5290,7174,5276,6844,7218,6005,5276,5276,5276,6390,6115,6646,6647,5323,5396,5397,5400,5428,5428,5428,5428,6645,6646,6646,5398,5400,5428,5345,6844,7217,5353,5276,5266,5276,5276,5388,7455,5457,5396,5396,5396,5396,5276,5399,5402,6779,5408,6667,5275,5276,5275,5276,5276,6239,5276,6839,5410,6667,5275,5276,5275,6561,5276,5275,6839,6843,7454,7155,5276,5276,7229,5276,5276,6466,5276,5276,6526,5276,5276,5276,5302,5276,5276,6646,5393,5396,5396,5396,5400,5407,6668,5276,5276,5268,6066,5402,5428,5428,5428,5429,6646,6646,6646,5395,5396,5396,5396,5326,5368,5419,5276,5276,5276,5305,5401,5428,5428,5428,5430,6646,5427,5428,5428,5428,6644,6646,6646,5402,5387,5276,5276,5276,5307,6771,6646,5394,5396,5396,5398,5427,5276,5276,5268,6630,5397,5403,5276,5276,5269,5731,6036,5400,5400,5402,5428,6644,5402,5428,5428,6643,6646,5368,5400,5427,6643,6646,6646,6646,5396,5396,5396,5397,5387,6646,5395,5324,5368,5276,5999,5276,5276,7234,6237,5276,6239,6237,5401,6643,5393,5324,5415,5434,5460,5464,5463,5462,5461,5326,7445,6108,6418,5509,5541,5438,5442,5508,5508,5508,5508,5486,5515,5454,5468,5472,5491,5543,5496,5508,5508,5538,5446,5582,5487,5506,5581,5513,5475,5519,5535,6805,6808,5547,6811,6814,6815,6816,5551,5554,5558,5569,5573,5579,5492,5586,5590,5594,5598,5605,5604,5601,5609,5613,5561,6981,5276,5276,5276,5308,5312,7372,5276,5276,5276,5309,7137,5276,5276,5276,5329,5276,6389,5276,5276,6557,5276,6391,5276,5276,5275,5276,6392,6392,5276,5276,5279,5276,6282,5276,5276,5276,5366,5276,6e3,6885,5910,7281,5626,5297,5629,5276,5276,7348,5276,5276,7354,5276,5276,5276,5631,5640,5899,5276,5647,5276,6987,5263,5186,5654,5657,5659,5660,5664,5668,5673,5672,5677,5679,5680,5680,5684,5686,5693,5688,5700,5688,5697,5689,5704,5276,5276,7355,5276,5276,5276,5648,6027,6933,6281,5898,5276,5276,5276,5367,5276,5276,5276,5368,5400,5708,6023,5276,5276,5281,7411,7471,7426,5276,5276,6043,5135,5276,5276,5281,7468,6467,5276,5716,5276,5276,5721,6061,5339,5276,5276,5304,5276,5341,5737,5745,5751,5749,5276,5276,5276,5369,6219,5751,5276,5276,5306,5310,6765,5276,5276,6988,5276,6526,5277,6886,6113,5784,5276,5793,7239,5808,5855,5812,5831,7055,5318,5276,5276,5276,5372,5348,7452,5827,5832,7056,5137,5276,5276,5276,5376,5368,5276,6525,5276,5414,5276,7452,7443,5276,5276,7419,6200,5276,5925,5276,5276,5276,7249,5717,5276,5276,5276,5387,5795,7243,5854,5845,7241,5851,5855,5846,7242,5852,5856,5317,5850,5854,5845,5898,5860,5276,5276,5276,5388,6362,5276,5854,5876,5318,5276,5276,7441,6519,7240,5851,5855,5877,5898,5881,5839,5276,5276,5370,5276,5276,5853,5885,5318,5276,5276,7452,6134,7239,6135,5854,5886,5898,6404,5870,6865,5276,5276,6117,5869,6864,5898,5276,6867,5276,5276,5276,5617,6117,5890,6866,5276,5276,5276,5620,6857,5276,6719,6723,5276,5276,7455,6886,6721,5898,5276,5276,5373,5276,5914,5276,5898,7023,5934,5938,5942,5945,5948,5949,5949,5950,5954,5954,5954,5954,5954,5958,5961,5276,5277,5921,5930,5276,6659,6079,5966,6872,6872,5276,5276,5276,5650,6487,5276,5711,6194,7445,7444,5368,5276,6e3,6525,5276,7025,5302,6259,5276,5370,5979,6510,5997,5276,6523,5276,5276,6660,6080,5967,5898,6890,5997,5276,6889,5276,5276,5276,5841,6010,5276,6606,5276,5276,5276,5822,6016,5276,5276,5276,5787,5276,6605,6017,5276,5277,5962,6001,7450,5276,5276,5276,5826,5831,5712,6195,7052,5276,5368,5276,5276,5366,5369,6121,5276,6513,5276,6559,5276,5276,5386,5282,5276,6093,5276,5276,5276,5864,6029,5276,5276,5276,5896,6848,5998,5276,6523,6792,5276,5276,6397,7112,6033,6047,6053,5898,5276,6034,6048,6054,5276,5278,5281,6211,6035,6049,6055,5276,5278,5909,5276,5279,6836,6888,5276,5276,5276,7452,5761,6526,6233,6268,5276,5280,5303,6536,5276,6268,6140,6038,6070,5276,5276,5400,5400,5400,5400,5401,6066,6588,6039,5894,5276,7456,5276,5276,5276,6002,5276,5276,5276,5975,5277,6078,6084,5367,6266,7445,6236,5999,6524,5276,6100,6037,6070,5276,5276,5477,5481,6630,6587,6090,5894,5276,6080,6086,5276,5276,5478,5482,6099,5276,5276,5276,6003,5276,5276,6036,6107,5276,5276,5276,6072,6033,6588,6106,5276,5276,5276,6073,6085,5276,5276,7023,6099,5276,5276,5281,6583,5728,5732,6105,5894,5729,5733,6106,5276,5281,6629,6586,5727,5731,6104,6108,5276,5276,5276,6117,5890,5371,6e3,6125,6268,6456,5276,6388,5276,5276,5276,6523,5276,7417,6416,5276,5276,5276,6119,5276,6524,6525,6659,6322,5276,5276,5276,6074,5363,7445,5276,5370,6e3,6236,5276,6320,5799,5803,5276,5276,5276,6127,6319,5798,5802,5276,5276,6321,5276,7260,7446,5368,6001,6320,5799,5801,5276,5276,6319,5797,5276,7073,5276,7258,7447,5276,7447,5302,7075,5803,5276,5276,7072,7076,5276,5281,7468,7477,5276,5276,7073,7260,7446,5276,7074,5802,5276,5285,5289,7173,6339,7258,7447,6339,7077,5276,6117,7076,5276,6342,5276,6117,6342,6139,6117,6200,6978,5276,6978,5276,6978,5276,7445,6197,5276,6237,6722,5276,5276,5372,7365,6199,6197,5276,6199,5276,5925,7445,6198,6198,6198,5276,5276,5926,6198,5276,6896,6896,5389,6536,5368,5525,6145,5276,5276,5276,6133,6358,5367,5276,5276,6198,6537,6199,6536,6200,5276,6537,5276,5276,5276,6480,6167,6152,6171,6175,6179,6181,6185,6185,6181,6189,6189,6189,6189,6189,6191,5276,5276,5564,6363,6206,5276,5276,5276,6199,6200,6251,5898,5276,5276,5565,5371,5276,5276,5575,6934,6200,5276,7454,5803,7356,5276,6293,5276,5804,5276,5287,5291,7160,7066,6196,5276,5285,6217,6223,7106,6232,5276,5287,7149,7129,6243,5276,7260,5276,5288,7150,7141,6257,5276,5789,5276,5276,5276,6202,6263,5276,5276,5276,6201,5367,5369,5387,6274,6253,5278,6018,5276,5276,5642,5276,5276,5276,6388,6113,5193,6286,6935,6040,6287,6936,6041,5276,5276,5191,5195,6288,6937,6042,5276,5276,5276,6226,5385,6114,6252,5276,5307,5311,5315,7420,7354,5276,5276,5739,7397,7403,6298,6329,5803,5276,5276,6006,6299,6330,5276,5276,5276,6265,6300,6331,5276,5276,5753,5752,5387,6275,5897,5276,5328,6552,6547,5803,6197,7453,7421,6267,6392,5479,6312,6329,5276,6458,5480,6313,6330,5276,5276,5764,5276,5385,6246,6253,5276,5363,5367,5276,5276,6536,6317,6267,5276,5276,5276,5621,6392,7412,6327,6332,6301,5803,5276,5276,5815,7444,6522,5276,5276,5375,5276,5276,5365,5276,5276,5916,5276,5276,5276,6294,5368,5386,6336,5276,5365,5276,6535,5276,6820,7444,5276,5276,6519,6308,5276,6198,5276,7452,5280,5276,5276,5276,6307,6197,5276,6843,5276,6356,6250,6678,5276,5276,5276,6368,5276,6844,5894,5276,5369,5998,6524,5276,5276,5276,5277,6208,6362,5276,5276,5276,6371,5276,6846,5276,5276,5898,5276,6005,5276,5276,6005,5276,5276,6846,6004,6002,6846,6005,6005,6005,5276,5276,6004,5276,5276,6005,6847,5276,5276,5995,6375,5894,5276,6520,6383,5276,5276,5276,6404,5871,6112,7024,6387,6111,5276,5276,5276,5363,6401,6761,6409,6972,6429,6432,6433,6434,6438,6438,6438,6438,6441,6443,6444,6444,6451,6451,6451,6451,6448,6452,5276,5276,5276,6425,5348,6566,5276,5276,5276,6463,6370,6494,5276,5276,5973,5276,5362,6468,5276,6469,6475,5276,5276,5276,6519,5276,6484,5276,5276,6e3,5389,6228,6477,5276,5276,6012,5276,6112,5276,5276,5276,6520,5276,5276,5276,6396,5304,6197,5276,5276,6060,6059,5276,6499,6507,5276,5386,5283,5276,5276,6395,5276,5276,5279,6208,6518,5276,5276,5359,5276,5276,5276,6524,5276,5276,6534,6534,5276,5388,5276,5284,6546,6618,5276,5276,6109,5903,6553,6548,5276,5276,6116,5998,5349,6567,5276,5276,5276,6392,6611,5305,6199,5276,6537,6265,5276,6236,6525,5276,6830,6573,5818,5276,6831,5501,5819,5276,6832,5502,5820,6830,5500,5818,5276,5422,6847,5276,5522,7448,5276,5636,6001,5998,6565,5276,5276,5276,6525,5276,5276,7449,6887,6493,5276,5641,6843,5276,5276,5276,6237,6537,5276,6268,6140,5276,6390,5276,6459,6571,6577,5821,5276,5276,5276,6657,5276,7285,5499,6578,5276,5276,6886,5279,5276,5649,6028,6094,5276,6458,5276,5276,5276,6526,7024,6877,5256,6579,5276,5276,5276,6528,6598,5276,5276,5276,6536,5276,6592,5276,5276,5276,6620,5276,6391,6459,5276,5739,7123,6938,5281,6583,6579,5276,5741,7125,6332,6602,5276,6459,5276,5741,7125,6522,5276,6404,5871,5280,5276,5302,5276,5757,5276,5356,6392,6526,5276,5276,6118,5279,6610,5276,5276,5276,6783,5367,6615,5276,5276,5276,6784,5276,6919,6923,5276,5777,5276,5276,5327,6542,5280,6537,6266,5276,5788,6264,5276,5288,7184,7189,5276,5277,5276,5367,5276,6268,6141,6712,6424,5276,5276,6126,5898,5276,5276,5632,6626,6634,5276,5276,6131,6414,6108,5276,5276,6395,5276,6844,5276,5276,5917,5276,6521,5276,6395,6522,6729,6846,5276,5375,6502,6651,6664,6672,6682,6685,6689,6693,6693,6693,6695,6697,6697,6697,6697,6701,6702,6702,6702,6703,6707,5276,6711,6423,5276,5276,5276,6735,5276,6716,5276,7351,5276,6727,5276,7420,6268,6969,6745,5276,5276,5276,6785,5450,5276,5276,5276,6793,6743,6094,5276,6750,6751,5276,5276,5276,6844,6212,5276,5276,5276,6847,5276,5276,6755,5276,5276,6238,5276,6524,6798,6267,6759,6771,6766,5276,5276,5276,6877,5194,6287,5276,7275,5276,5276,6248,5276,5276,6776,6772,6767,6790,5276,6792,5276,5907,5276,6269,5894,7260,7023,5276,5276,5276,6111,6392,6422,6847,5276,6100,5276,6888,5276,5276,6521,5276,5276,6194,7446,5368,7418,5276,5276,6293,5276,5276,5276,6269,6206,7033,6523,6797,6266,5312,5316,5276,5276,5276,6921,5313,5317,5276,5276,5276,6933,6792,6791,5276,5276,6305,5304,6420,6424,5276,5276,6319,6922,5276,5276,6118,5276,5374,5276,5276,6535,5276,5276,7034,7452,6826,5276,5908,5278,6495,5276,6519,5276,5276,5276,5281,5255,6598,5276,7033,5863,6828,6852,5314,5318,5276,5276,6913,5276,5276,5276,6958,6858,5318,5276,5276,6321,5800,6857,5317,5276,5276,6340,5802,6535,5276,6862,5276,6022,5753,5276,5278,5276,5276,7210,5276,6871,5276,5276,5276,7191,6199,6200,5276,5276,5276,7042,6425,5276,5276,6876,6887,5276,5367,6820,7444,5276,6002,5276,6194,7052,5276,6637,6520,5276,6536,5276,6822,5276,5276,6341,5276,7204,5276,5276,5276,7203,5367,5276,6786,5276,5276,6392,6921,6821,5276,5276,6904,5276,5276,6388,6391,6480,5276,5276,5276,7239,5276,6478,5367,5276,6095,5276,5276,6394,5276,6897,5276,5276,6883,6535,5276,5371,6904,5364,5276,6894,5276,6110,5276,5276,5981,7461,7451,5276,5276,5276,5983,7470,5990,5283,6536,6901,5276,6114,5276,6001,6911,5374,6535,5368,5803,5276,6392,6412,5369,5276,5276,5366,5364,6537,6364,5364,5276,5367,5371,5366,5364,5276,5276,6536,5365,5276,5366,5276,5366,5367,6538,6538,6538,5773,5767,5769,5771,5771,5772,5276,7445,5183,5276,5282,5917,7454,6113,6917,6942,7063,5336,6951,6962,6966,5531,6992,6995,6995,6998,7003,7002,7002,7004,7008,7009,7015,7013,7013,7013,7013,7019,7022,7030,5276,5276,6115,5375,5528,6927,5276,7445,6842,7453,6149,6156,6163,7038,6983,5276,5276,6392,7229,5277,5276,5276,7046,7060,5276,7070,5276,6116,5999,5276,6117,5276,5276,5364,5276,5276,5276,7240,7085,5276,5276,5276,7337,5349,5276,6906,7086,5276,6117,5368,5276,5276,6907,5276,7090,5276,6120,5276,5368,5389,6113,7094,5276,5276,5276,7338,6840,5276,6782,7444,6985,5276,5896,5276,6197,5276,5276,7024,5276,7104,5277,5276,5276,6947,6946,5276,6378,5276,5276,5276,7356,5276,5276,7356,6396,7111,7118,6379,5276,7119,6094,5276,5276,6405,5872,5898,6956,6954,5276,5276,6422,6847,7144,5276,5276,5276,7363,5285,5289,7113,7142,5286,7148,7114,7143,6201,5367,5276,5276,6458,5480,6298,7452,7154,5276,5895,5290,7159,7164,5318,7066,5318,5276,5276,6458,5481,6301,6676,5276,5276,6199,5276,5276,5276,6879,7180,5276,5276,5276,7364,5290,7174,7179,5276,5276,7178,5276,5276,5276,7380,5740,7169,5276,5276,6467,5276,6677,6197,5276,5924,7196,6975,5276,5276,6467,7049,5285,7195,7185,6391,6116,5276,5276,5276,7208,7454,5276,5276,6473,6477,6526,5276,7449,5276,6197,6520,5276,7446,5276,5375,7224,5276,5276,5276,7381,7214,5276,5276,5276,7408,7223,6847,5276,5276,6479,5276,7222,6425,5276,6201,6886,6492,7200,5276,6237,5276,5276,6841,6675,5276,5276,5387,5276,5276,6488,5276,6878,6781,5276,5276,6514,5276,5276,6879,7230,5276,5276,5276,7446,7228,5276,5276,6249,7452,5276,5389,5276,6198,6197,5276,6e3,5276,6238,5276,6524,6201,5276,6201,7449,5276,6193,7445,5276,5280,6209,6213,5276,6520,5276,5281,6065,6587,6879,7455,5276,5276,6525,6526,6659,6079,7450,5276,6395,7455,6621,6847,5276,7238,5276,6622,5276,5276,6526,7416,5276,6622,5276,7247,6620,7455,5276,5276,6530,5276,7391,6527,6621,6847,5276,5276,6537,5276,5276,6536,6621,6847,7455,5387,5388,6847,5388,7344,5276,5276,7229,7453,5386,5423,5389,5276,5276,6593,5276,5388,5276,5386,5388,7253,5276,7258,7446,6196,5276,5363,5276,6210,6887,5276,5894,5276,5276,5276,5971,7257,5276,5916,6640,7264,6258,5276,5189,5276,7260,5916,7259,6503,7097,7283,7273,5724,7100,7135,7279,6930,7132,7289,7293,7302,7295,7297,7306,7298,7317,7310,7311,7315,7318,7326,7326,7328,7324,7322,7332,7335,5276,6218,5750,5276,5276,7362,7366,7364,7342,5276,6467,5389,5281,5276,5276,6621,5276,5276,6393,5276,5915,5276,6227,6476,5276,5377,6746,5276,5386,5276,5276,5276,7449,5276,5276,7360,7370,7376,7385,5276,5276,5276,7450,5276,5276,6529,7386,5276,6265,5276,5276,5378,6094,7392,5276,5276,5276,7451,7342,7445,6201,5276,6266,5276,5276,5382,5400,5400,5400,5427,6389,6113,5276,5276,6235,6234,5276,5276,5276,7457,5276,6526,6716,7433,7396,7402,5276,5276,6733,6739,7403,5276,5276,5276,7466,7408,7398,7404,6844,5276,6847,5276,6267,6140,5276,5388,7230,5276,5414,5400,5400,5400,5428,7342,7447,7451,5276,6268,5276,6237,6268,5276,5276,7356,6110,6268,5276,5276,5276,5643,7409,5986,7425,5276,6292,5276,5276,5740,7124,7030,7410,5987,7426,5276,6306,5305,5276,5276,6201,5276,5276,5276,5739,7168,7411,5988,7427,5276,6323,7446,6117,5276,5371,5276,5276,7454,5276,6887,5276,5985,5989,6236,6846,6003,5276,6004,5276,6004,6002,5276,6845,5276,5276,5276,6802,5311,6560,7449,5276,5276,5281,7200,5276,6393,5276,7452,5276,5276,5276,6388,6113,5276,6233,5836,5898,5276,5276,7387,5868,7434,5276,5276,5276,6877,7228,6201,5276,7452,5962,5276,5276,5276,6853,5315,5898,5276,5276,7431,5276,5276,5276,6878,7229,5984,7471,5991,5276,6340,5803,5276,5780,5276,5990,5276,5276,5276,6920,5821,5982,7469,5989,5276,6346,6351,5276,5276,6388,6113,5276,5276,6946,5276,5276,7438,5276,5276,7024,5276,5276,5276,7467,7476,5276,5276,7477,5276,5276,5276,7025,5276,7450,5276,5388,5281,6279,5276,5276,5622,5315,5276,6389,6114,5276,6347,6352,5276,5276,5276,7444,5276,5276,5276,6945,7466,7475,5276,5276,7041,5276,5631,5276,5388,5282,7466,7462,5276,5276,5276,7040,5276,5276,5276,7081,5276,5303,5276,5276,5276,7110,6654,0,0,1075838976,2097152,-1845493760,0,0,2147483648,16777216,4194560,4196352,270532608,2097152,2097152,268435456,4194432,16777216,4194432,3145728,541065216,-2143289344,4194304,4194304,4194304,4194304,541065216,4194304,4194304,4194432,37748736,-1606418432,541065216,541065216,541065216,541065216,4194304,4194304,4196352,-1606418432,-1606418432,541065216,541065216,4194304,4198144,541065216,541065216,-2143289344,-2143289344,8425488,4194304,4194304,4194304,1,32768,0,2147483648,16,33554432,33554432,0,2,4,112,128,256,3584,16384,37748736,742391808,239075328,775946240,775946240,775946240,171966464,171966464,171966464,171966464,239075328,171966464,775946240,239075328,4718592,64,4718592,2097216,4720640,541589504,4194368,541589504,4194400,4194368,-2142763008,541589504,541065280,4194368,4194368,541065312,541065280,-2143289280,4194368,-2143285408,-2143285408,-2143285440,-2143285440,-2143285440,-2143285440,-1605890240,-2142761152,-2109731008,-1606414528,-2142761152,-1606414528,-2143285440,-2143285440,-1606414528,-1606414528,-2143285440,-2109731008,776470528,-1908404416,775946304,-1908404416,2,4,8,16,512,1024,4194304,128,128,0,2147483648,524288,5242880,2147483648,0,0,2,12,64,256,2048,2048,0,0,0,0,1,0,0,0,2,0,0,0,3,4,16,224,256,512,1024,16777216,16777216,0,0,2147483648,65536,1792,0,0,0,8,0,0,0,12,32,64,1024,2048,57344,262144,50331648,268435456,1073741824,2147483648,0,0,1536,64,524352,524352,524352,0,0,0,62,64,128,64,262144,1048576,0,2147483648,2097152,0,-2113929216,0,0,-1979711488,-1912602624,64,64,1048576,128,256,2048,262144,524288,4096,1024,1024,0,-570425344,32505856,0,0,48,25165824,0,0,0,33554432,268435456,0,0,0,524288,0,0,0,32,0,0,0,44,64576,319029248,0,524288,524288,524288,0,64,0,0,0,64,0,96,96,96,524352,524352,524352,524352,524288,524288,524288,524288,64,64,0,64,128,128,128,128,2048,2048,0,0,524288,524288,64,64,128,2048,0,0,64,128,8388608,524288,64,64,64,64,32,96,64,96,96,524352,96,160,1056,262176,1048608,2097184,4194336,536870944,40,262176,32,96,0,0,0,60,40,48,1120,96,96,64,524352,0,524288,64,96,524352,0,524288,4195360,6291488,2097184,2097184,4194336,4194336,4194336,32,56,0,4,16,32,64,128,256,1536,2048,40,262184,40,40,40,40,40,262176,32,32,6292512,4195360,2097184,32,128,1792,8192,16384,131072,524288,4195104,6292512,32,32,32,32,4,40,262184,32,32,34,34,262184,40,4196128,32,262144,524288,0,0,64,256,0,2097152,135790592,131073,4,393233,262184,34,42,32,524320,32,1073872896,32,32,40,1120,96,1056,4194336,32,2098208,-322695456,-322695456,-322695456,-322695456,-322597152,-320598176,-322597152,-322597144,-321548576,-320598168,-322597144,-321548568,-37482773,0,0,64,1536,32768,-322588952,-321548568,-322588952,-321548568,-322597144,32,0,32,64,65536,0,96,32,32,56,262184,40,41,262184,32,42,224,40,262176,42,106,293601323,293601323,293863467,293699627,293617707,293716011,293702203,293702203,293702203,297896507,293702203,293702203,293702203,293702267,293964347,293702267,297896507,293964347,297896507,297896507,-322597144,-37744981,0,32,524288,0,0,64,2048,16384,32768,0,0,262144,65536,262144,262144,0,4096,0,8,0,2,65536,262656,328192,0,0,0,1536,32768,0,5242880,0,0,0,1998,518144,8388608,-2147418112,5242880,-1842937664,201330721,201330721,-2111369023,-2111369023,-2111369023,-2111369023,-2111360575,-2111369023,-2111369023,-2111369023,-1977151295,-1977151293,-1910042431,-1893265183,-2111368509,-1893265183,-1893265183,-1893265183,-1893265183,-2111368509,-1893265183,-1893265183,-553689472,-553656704,-553689472,-553689472,-553656704,-553656704,-553656704,-553656704,-553656704,-553656672,-553656672,-553656672,-553656672,-536912159,-553656672,-553656672,-553656664,-553656664,-553656672,-553656672,-553656670,-553656672,-553656672,-553656670,-553656608,-553656671,-536879391,-536879391,-536879391,0,0,262656,0,0,65,1024,0,1,4096,201326592,0,0,0,0,462976,-2113929216,100663296,100663296,2,4,8,64,128,512,2048,8192,16384,458752,18874368,463488,0,0,1,2,4,32,0,0,1007232,15728640,104e4,15728640,-570425344,0,0,0,2014,0,0,0,32505856,-570425344,196608,2097152,301989888,0,0,80,268435456,0,268435456,0,268435456,268435456,268435456,268435456,0,0,0,4096,201326592,0,0,96,2260992,12288,0,2147483648,0,0,118,577408,22020096,1040187392,0,0,167772160,234881024,128,512,2048,196608,262144,33554432,536870912,0,0,0,557056,7168,16384,196608,786432,503316480,1073741824,2147483648,0,0,128,131072,524288,58720256,402653184,0,0,0,318767104,128,512,7168,16384,32768,32768,196608,786432,1048576,2097152,4194304,33554432,268435456,536870912,2147483648,0,0,1,256,8388608,234881024,268435456,1073741824,2147483648,4096,16384,32768,131072,524288,1048576,2097152,4194304,8388608,234881024,0,0,201326592,0,0,128,536870912,4194304,512,3072,16384,131072,524288,1048576,4194304,134217728,8388608,33554432,201326592,268435456,1073741824,0,1048576,4194304,268435456,4194304,8388608,134217728,268435456,1073741824,3072,131072,524288,1048576,1073741824,0,0,0,2147483648,0,0,0,-2147483646,16384,18432,67108864,1073741824,16384,8192,0,0,65536,262144,0,0,67108864,0,0,0,32768,0,1,18952,1024,0,0,192,0,0,0,65,1024,1024,100663298,18952,65,268436480,2101248,524288,1024,19017,-1744550912,8388624,8388624,8388624,-1739308032,-1739308032,-1739308032,-1739308032,-1736162288,-1736162288,-1736162288,-1736162288,-7868466,-7868466,-7868466,-7868466,-7868466,-7868450,-7868450,-7868450,-7868450,0,0,0,65536,2048,16384,67108864,134217728,268435456,0,0,1073741824,18432,0,0,1,285212672,0,585,0,0,2,8,16,64,128,3072,4096,8192,65536,131072,0,0,1024,5521408,-1744830464,0,0,0,262144,0,0,0,1024,0,0,0,112,1040,0,0,-1744830464,0,-1744830464,59238400,-67108864,0,0,0,327680,2014,0,0,0,328192,518144,8388608,50331648,201326592,805306368,-1073741824,768,1024,10240,16384,32768,458752,50331648,67108864,134217728,805306368,0,0,0,458880,32768,458752,8388608,50331648,67108864,134217728,67108864,134217728,805306368,1073741824,2147483648,0,0,220,0,0,0,471424,12,192,768,1024,2048,805306368,1073741824,0,0,2,204,768,1024,4,8,32,64,512,2048,512,2048,16384,67108864,0,0,458752,50331648,67108864,805306368,-1073741824,0,0,0,393240,0,1048576,4194304,0,0,16384,458752,50331648,67108864,536870912,1073741824,0,0,16384,0,0,0,256,0,0,0,512,0,0,0,585,16,0,0,1048576,4194304,2147483648,4,8,128,512,3072,16384,32768,131072,512,0,0,4096,1048576,2147483648,8192,2097152,268435456,2147483648,537395200,537395200,0,4196352,51380242,51380242,51380242,0,537395200,4196352,4196352,276901888,8540160,-1606418432,0,32768,537395200,4196352,1082130432,0,4196352,537427968,22022147,22349827,22349827,22349827,22366219,22349843,22349827,22349827,22366219,22349827,55576594,55576594,55576594,55576594,55576594,324012114,55576594,55576594,1062785014,1062785014,1062785014,1062785014,0,0,2,33554432,0,0,0,131072,0,0,0,8192,8392704,32768,268435456,0,0,2,67108864,12,16384,0,65536,0,22020096,0,0,0,104e4,15728640,0,0,329728,0,0,254,1792,2809856,58720256,19,0,0,0,1048576,0,0,0,2048,0,0,0,18,33554432,0,0,256,8192,0,0,8192,2097152,0,2147483648,0,82,301989888,0,0,0,2101248,22020096,1040187392,0,0,0,4194304,0,0,0,16384,1536,0,256,0,8192,2097152,16,1048576,16777216,33554432,268435456,536870912,2147483648,3584,16384,32768,524288,1048576,4194304,0,0,8388608,1073741824,0,0,1536,2048,16384,32768,524288,4194304,134217728,0,0,134217728,4096,0,8,0,256,1536,16384,32768,524288,128,536870912,0,0,4,8,512,2048,0,0,1536,32768,524288,4194304,33554432,134217728,536870912,0,0,8192,2097152,2147483648,0,0,512,2048,131072,536870912,0,0,16,64,1536,32768,32768,524288,134217728,0,0,0,524288,0,64,64,16392,1536,32768,524288,0,0,33554432,8192,0,65536,0,0,1,1,0,1,67174400,33554432,536870912,-1073741824,0,0,0,0,524288,134217728,67174400,0,0,0,16777216,0,0,0,4,0,0,0,7,16,16384,8,8,0,0,512,3072,131072,131072,268435456,134217728,8,512,2048,196608,262144,50331648,536870912,1073741824,0,4,8,2048,8192,32768,8388608,0,0,134217736,16908320,547389524,547389524,555909216,555909216,555909216,555909216,564297840,564297844,564297844,564297844,564297844,1001055742,1001056254,1001055742,1001055742,1001056254,1001056254,1001056254,1001056254,1001055742,1001056254,1001056254,1001056254,1001056254,0,1052672,2147483648,0,0,4,16,0,0,84,2129920,8388608,4096,0,0,0,116,0,254,1280,2809856,58720256,939524096,0,0,0,50331648,268435456,0,0,0,939524096,0,0,520,1024,0,0,1,0,67108864,1073741824,0,0,0,20,64,32768,8192,0,2048,0,2097152,8388608,536870912,0,0,1024,278528,0,0,0,393232,163840,0,0,0,134217728,0,0,0,16,0,0,0,15,208,15360,1245184,52,0,0,0,268435456,0,0,33554432,64,128,1280,24576,163840,524288,2097152,58720256,402653184,536870912,128,1792,24576,163840,524288,0,4,16,8388608,0,0,4096,32768,262144,524288,33554432,134217728,0,0,24,32,128,1280,8192,16384,8192,524288,16777216,33554432,402653184,0,4,8,16,1024,2048,8192,16384,32768,458752,0,262144,33554432,134217728,0,512,1024,16777216,33554432,402653184,0,4096,1048576,0,0,1998,59238400,-67108864,4,8,16,402653184,0,0,8,16,402653184,536870912,0,0,4,64,128,8388608,0,0,67108866,12,64,128,512,1024,4,16384,65536,67108864,0,65536,0,0,2048,64,64,64,96,96,96,96,0,8192,8192,268435460,32768,65536,2490368,16777216,2147483648,0,0,1,4,8,2048,8192,3670016,2048,2048,2048,2048,0,8192,34816,9216,4096,0,128,0,2097152,0,0,4096,4096,29696,29712,29840,29712,29712,29840,29840,536900624,4224144,144384,144384,144384,144384,-754647956,-754647956,-754647956,-754647956,-754647956,-754647940,-754647940,-754647940,-754647940,-754516884,-754647956,-754516884,-754516884,-754516884,4,8,256,512,2048,0,0,3670016,0,0,2048,131072,524288,4194304,2147483648,0,0,9216,0,0,4,134217728,0,29696,0,0,4,268435456,0,16,0,29824,0,60,64576,319029248,-1073741824,0,0,319160320,0,0,0,319160320,0,0,524288,3145728,0,12288,131072,0,8,131072,61440,262144,318767104,-1073741824,0,0,64,1024,2048,61440,262144,0,28,32,64,64,64,128,0,0,16384,32768,50331648,268435456,0,0,0,393216,0,0,0,486539264,0,128,0,536870912,0,0,12,16,32,327155712,34,1056,32,32,42,4457568,-326784344,-322851160,-322698144,-322698144,-322698144,-322698144,-322695456,0,0,524288,1048576,0,0,0,536870912,4194304,131072,0,0,6,56,128,1792,2,67108864,16384,0,0,4096,4194304,32768,0,0,0,8388608,0,0,0,72,0,8,64,2048,57344,16384,32768,262144,50331648,268435456,0,524288,1048576,2097152,4194304,134217728,2147483648,0,0,50331648,268435456,2147483648,0,0,1,0,0,2,4,16,64,1,0,2,0,0,65536,0,0,0,1040,8667136,0,131072,131072,0,131072,0,131072,0,0,524288,536870912,131072,0,0,7,27756528,-503316480,0,256,0,2048,32768,8388608,262144,2113536,0,0,8,16,512,402653184,0,0,0,256,32768,0,0,4224,65536,262144,1048576,4194304,16777216,33554432,67108864,134217728,0,0,256,262144,0,0,8192,268435456,0,0,0,4,131073,0,0,9728,268435456,0,0,16,393216,0,131073,131073,33554624,4,0,131073,0,0,13312,131072,4194304,-2146430976,131072,2097152,16777216,0,0,512,131072,1048576,2097152,0,1572864,0,0,0,2147483648,524288,0,1610612736,1610612736,1610612736,393241,393241,393241,393241,805707793,805707793,1879449617,805708049,1879449617,1879449617,1879449617,1879449617,-483948553,-475559945,-483948553,-475559945,-483948553,-483948553,-475559945,-475559945,-475559945,-475559945,-483948553,-483948553,-215504905,-475559945,-207116297,-207116297,0,0,0,1073741824,0,0,2097152,67108864,134217728,536870912,0,0,24576,0,0,0,2113536,0,0,8,64,0,0,0,401424,805306368,0,0,28672,0,0,4096,2097152,4194304,8388608,503316480,1073741824,0,0,1879048192,0,0,32768,2097152,8388608,16777216,33554432,0,401680,0,0,8,512,2048,131072,33554432,536870912,0,0,7,19367920,-503316480,27756528,-503316480,0,0,0,0,0,19376112,-234881024,0,27764720,-234881024,0,0,32768,33554436,0,0,33554436,24,0,0,0,11,346112,7,16,480,1536,32768,65536,393216,10485760,65536,10878976,16777216,33554432,536870912,4,32,524288,1048576,33554432,67108864,65536,393216,2097152,16777216,262400,65536,4224,4224,0,65536,201326592,2147483648,393216,10485760,16777216,33554432,1073741824,2147483648,0,16,224,256,1536,32768,65536,0,16384,2097152,0,0,1024,32768,65536,131072,262144,262144,2097152,16777216,33554432,4,32,524288,134217728,0,512,32768,131072,262144,2097152,2097152,8388608,16777216,1073741824,0,0,512,32768,131072,2097152,8388608,8388608,16777216,0,0,16,33554432,4,16,224,512,32768,4,524288,134217728,0,0,32768,50331648,268435456,4096,32768,0,0,16,536870912,16,192,32768,8388608,4096,4096,4096,1536,2,4,16,192,32768,0,16,64,128,8388608,0,0,0,2,4,134217728,4,0,0,128,512,3072,4096,16384,131072,4,128,0,0,18,17825792,524288,8388608,33554432,2147483648,8192,0,33554432,0,0,33554432,0,0,0,268435456,2,4,8,262144,262144,1048576,2048,32768,0,0,28,0,100663296,4224,65536,65536,262144,33554432,0,2,4,24,-1072627712,805306384,-1342177264,-1342177264,-1070006272,-1070006272,-1069989376,-1069989376,-258932720,-258932720,-258932720,-258932720,-225378288,-1069989376,-1069989360,-1065795072,-1061600768,-258932720,-225378288,-258932720,-258932720,1260767,34815199,1260767,34815199,1260767,34815199,34815199,1260767,1260767,34815199,1260767,1260767,169032927,-1978450721,169032927,-1978450721,169032927,169032927,169032927,169032927,1242774751,-1978450721,-1978450721,-225231649,-1173144353,-225231649,-91013921,0,0,32,128,256,262144,524288,8388608,0,64,0,0,1114112,1073741824,0,0,34816,0,0,2048,4194304,0,0,0,3735552,0,0,32,512,2048,32768,262144,524288,3751936,0,0,0,48,0,0,528,7946240,12140544,9502720,1610612736,0,0,0,15360,1245184,0,0,134217728,128,15,9633792,0,0,0,2,12,80,128,7168,8192,7168,8192,196608,1048576,0,0,0,1,2,12,16,64,128,256,0,0,3145728,0,0,0,536870912,0,0,8192,65536,131072,1048576,0,0,0,2097152,0,16384,0,4194304,0,0,2097152,16384,0,0,131072,2097152,0,0,0,4096,0,0,8192,0,0,0,128,0,0,0,208,0,64,128,1024,4096,0,0,2,8,64,128,1024,2048,4096,8192,128,1024,4096,8192,0,0],r.TOKEN=["(0)","PragmaContents","DirCommentContents","DirPIContents","CDataSection","Wildcard","EQName","URILiteral","IntegerLiteral","DecimalLiteral","DoubleLiteral","StringLiteral","PredefinedEntityRef","'\"\"'","EscapeApos","ElementContentChar","QuotAttrContentChar","AposAttrContentChar","PITarget","NCName","QName","S","S","CharRef","CommentContents","EOF","'!'","'!='","'\"'","'#'","'#)'","'$'","'$$'","'%'","''''","'('","'(#'","'(:'","')'","'*'","'*'","'+'","','","'-'","'-->'","'.'","'..'","'/'","'//'","'/>'","':'","':)'","'::'","':='","';'","'<'","'<!--'","'</'","'<<'","'<='","'<?'","'='","'>'","'>='","'>>'","'?'","'?>'","'@'","'NaN'","'['","']'","'after'","'all'","'allowing'","'ancestor'","'ancestor-or-self'","'and'","'any'","'append'","'array'","'as'","'ascending'","'at'","'attribute'","'base-uri'","'before'","'boundary-space'","'break'","'by'","'case'","'cast'","'castable'","'catch'","'check'","'child'","'collation'","'collection'","'comment'","'constraint'","'construction'","'contains'","'content'","'context'","'continue'","'copy'","'copy-namespaces'","'count'","'decimal-format'","'decimal-separator'","'declare'","'default'","'delete'","'descendant'","'descendant-or-self'","'descending'","'diacritics'","'different'","'digit'","'distance'","'div'","'document'","'document-node'","'element'","'else'","'empty'","'empty-sequence'","'encoding'","'end'","'entire'","'eq'","'every'","'exactly'","'except'","'exit'","'external'","'false'","'first'","'following'","'following-sibling'","'for'","'foreach'","'foreign'","'from'","'ft-option'","'ftand'","'ftnot'","'ftor'","'function'","'ge'","'greatest'","'group'","'grouping-separator'","'gt'","'idiv'","'if'","'import'","'in'","'index'","'infinity'","'inherit'","'insensitive'","'insert'","'instance'","'integrity'","'intersect'","'into'","'is'","'item'","'json'","'json-item'","'jsoniq'","'key'","'language'","'last'","'lax'","'le'","'least'","'let'","'levels'","'loop'","'lowercase'","'lt'","'minus-sign'","'mod'","'modify'","'module'","'most'","'namespace'","'namespace-node'","'ne'","'next'","'no'","'no-inherit'","'no-preserve'","'node'","'nodes'","'not'","'null'","'object'","'occurs'","'of'","'on'","'only'","'option'","'or'","'order'","'ordered'","'ordering'","'paragraph'","'paragraphs'","'parent'","'pattern-separator'","'per-mille'","'percent'","'phrase'","'position'","'preceding'","'preceding-sibling'","'preserve'","'previous'","'processing-instruction'","'relationship'","'rename'","'replace'","'return'","'returning'","'revalidation'","'same'","'satisfies'","'schema'","'schema-attribute'","'schema-element'","'score'","'select'","'self'","'sensitive'","'sentence'","'sentences'","'skip'","'sliding'","'some'","'stable'","'start'","'stemming'","'stop'","'strict'","'strip'","'structured-item'","'switch'","'text'","'then'","'thesaurus'","'times'","'to'","'treat'","'true'","'try'","'tumbling'","'type'","'typeswitch'","'union'","'unique'","'unordered'","'updating'","'uppercase'","'using'","'validate'","'value'","'variable'","'version'","'weight'","'when'","'where'","'while'","'wildcards'","'window'","'with'","'without'","'word'","'words'","'zero-digit'","'{'","'{{'","'{|'","'|'","'||'","'|}'","'}'","'}}'"]},{}],10:[function(e,t,n){var r=n.XQueryParser=function i(e,t){function r(e,t){Vl=t,Ql=e,Gl=e.length,s(0,0,0)}function s(e,t,n){Dl=t,Pl=t,Hl=e,Bl=t,jl=n,Fl=0,Zl=n,Ul=-1,$l={},Vl.reset(Ql)}function o(){Vl.startNonterminal("Module",Pl);switch(Hl){case 274:Ll(199);break;default:_l=Hl}(_l==64274||_l==134930)&&u(),kl(275);switch(Hl){case 182:Ll(194);break;default:_l=Hl}switch(_l){case 94390:Nl(),a();break;default:Nl(),Ra()}Vl.endNonterminal("Module",Pl)}function u(){Vl.startNonterminal("VersionDecl",Pl),Sl(274),kl(116);switch(Hl){case 125:Sl(125),kl(17),Sl(11);break;default:Sl(263),kl(17),Sl(11),kl(109),Hl==125&&(Sl(125),kl(17),Sl(11))}kl(28),Nl(),c(),Vl.endNonterminal("VersionDecl",Pl)}function a(){Vl.startNonterminal("LibraryModule",Pl),f(),kl(138),Nl(),l(),Vl.endNonterminal("LibraryModule",Pl)}function f(){Vl.startNonterminal("ModuleDecl",Pl),Sl(182),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),kl(28),Nl(),c(),Vl.endNonterminal("ModuleDecl",Pl)}function l(){Vl.startNonterminal("Prolog",Pl);for(;;){kl(275);switch(Hl){case 108:Ll(214);break;case 153:Ll(202);break;default:_l=Hl}if(_l!=42604&&_l!=43628&&_l!=50284&&_l!=53356&&_l!=54380&&_l!=55916&&_l!=72300&&_l!=93337&&_l!=94316&&_l!=104044&&_l!=113772&&_l!=115353)break;switch(Hl){case 108:Ll(179);break;default:_l=Hl}if(_l==55916){_l=Kl(0,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{_(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(0,Pl,_l)}}switch(_l){case-1:Nl(),M();break;case 94316:Nl(),O();break;case 153:Nl(),C();break;case 72300:Nl(),D();break;default:Nl(),h()}kl(28),Nl(),c()}for(;;){kl(275);switch(Hl){case 108:Ll(211);break;default:_l=Hl}if(_l!=16492&&_l!=48748&&_l!=51820&&_l!=74348&&_l!=79468&&_l!=82540&&_l!=101996&&_l!=131692&&_l!=134252)break;switch(Hl){case 108:Ll(175);break;default:_l=Hl}switch(_l){case 51820:Nl(),R();break;case 101996:Nl(),Q();break;default:Nl(),P()}kl(28),Nl(),c()}Vl.endNonterminal("Prolog",Pl)}function c(){Vl.startNonterminal("Separator",Pl),Sl(53),Vl.endNonterminal("Separator",Pl)}function h(){Vl.startNonterminal("Setter",Pl);switch(Hl){case 108:Ll(172);break;default:_l=Hl}if(_l==55916){_l=Kl(1,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{v(),_l=-2}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),w(),_l=-6}catch(f){_l=-9}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(1,Pl,_l)}}switch(_l){case 43628:p();break;case-2:d();break;case 42604:m();break;case 50284:g();break;case 104044:y();break;case-6:b();break;case 113772:ko();break;case 53356:E();break;default:T()}Vl.endNonterminal("Setter",Pl)}function p(){Vl.startNonterminal("BoundarySpaceDecl",Pl),Sl(108),kl(33),Sl(85),kl(133);switch(Hl){case 214:Sl(214);break;default:Sl(241)}Vl.endNonterminal("BoundarySpaceDecl",Pl)}function d(){Vl.startNonterminal("DefaultCollationDecl",Pl),Sl(108),kl(46),Sl(109),kl(38),Sl(94),kl(15),Sl(7),Vl.endNonterminal("DefaultCollationDecl",Pl)}function v(){xl(108),kl(46),xl(109),kl(38),xl(94),kl(15),xl(7)}function m(){Vl.startNonterminal("BaseURIDecl",Pl),Sl(108),kl(32),Sl(83),kl(15),Sl(7),Vl.endNonterminal("BaseURIDecl",Pl)}function g(){Vl.startNonterminal("ConstructionDecl",Pl),Sl(108),kl(41),Sl(98),kl(133);switch(Hl){case 241:Sl(241);break;default:Sl(214)}Vl.endNonterminal("ConstructionDecl",Pl)}function y(){Vl.startNonterminal("OrderingModeDecl",Pl),Sl(108),kl(68),Sl(203),kl(131);switch(Hl){case 202:Sl(202);break;default:Sl(256)}Vl.endNonterminal("OrderingModeDecl",Pl)}function b(){Vl.startNonterminal("EmptyOrderDecl",Pl),Sl(108),kl(46),Sl(109),kl(67),Sl(201),kl(49),Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}Vl.endNonterminal("EmptyOrderDecl",Pl)}function w(){xl(108),kl(46),xl(109),kl(67),xl(201),kl(49),xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}function E(){Vl.startNonterminal("CopyNamespacesDecl",Pl),Sl(108),kl(44),Sl(104),kl(128),Nl(),S(),kl(25),Sl(41),kl(123),Nl(),x(),Vl.endNonterminal("CopyNamespacesDecl",Pl)}function S(){Vl.startNonterminal("PreserveMode",Pl);switch(Hl){case 214:Sl(214);break;default:Sl(190)}Vl.endNonterminal("PreserveMode",Pl)}function x(){Vl.startNonterminal("InheritMode",Pl);switch(Hl){case 157:Sl(157);break;default:Sl(189)}Vl.endNonterminal("InheritMode",Pl)}function T(){Vl.startNonterminal("DecimalFormatDecl",Pl),Sl(108),kl(114);switch(Hl){case 106:Sl(106),kl(255),Nl(),Ha();break;default:Sl(109),kl(45),Sl(106)}for(;;){kl(181);if(Hl==53)break;Nl(),N(),kl(29),Sl(60),kl(17),Sl(11)}Vl.endNonterminal("DecimalFormatDecl",Pl)}function N(){Vl.startNonterminal("DFPropertyName",Pl);switch(Hl){case 107:Sl(107);break;case 149:Sl(149);break;case 156:Sl(156);break;case 179:Sl(179);break;case 67:Sl(67);break;case 209:Sl(209);break;case 208:Sl(208);break;case 275:Sl(275);break;case 116:Sl(116);break;default:Sl(207)}Vl.endNonterminal("DFPropertyName",Pl)}function C(){Vl.startNonterminal("Import",Pl);switch(Hl){case 153:Ll(126);break;default:_l=Hl}switch(_l){case 115353:k();break;default:A()}Vl.endNonterminal("Import",Pl)}function k(){Vl.startNonterminal("SchemaImport",Pl),Sl(153),kl(73),Sl(225),kl(137),Hl!=7&&(Nl(),L()),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal("SchemaImport",Pl)}function L(){Vl.startNonterminal("SchemaPrefix",Pl);switch(Hl){case 184:Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60);break;default:Sl(109),kl(47),Sl(121),kl(61),Sl(184)}Vl.endNonterminal("SchemaPrefix",Pl)}function A(){Vl.startNonterminal("ModuleImport",Pl),Sl(153),kl(60),Sl(182),kl(90),Hl==184&&(Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60)),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal("ModuleImport",Pl)}function O(){Vl.startNonterminal("NamespaceDecl",Pl),Sl(108),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),Vl.endNonterminal("NamespaceDecl",Pl)}function M(){Vl.startNonterminal("DefaultNamespaceDecl",Pl),Sl(108),kl(46),Sl(109),kl(115);switch(Hl){case 121:Sl(121);break;default:Sl(145)}kl(61),Sl(184),kl(15),Sl(7),Vl.endNonterminal("DefaultNamespaceDecl",Pl)}function _(){xl(108),kl(46),xl(109),kl(115);switch(Hl){case 121:xl(121);break;default:xl(145)}kl(61),xl(184),kl(15),xl(7)}function D(){Vl.startNonterminal("FTOptionDecl",Pl),Sl(108),kl(52),Sl(141),kl(81),Nl(),Fu(),Vl.endNonterminal("FTOptionDecl",Pl)}function P(){Vl.startNonterminal("AnnotatedDecl",Pl),Sl(108);for(;;){kl(170);if(Hl!=32&&Hl!=257)break;switch(Hl){case 257:Nl(),H();break;default:Nl(),B()}}switch(Hl){case 262:Nl(),F();break;case 145:Nl(),wl();break;case 95:Nl(),da();break;case 155:Nl(),xa();break;default:Nl(),Ta()}Vl.endNonterminal("AnnotatedDecl",Pl)}function H(){Vl.startNonterminal("CompatibilityAnnotation",Pl),Sl(257),Vl.endNonterminal("CompatibilityAnnotation",Pl)}function B(){Vl.startNonterminal("Annotation",Pl),Sl(32),kl(255),Nl(),Ha(),kl(171);if(Hl==34){Sl(34),kl(154),Nl(),oi();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(154),Nl(),oi()}Sl(37)}Vl.endNonterminal("Annotation",Pl)}function j(){xl(32),kl(255),Ba(),kl(171);if(Hl==34){xl(34),kl(154),ui();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(154),ui()}xl(37)}}function F(){Vl.startNonterminal("VarDecl",Pl),Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(147),Hl==79&&(Nl(),ds()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal("VarDecl",Pl)}function I(){Vl.startNonterminal("VarValue",Pl),_f(),Vl.endNonterminal("VarValue",Pl)}function q(){Vl.startNonterminal("VarDefaultValue",Pl),_f(),Vl.endNonterminal("VarDefaultValue",Pl)}function R(){Vl.startNonterminal("ContextItemDecl",Pl),Sl(108),kl(43),Sl(101),kl(55),Sl(165),kl(147),Hl==79&&(Sl(79),kl(260),Nl(),ws()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal("ContextItemDecl",Pl)}function U(){Vl.startNonterminal("ParamList",Pl),W();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(21),Nl(),W()}Vl.endNonterminal("ParamList",Pl)}function z(){X();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(21),X()}}function W(){Vl.startNonterminal("Param",Pl),Sl(31),kl(255),Nl(),Ha(),kl(143),Hl==79&&(Nl(),ds()),Vl.endNonterminal("Param",Pl)}function X(){xl(31),kl(255),Ba(),kl(143),Hl==79&&vs()}function V(){Vl.startNonterminal("FunctionBody",Pl),J(),Vl.endNonterminal("FunctionBody",Pl)}function $(){K()}function J(){Vl.startNonterminal("EnclosedExpr",Pl),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("EnclosedExpr",Pl)}function K(){xl(276),kl(267),Y(),xl(282)}function Q(){Vl.startNonterminal("OptionDecl",Pl),Sl(108),kl(66),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal("OptionDecl",Pl)}function G(){Vl.startNonterminal("Expr",Pl),_f();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),_f()}Vl.endNonterminal("Expr",Pl)}function Y(){Df();for(;;){if(Hl!=41)break;xl(41),kl(267),Df()}}function Z(){Vl.startNonterminal("FLWORExpr",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),rn(),Vl.endNonterminal("FLWORExpr",Pl)}function et(){nt();for(;;){kl(173);if(Hl==220)break;it()}sn()}function tt(){Vl.startNonterminal("InitialClause",Pl);switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:st();break;case 174:vt();break;default:bt()}Vl.endNonterminal("InitialClause",Pl)}function nt(){switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:ot();break;case 174:mt();break;default:wt()}}function rt(){Vl.startNonterminal("IntermediateClause",Pl);switch(Hl){case 137:case 174:tt();break;case 266:It();break;case 148:Rt();break;case 105:jt();break;default:Kt()}Vl.endNonterminal("IntermediateClause",Pl)}function it(){switch(Hl){case 137:case 174:nt();break;case 266:qt();break;case 148:Ut();break;case 105:Ft();break;default:Qt()}}function st(){Vl.startNonterminal("ForClause",Pl),Sl(137),kl(21),Nl(),ut();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),ut()}Vl.endNonterminal("ForClause",Pl)}function ot(){xl(137),kl(21),at();for(;;){if(Hl!=41)break;xl(41),kl(21),at()}}function ut(){Vl.startNonterminal("ForBinding",Pl),Sl(31),kl(255),Nl(),hi(),kl(164),Hl==79&&(Nl(),ds()),kl(158),Hl==72&&(Nl(),ft()),kl(150),Hl==81&&(Nl(),ct()),kl(122),Hl==228&&(Nl(),pt()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal("ForBinding",Pl)}function at(){xl(31),kl(255),pi(),kl(164),Hl==79&&vs(),kl(158),Hl==72&&lt(),kl(150),Hl==81&&ht(),kl(122),Hl==228&&dt(),kl(53),xl(154),kl(267),Df()}function ft(){Vl.startNonterminal("AllowingEmpty",Pl),Sl(72),kl(49),Sl(123),Vl.endNonterminal("AllowingEmpty",Pl)}function lt(){xl(72),kl(49),xl(123)}function ct(){Vl.startNonterminal("PositionalVar",Pl),Sl(81),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal("PositionalVar",Pl)}function ht(){xl(81),kl(21),xl(31),kl(255),pi()}function pt(){Vl.startNonterminal("FTScoreVar",Pl),Sl(228),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal("FTScoreVar",Pl)}function dt(){xl(228),kl(21),xl(31),kl(255),pi()}function vt(){Vl.startNonterminal("LetClause",Pl),Sl(174),kl(96),Nl(),gt();for(;;){if(Hl!=41)break;Sl(41),kl(96),Nl(),gt()}Vl.endNonterminal("LetClause",Pl)}function mt(){xl(174),kl(96),yt();for(;;){if(Hl!=41)break;xl(41),kl(96),yt()}}function gt(){Vl.startNonterminal("LetBinding",Pl);switch(Hl){case 31:Sl(31),kl(255),Nl(),hi(),kl(105),Hl==79&&(Nl(),ds());break;default:pt()}kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal("LetBinding",Pl)}function yt(){switch(Hl){case 31:xl(31),kl(255),pi(),kl(105),Hl==79&&vs();break;default:dt()}kl(27),xl(52),kl(267),Df()}function bt(){Vl.startNonterminal("WindowClause",Pl),Sl(137),kl(135);switch(Hl){case 251:Nl(),Et();break;default:Nl(),xt()}Vl.endNonterminal("WindowClause",Pl)}function wt(){xl(137),kl(135);switch(Hl){case 251:St();break;default:Tt()}}function Et(){Vl.startNonterminal("TumblingWindowClause",Pl),Sl(251),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt();if(Hl==126||Hl==198)Nl(),kt();Vl.endNonterminal("TumblingWindowClause",Pl)}function St(){xl(251),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),(Hl==126||Hl==198)&&Lt()}function xt(){Vl.startNonterminal("SlidingWindowClause",Pl),Sl(234),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt(),Nl(),kt(),Vl.endNonterminal("SlidingWindowClause",Pl)}function Tt(){xl(234),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),Lt()}function Nt(){Vl.startNonterminal("WindowStartCondition",Pl),Sl(237),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal("WindowStartCondition",Pl)}function Ct(){xl(237),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function kt(){Vl.startNonterminal("WindowEndCondition",Pl),Hl==198&&Sl(198),kl(50),Sl(126),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal("WindowEndCondition",Pl)}function Lt(){Hl==198&&xl(198),kl(50),xl(126),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function At(){Vl.startNonterminal("WindowVars",Pl),Hl==31&&(Sl(31),kl(255),Nl(),Mt()),kl(159),Hl==81&&(Nl(),ct()),kl(153),Hl==215&&(Sl(215),kl(21),Sl(31),kl(255),Nl(),Dt()),kl(127),Hl==187&&(Sl(187),kl(21),Sl(31),kl(255),Nl(),Ht()),Vl.endNonterminal("WindowVars",Pl)}function Ot(){Hl==31&&(xl(31),kl(255),_t()),kl(159),Hl==81&&ht(),kl(153),Hl==215&&(xl(215),kl(21),xl(31),kl(255),Pt()),kl(127),Hl==187&&(xl(187),kl(21),xl(31),kl(255),Bt())}function Mt(){Vl.startNonterminal("CurrentItem",Pl),Ha(),Vl.endNonterminal("CurrentItem",Pl)}function _t(){Ba()}function Dt(){Vl.startNonterminal("PreviousItem",Pl),Ha(),Vl.endNonterminal("PreviousItem",Pl)}function Pt(){Ba()}function Ht(){Vl.startNonterminal("NextItem",Pl),Ha(),Vl.endNonterminal("NextItem",Pl)}function Bt(){Ba()}function jt(){Vl.startNonterminal("CountClause",Pl),Sl(105),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal("CountClause",Pl)}function Ft(){xl(105),kl(21),xl(31),kl(255),pi()}function It(){Vl.startNonterminal("WhereClause",Pl),Sl(266),kl(267),Nl(),_f(),Vl.endNonterminal("WhereClause",Pl)}function qt(){xl(266),kl(267),Df()}function Rt(){Vl.startNonterminal("GroupByClause",Pl),Sl(148),kl(34),Sl(87),kl(267),Nl(),zt(),Vl.endNonterminal("GroupByClause",Pl)}function Ut(){xl(148),kl(34),xl(87),kl(267),Wt()}function zt(){Vl.startNonterminal("GroupingSpecList",Pl),Xt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Xt()}Vl.endNonterminal("GroupingSpecList",Pl)}function Wt(){Vt();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),Vt()}}function Xt(){Vl.startNonterminal("GroupingSpec",Pl);switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,Pl,_l)}}switch(_l){case-1:$t(),kl(183);if(Hl==52||Hl==79)Hl==79&&(Nl(),ds()),kl(27),Sl(52),kl(267),Nl(),_f();Hl==94&&(Sl(94),kl(15),Sl(7));break;default:_f()}Vl.endNonterminal("GroupingSpec",Pl)}function Vt(){switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),Jl(2,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,t,-2)}}}switch(_l){case-1:Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7));break;case-3:break;default:Df()}}function $t(){Vl.startNonterminal("GroupingVariable",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal("GroupingVariable",Pl)}function Jt(){xl(31),kl(255),pi()}function Kt(){Vl.startNonterminal("OrderByClause",Pl);switch(Hl){case 201:Sl(201),kl(34),Sl(87);break;default:Sl(236),kl(67),Sl(201),kl(34),Sl(87)}kl(267),Nl(),Gt(),Vl.endNonterminal("OrderByClause",Pl)}function Qt(){switch(Hl){case 201:xl(201),kl(34),xl(87);break;default:xl(236),kl(67),xl(201),kl(34),xl(87)}kl(267),Yt()}function Gt(){Vl.startNonterminal("OrderSpecList",Pl),Zt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Zt()}Vl.endNonterminal("OrderSpecList",Pl)}function Yt(){en();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),en()}}function Zt(){Vl.startNonterminal("OrderSpec",Pl),_f(),Nl(),tn(),Vl.endNonterminal("OrderSpec",Pl)}function en(){Df(),nn()}function tn(){Vl.startNonterminal("OrderModifier",Pl);if(Hl==80||Hl==113)switch(Hl){case 80:Sl(80);break;default:Sl(113)}kl(180);if(Hl==123){Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}}kl(177),Hl==94&&(Sl(94),kl(15),Sl(7)),Vl.endNonterminal("OrderModifier",Pl)}function nn(){if(Hl==80||Hl==113)switch(Hl){case 80:xl(80);break;default:xl(113)}kl(180);if(Hl==123){xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}kl(177),Hl==94&&(xl(94),kl(15),xl(7))}function rn(){Vl.startNonterminal("ReturnClause",Pl),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("ReturnClause",Pl)}function sn(){xl(220),kl(267),Df()}function on(){Vl.startNonterminal("QuantifiedExpr",Pl);switch(Hl){case 235:Sl(235);break;default:Sl(129)}kl(21),Nl(),an();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),an()}Sl(224),kl(267),Nl(),_f(),Vl.endNonterminal("QuantifiedExpr",Pl)}function un(){switch(Hl){case 235:xl(235);break;default:xl(129)}kl(21),fn();for(;;){if(Hl!=41)break;xl(41),kl(21),fn()}xl(224),kl(267),Df()}function an(){Vl.startNonterminal("QuantifiedVarDecl",Pl),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal("QuantifiedVarDecl",Pl)}function fn(){xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df()}function ln(){Vl.startNonterminal("SwitchExpr",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),hn();if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("SwitchExpr",Pl)}function cn(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),pn();if(Hl!=88)break}xl(109),kl(70),xl(220),kl(267),Df()}function hn(){Vl.startNonterminal("SwitchCaseClause",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("SwitchCaseClause",Pl)}function pn(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(267),Df()}function dn(){Vl.startNonterminal("SwitchCaseOperand",Pl),_f(),Vl.endNonterminal("SwitchCaseOperand",Pl)}function vn(){Df()}function mn(){Vl.startNonterminal("TypeswitchExpr",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yn();if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("TypeswitchExpr",Pl)}function gn(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bn();if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(267),Df()}function yn(){Vl.startNonterminal("CaseClause",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),wn(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("CaseClause",Pl)}function bn(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),En(),xl(220),kl(267),Df()}function wn(){Vl.startNonterminal("SequenceTypeUnion",Pl),ms();for(;;){kl(134);if(Hl!=279)break;Sl(279),kl(260),Nl(),ms()}Vl.endNonterminal("SequenceTypeUnion",Pl)}function En(){gs();for(;;){kl(134);if(Hl!=279)break;xl(279),kl(260),gs()}}function Sn(){Vl.startNonterminal("IfExpr",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(267),Nl(),_f(),Sl(122),kl(267),Nl(),_f(),Vl.endNonterminal("IfExpr",Pl)}function xn(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(267),Df(),xl(122),kl(267),Df()}function Tn(){Vl.startNonterminal("TryCatchExpr",Pl),Cn();for(;;){kl(36),Nl(),On(),kl(184);if(Hl!=91)break}Vl.endNonterminal("TryCatchExpr",Pl)}function Nn(){kn();for(;;){kl(36),Mn(),kl(184);if(Hl!=91)break}}function Cn(){Vl.startNonterminal("TryClause",Pl),Sl(250),kl(87),Sl(276),kl(267),Nl(),Ln(),Sl(282),Vl.endNonterminal("TryClause",Pl)}function kn(){xl(250),kl(87),xl(276),kl(267),An(),xl(282)}function Ln(){Vl.startNonterminal("TryTargetExpr",Pl),G(),Vl.endNonterminal("TryTargetExpr",Pl)}function An(){Y()}function On(){Vl.startNonterminal("CatchClause",Pl),Sl(91),kl(257),Nl(),_n(),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("CatchClause",Pl)}function Mn(){xl(91),kl(257),Dn(),xl(276),kl(267),Y(),xl(282)}function _n(){Vl.startNonterminal("CatchErrorList",Pl),Qr();for(;;){kl(136);if(Hl!=279)break;Sl(279),kl(257),Nl(),Qr()}Vl.endNonterminal("CatchErrorList",Pl)}function Dn(){Gr();for(;;){kl(136);if(Hl!=279)break;xl(279),kl(257),Gr()}}function Pn(){Vl.startNonterminal("OrExpr",Pl),Bn();for(;;){if(Hl!=200)break;Sl(200),kl(267),Nl(),Bn()}Vl.endNonterminal("OrExpr",Pl)}function Hn(){jn();for(;;){if(Hl!=200)break;xl(200),kl(267),jn()}}function Bn(){Vl.startNonterminal("AndExpr",Pl),Fn();for(;;){if(Hl!=75)break;Sl(75),kl(267),Nl(),Fn()}Vl.endNonterminal("AndExpr",Pl)}function jn(){In();for(;;){if(Hl!=75)break;xl(75),kl(267),In()}}function Fn(){Vl.startNonterminal("ComparisonExpr",Pl),qn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:Nl(),mr();break;case 57:case 63:case 164:Nl(),yr();break;default:Nl(),dr()}kl(267),Nl(),qn()}Vl.endNonterminal("ComparisonExpr",Pl)}function In(){Rn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:gr();break;case 57:case 63:case 164:br();break;default:vr()}kl(267),Rn()}}function qn(){Vl.startNonterminal("FTContainsExpr",Pl),Un(),Hl==99&&(Sl(99),kl(76),Sl(244),kl(162),Nl(),Jo(),Hl==271&&(Nl(),ha())),Vl.endNonterminal("FTContainsExpr",Pl)}function Rn(){zn(),Hl==99&&(xl(99),kl(76),xl(244),kl(162),Ko(),Hl==271&&pa())}function Un(){Vl.startNonterminal("StringConcatExpr",Pl),Wn();for(;;){if(Hl!=280)break;Sl(280),kl(267),Nl(),Wn()}Vl.endNonterminal("StringConcatExpr",Pl)}function zn(){Xn();for(;;){if(Hl!=280)break;xl(280),kl(267),Xn()}}function Wn(){Vl.startNonterminal("RangeExpr",Pl),Vn(),Hl==248&&(Sl(248),kl(267),Nl(),Vn()),Vl.endNonterminal("RangeExpr",Pl)}function Xn(){$n(),Hl==248&&(xl(248),kl(267),$n())}function Vn(){Vl.startNonterminal("AdditiveExpr",Pl),Jn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:Sl(40);break;default:Sl(42)}kl(267),Nl(),Jn()}Vl.endNonterminal("AdditiveExpr",Pl)}function $n(){Kn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:xl(40);break;default:xl(42)}kl(267),Kn()}}function Jn(){Vl.startNonterminal("MultiplicativeExpr",Pl),Qn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:Sl(38);break;case 118:Sl(118);break;case 151:Sl(151);break;default:Sl(180)}kl(267),Nl(),Qn()}Vl.endNonterminal("MultiplicativeExpr",Pl)}function Kn(){Gn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:xl(38);break;case 118:xl(118);break;case 151:xl(151);break;default:xl(180)}kl(267),Gn()}}function Qn(){Vl.startNonterminal("UnionExpr",Pl),Yn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:Sl(254);break;default:Sl(279)}kl(267),Nl(),Yn()}Vl.endNonterminal("UnionExpr",Pl)}function Gn(){Zn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:xl(254);break;default:xl(279)}kl(267),Zn()}}function Yn(){Vl.startNonterminal("IntersectExceptExpr",Pl),er();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:Sl(162);break;default:Sl(131)}kl(267),Nl(),er()}Vl.endNonterminal("IntersectExceptExpr",Pl)}function Zn(){tr();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:xl(162);break;default:xl(131)}kl(267),tr()}}function er(){Vl.startNonterminal("InstanceofExpr",Pl),nr(),kl(224),Hl==160&&(Sl(160),kl(64),Sl(196),kl(260),Nl(),ms()),Vl.endNonterminal("InstanceofExpr",Pl)}function tr(){rr(),kl(224),Hl==160&&(xl(160),kl(64),xl(196),kl(260),gs())}function nr(){Vl.startNonterminal("TreatExpr",Pl),ir(),kl(225),Hl==249&&(Sl(249),kl(30),Sl(79),kl(260),Nl(),ms()),Vl.endNonterminal("TreatExpr",Pl)}function rr(){sr(),kl(225),Hl==249&&(xl(249),kl(30),xl(79),kl(260),gs())}function ir(){Vl.startNonterminal("CastableExpr",Pl),or(),kl(226),Hl==90&&(Sl(90),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal("CastableExpr",Pl)}function sr(){ur(),kl(226),Hl==90&&(xl(90),kl(30),xl(79),kl(255),ps())}function or(){Vl.startNonterminal("CastExpr",Pl),ar(),kl(228),Hl==89&&(Sl(89),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal("CastExpr",Pl)}function ur(){fr(),kl(228),Hl==89&&(xl(89),kl(30),xl(79),kl(255),ps())}function ar(){Vl.startNonterminal("UnaryExpr",Pl);for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:Sl(42);break;default:Sl(40)}}Nl(),lr(),Vl.endNonterminal("UnaryExpr",Pl)}function fr(){for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:xl(42);break;default:xl(40)}}cr()}function lr(){Vl.startNonterminal("ValueExpr",Pl);switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:wr();break;case 35:Tr();break;default:hr()}Vl.endNonterminal("ValueExpr",Pl)}function cr(){switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:Er();break;case 35:Nr();break;default:pr()}}function hr(){Vl.startNonterminal("SimpleMapExpr",Pl),Lr();for(;;){if(Hl!=26)break;Sl(26),kl(266),Nl(),Lr()}Vl.endNonterminal("SimpleMapExpr",Pl)}function pr(){Ar();for(;;){if(Hl!=26)break;xl(26),kl(266),Ar()}}function dr(){Vl.startNonterminal("GeneralComp",Pl);switch(Hl){case 60:Sl(60);break;case 27:Sl(27);break;case 54:Sl(54);break;case 58:Sl(58);break;case 61:Sl(61);break;default:Sl(62)}Vl.endNonterminal("GeneralComp",Pl)}function vr(){switch(Hl){case 60:xl(60);break;case 27:xl(27);break;case 54:xl(54);break;case 58:xl(58);break;case 61:xl(61);break;default:xl(62)}}function mr(){Vl.startNonterminal("ValueComp",Pl);switch(Hl){case 128:Sl(128);break;case 186:Sl(186);break;case 178:Sl(178);break;case 172:Sl(172);break;case 150:Sl(150);break;default:Sl(146)}Vl.endNonterminal("ValueComp",Pl)}function gr(){switch(Hl){case 128:xl(128);break;case 186:xl(186);break;case 178:xl(178);break;case 172:xl(172);break;case 150:xl(150);break;default:xl(146)}}function yr(){Vl.startNonterminal("NodeComp",Pl);switch(Hl){case 164:Sl(164);break;case 57:Sl(57);break;default:Sl(63)}Vl.endNonterminal("NodeComp",Pl)}function br(){switch(Hl){case 164:xl(164);break;case 57:xl(57);break;default:xl(63)}}function wr(){Vl.startNonterminal("ValidateExpr",Pl),Sl(260),kl(160);if(Hl!=276)switch(Hl){case 252:Sl(252),kl(255),Nl(),go();break;default:Nl(),Sr()}kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("ValidateExpr",Pl)}function Er(){xl(260),kl(160);if(Hl!=276)switch(Hl){case 252:xl(252),kl(255),yo();break;default:xr()}kl(87),xl(276),kl(267),Y(),xl(282)}function Sr(){Vl.startNonterminal("ValidationMode",Pl);switch(Hl){case 171:Sl(171);break;default:Sl(240)}Vl.endNonterminal("ValidationMode",Pl)}function xr(){switch(Hl){case 171:xl(171);break;default:xl(240)}}function Tr(){Vl.startNonterminal("ExtensionExpr",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(274),Hl!=282&&(Nl(),G()),Sl(282),Vl.endNonterminal("ExtensionExpr",Pl)}function Nr(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(274),Hl!=282&&Y(),xl(282)}function Cr(){Vl.startNonterminal("Pragma",Pl),Sl(35),Al(252),Hl==21&&Sl(21),Ha(),Al(10),Hl==21&&(Sl(21),Al(0),Sl(1)),Al(5),Sl(30),Vl.endNonterminal("Pragma",Pl)}function kr(){xl(35),Al(252),Hl==21&&xl(21),Ba(),Al(10),Hl==21&&(xl(21),Al(0),xl(1)),Al(5),xl(30)}function Lr(){Vl.startNonterminal("PathExpr",Pl);switch(Hl){case 46:Sl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Nl(),Or()}break;case 47:Sl(47),kl(265),Nl(),Or();break;default:Or()}Vl.endNonterminal("PathExpr",Pl)}function Ar(){switch(Hl){case 46:xl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Mr()}break;case 47:xl(47),kl(265),Mr();break;default:Mr()}}function Or(){Vl.startNonterminal("RelativePathExpr",Pl),_r();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,Pl,_l)}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:Sl(46);break;case 47:Sl(47);break;default:Sl(26)}kl(265),Nl(),_r()}Vl.endNonterminal("RelativePathExpr",Pl)}function Mr(){Dr();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),Jl(3,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,t,-2);break}}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr()}}function _r(){Vl.startNonterminal("StepExpr",Pl);switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,Pl,_l)}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Yr();break;default:Pr()}Vl.endNonterminal("StepExpr",Pl)}function Dr(){switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),Jl(4,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,t,-2)}}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Zr();break;case-3:break;default:Hr()}}function Pr(){Vl.startNonterminal("AxisStep",Pl);switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:Ur();break;default:Br()}kl(238),Nl(),ni(),Vl.endNonterminal("AxisStep",Pl)}function Hr(){switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:zr();break;default:jr()}kl(238),ri()}function Br(){Vl.startNonterminal("ForwardStep",Pl);switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Fr(),kl(257),Nl(),Jr();break;default:qr()}Vl.endNonterminal("ForwardStep",Pl)}function jr(){switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Ir(),kl(257),Kr();break;default:Rr()}}function Fr(){Vl.startNonterminal("ForwardAxis",Pl);switch(Hl){case 93:Sl(93),kl(26),Sl(51);break;case 111:Sl(111),kl(26),Sl(51);break;case 82:Sl(82),kl(26),Sl(51);break;case 229:Sl(229),kl(26),Sl(51);break;case 112:Sl(112),kl(26),Sl(51);break;case 136:Sl(136),kl(26),Sl(51);break;default:Sl(135),kl(26),Sl(51)}Vl.endNonterminal("ForwardAxis",Pl)}function Ir(){switch(Hl){case 93:xl(93),kl(26),xl(51);break;case 111:xl(111),kl(26),xl(51);break;case 82:xl(82),kl(26),xl(51);break;case 229:xl(229),kl(26),xl(51);break;case 112:xl(112),kl(26),xl(51);break;case 136:xl(136),kl(26),xl(51);break;default:xl(135),kl(26),xl(51)}}function qr(){Vl.startNonterminal("AbbrevForwardStep",Pl),Hl==66&&Sl(66),kl(257),Nl(),Jr(),Vl.endNonterminal("AbbrevForwardStep",Pl)}function Rr(){Hl==66&&xl(66),kl(257),Kr()}function Ur(){Vl.startNonterminal("ReverseStep",Pl);switch(Hl){case 45:Vr();break;default:Wr(),kl(257),Nl(),Jr()}Vl.endNonterminal("ReverseStep",Pl)}function zr(){switch(Hl){case 45:$r();break;default:Xr(),kl(257),Kr()}}function Wr(){Vl.startNonterminal("ReverseAxis",Pl);switch(Hl){case 206:Sl(206),kl(26),Sl(51);break;case 73:Sl(73),kl(26),Sl(51);break;case 213:Sl(213),kl(26),Sl(51);break;case 212:Sl(212),kl(26),Sl(51);break;default:Sl(74),kl(26),Sl(51)}Vl.endNonterminal("ReverseAxis",Pl)}function Xr(){switch(Hl){case 206:xl(206),kl(26),xl(51);break;case 73:xl(73),kl(26),xl(51);break;case 213:xl(213),kl(26),xl(51);break;case 212:xl(212),kl(26),xl(51);break;default:xl(74),kl(26),xl(51)}}function Vr(){Vl.startNonterminal("AbbrevReverseStep",Pl),Sl(45),Vl.endNonterminal("AbbrevReverseStep",Pl)}function $r(){xl(45)}function Jr(){Vl.startNonterminal("NodeTest",Pl);switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;default:Qr()}Vl.endNonterminal("NodeTest",Pl)}function Kr(){switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;default:Gr()}}function Qr(){Vl.startNonterminal("NameTest",Pl);switch(Hl){case 5:Sl(5);break;default:Ha()}Vl.endNonterminal("NameTest",Pl)}function Gr(){switch(Hl){case 5:xl(5);break;default:Ba()}}function Yr(){Vl.startNonterminal("PostfixExpr",Pl),ol();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:Nl(),ii();break;default:Nl(),ei()}}Vl.endNonterminal("PostfixExpr",Pl)}function Zr(){ul();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:si();break;default:ti()}}}function ei(){Vl.startNonterminal("ArgumentList",Pl),Sl(34),kl(276);if(Hl!=37){Nl(),Ti();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(271),Nl(),Ti()}}Sl(37),Vl.endNonterminal("ArgumentList",Pl)}function ti(){xl(34),kl(276);if(Hl!=37){Ni();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(271),Ni()}}xl(37)}function ni(){Vl.startNonterminal("PredicateList",Pl);for(;;){kl(238);if(Hl!=68)break;Nl(),ii()}Vl.endNonterminal("PredicateList",Pl)}function ri(){for(;;){kl(238);if(Hl!=68)break;si()}}function ii(){Vl.startNonterminal("Predicate",Pl),Sl(68),kl(267),Nl(),G(),Sl(69),Vl.endNonterminal("Predicate",Pl)}function si(){xl(68),kl(267),Y(),xl(69)}function oi(){Vl.startNonterminal("Literal",Pl);switch(Hl){case 11:Sl(11);break;default:ai()}Vl.endNonterminal("Literal",Pl)}function ui(){switch(Hl){case 11:xl(11);break;default:fi()}}function ai(){Vl.startNonterminal("NumericLiteral",Pl);switch(Hl){case 8:Sl(8);break;case 9:Sl(9);break;default:Sl(10)}Vl.endNonterminal("NumericLiteral",Pl)}function fi(){switch(Hl){case 8:xl(8);break;case 9:xl(9);break;default:xl(10)}}function li(){Vl.startNonterminal("VarRef",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal("VarRef",Pl)}function ci(){xl(31),kl(255),pi()}function hi(){Vl.startNonterminal("VarName",Pl),Ha(),Vl.endNonterminal("VarName",Pl)}function pi(){Ba()}function di(){Vl.startNonterminal("ParenthesizedExpr",Pl),Sl(34),kl(269),Hl!=37&&(Nl(),G()),Sl(37),Vl.endNonterminal("ParenthesizedExpr",Pl)}function vi(){xl(34),kl(269),Hl!=37&&Y(),xl(37)}function mi(){Vl.startNonterminal("ContextItemExpr",Pl),Sl(44),Vl.endNonterminal("ContextItemExpr",Pl)}function gi(){xl(44)}function yi(){Vl.startNonterminal("OrderedExpr",Pl),Sl(202),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("OrderedExpr",Pl)}function bi(){xl(202),kl(87),xl(276),kl(267),Y(),xl(282)}function wi(){Vl.startNonterminal("UnorderedExpr",Pl),Sl(256),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("UnorderedExpr",Pl)}function Ei(){xl(256),kl(87),xl(276),kl(267),Y(),xl(282)}function Si(){Vl.startNonterminal("FunctionCall",Pl),ja(),kl(22),Nl(),ei(),Vl.endNonterminal("FunctionCall",Pl)}function xi(){Fa(),kl(22),ti()}function Ti(){Vl.startNonterminal("Argument",Pl);switch(Hl){case 64:Ci();break;default:_f()}Vl.endNonterminal("Argument",Pl)}function Ni(){switch(Hl){case 64:ki();break;default:Df()}}function Ci(){Vl.startNonterminal("ArgumentPlaceholder",Pl),Sl(64),Vl.endNonterminal("ArgumentPlaceholder",Pl)}function ki(){xl(64)}function Li(){Vl.startNonterminal("Constructor",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;default:Ji()}Vl.endNonterminal("Constructor",Pl)}function Ai(){switch(Hl){case 54:case 55:case 59:Mi();break;default:Ki()}}function Oi(){Vl.startNonterminal("DirectConstructor",Pl);switch(Hl){case 54:_i();break;case 55:Wi();break;default:Vi()}Vl.endNonterminal("DirectConstructor",Pl)}function Mi(){switch(Hl){case 54:Di();break;case 55:Xi();break;default:$i()}}function _i(){Vl.startNonterminal("DirElemConstructor",Pl),Sl(54),Al(4),Sl(20),Pi();switch(Hl){case 48:Sl(48);break;default:Sl(61);for(;;){Al(174);if(Hl==56)break;Ui()}Sl(56),Al(4),Sl(20),Al(12),Hl==21&&Sl(21),Al(8),Sl(61)}Vl.endNonterminal("DirElemConstructor",Pl)}function Di(){xl(54),Al(4),xl(20),Hi();switch(Hl){case 48:xl(48);break;default:xl(61);for(;;){Al(174);if(Hl==56)break;zi()}xl(56),Al(4),xl(20),Al(12),Hl==21&&xl(21),Al(8),xl(61)}}function Pi(){Vl.startNonterminal("DirAttributeList",Pl);for(;;){Al(19);if(Hl!=21)break;Sl(21),Al(91),Hl==20&&(Sl(20),Al(11),Hl==21&&Sl(21),Al(7),Sl(60),Al(18),Hl==21&&Sl(21),Bi())}Vl.endNonterminal("DirAttributeList",Pl)}function Hi(){for(;;){Al(19);if(Hl!=21)break;xl(21),Al(91),Hl==20&&(xl(20),Al(11),Hl==21&&xl(21),Al(7),xl(60),Al(18),Hl==21&&xl(21),ji())}}function Bi(){Vl.startNonterminal("DirAttributeValue",Pl),Al(14);switch(Hl){case 28:Sl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:Sl(13);break;default:Fi()}}Sl(28);break;default:Sl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:Sl(14);break;default:qi()}}Sl(33)}Vl.endNonterminal("DirAttributeValue",Pl)}function ji(){Al(14);switch(Hl){case 28:xl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:xl(13);break;default:Ii()}}xl(28);break;default:xl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:xl(14);break;default:Ri()}}xl(33)}}function Fi(){Vl.startNonterminal("QuotAttrValueContent",Pl);switch(Hl){case 16:Sl(16);break;default:Vf()}Vl.endNonterminal("QuotAttrValueContent",Pl)}function Ii(){switch(Hl){case 16:xl(16);break;default:$f()}}function qi(){Vl.startNonterminal("AposAttrValueContent",Pl);switch(Hl){case 17:Sl(17);break;default:Vf()}Vl.endNonterminal("AposAttrValueContent",Pl)}function Ri(){switch(Hl){case 17:xl(17);break;default:$f()}}function Ui(){Vl.startNonterminal("DirElemContent",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;case 4:Sl(4);break;case 15:Sl(15);break;default:Vf()}Vl.endNonterminal("DirElemContent",Pl)}function zi(){switch(Hl){case 54:case 55:case 59:Mi();break;case 4:xl(4);break;case 15:xl(15);break;default:$f()}}function Wi(){Vl.startNonterminal("DirCommentConstructor",Pl),Sl(55),Al(1),Sl(2),Al(6),Sl(43),Vl.endNonterminal("DirCommentConstructor",Pl)}function Xi(){xl(55),Al(1),xl(2),Al(6),xl(43)}function Vi(){Vl.startNonterminal("DirPIConstructor",Pl),Sl(59),Al(3),Sl(18),Al(13),Hl==21&&(Sl(21),Al(2),Sl(3)),Al(9),Sl(65),Vl.endNonterminal("DirPIConstructor",Pl)}function $i(){xl(59),Al(3),xl(18),Al(13),Hl==21&&(xl(21),Al(2),xl(3)),Al(9),xl(65)}function Ji(){Vl.startNonterminal("ComputedConstructor",Pl);switch(Hl){case 119:Qf();break;case 121:Qi();break;case 82:Yf();break;case 184:Yi();break;case 244:il();break;case 96:nl();break;default:el()}Vl.endNonterminal("ComputedConstructor",Pl)}function Ki(){switch(Hl){case 119:Gf();break;case 121:Gi();break;case 82:Zf();break;case 184:Zi();break;case 244:sl();break;case 96:rl();break;default:tl()}}function Qi(){Vl.startNonterminal("CompElemConstructor",Pl),Sl(121),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87),Sl(276),kl(277),Hl!=282&&(Nl(),Jf()),Sl(282),Vl.endNonterminal("CompElemConstructor",Pl)}function Gi(){xl(121),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87),xl(276),kl(277),Hl!=282&&Kf(),xl(282)}function Yi(){Vl.startNonterminal("CompNamespaceConstructor",Pl),Sl(184),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),ns(),Sl(282);break;default:Nl(),es()}kl(87),Sl(276),kl(267),Nl(),is(),Sl(282),Vl.endNonterminal("CompNamespaceConstructor",Pl)}function Zi(){xl(184),kl(251);switch(Hl){case 276:xl(276),kl(267),rs(),xl(282);break;default:ts()}kl(87),xl(276),kl(267),ss(),xl(282)}function es(){Vl.startNonterminal("Prefix",Pl),Ia(),Vl.endNonterminal("Prefix",Pl)}function ts(){qa()}function ns(){Vl.startNonterminal("PrefixExpr",Pl),G(),Vl.endNonterminal("PrefixExpr",Pl)}function rs(){Y()}function is(){Vl.startNonterminal("URIExpr",Pl),G(),Vl.endNonterminal("URIExpr",Pl)}function ss(){Y()}function os(){Vl.startNonterminal("FunctionItemExpr",Pl);switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:ls();break;default:as()}Vl.endNonterminal("FunctionItemExpr",Pl)}function us(){switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:cs();break;default:fs()}}function as(){Vl.startNonterminal("NamedFunctionRef",Pl),Ha(),kl(20),Sl(29),kl(16),Sl(8),Vl.endNonterminal("NamedFunctionRef",Pl)}function fs(){Ba(),kl(20),xl(29),kl(16),xl(8)}function ls(){Vl.startNonterminal("InlineFunctionExpr",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}Sl(145),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(111),Hl==79&&(Sl(79),kl(260),Nl(),ms()),kl(87),Nl(),V(),Vl.endNonterminal("InlineFunctionExpr",Pl)}function cs(){for(;;){kl(97);if(Hl!=32)break;j()}xl(145),kl(22),xl(34),kl(94),Hl==31&&z(),xl(37),kl(111),Hl==79&&(xl(79),kl(260),gs()),kl(87),$()}function hs(){Vl.startNonterminal("SingleType",Pl),vo(),kl(227),Hl==64&&Sl(64),Vl.endNonterminal("SingleType",Pl)}function ps(){mo(),kl(227),Hl==64&&xl(64)}function ds(){Vl.startNonterminal("TypeDeclaration",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal("TypeDeclaration",Pl)}function vs(){xl(79),kl(260),gs()}function ms(){Vl.startNonterminal("SequenceType",Pl);switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:Sl(124),kl(22),Sl(34),kl(23),Sl(37);break;default:ws(),kl(239);switch(Hl){case 39:case 40:case 64:Nl(),ys();break;default:}}Vl.endNonterminal("SequenceType",Pl)}function gs(){switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:xl(124),kl(22),xl(34),kl(23),xl(37);break;default:Es(),kl(239);switch(Hl){case 39:case 40:case 64:bs();break;default:}}}function ys(){Vl.startNonterminal("OccurrenceIndicator",Pl);switch(Hl){case 64:Sl(64);break;case 39:Sl(39);break;default:Sl(40)}Vl.endNonterminal("OccurrenceIndicator",Pl)}function bs(){switch(Hl){case 64:xl(64);break;case 39:xl(39);break;default:xl(40)}}function ws(){Vl.startNonterminal("ItemType",Pl);switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;case 17573:Sl(165),kl(22),Sl(34),kl(23),Sl(37);break;case 32:case 17553:bo();break;case 34:No();break;case 17486:case 17575:case 17602:Ss();break;case 17650:Ts();break;default:_s()}Vl.endNonterminal("ItemType",Pl)}function Es(){switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;case 17573:xl(165),kl(22),xl(34),kl(23),xl(37);break;case 32:case 17553:wo();break;case 34:Co();break;case 17486:case 17575:case 17602:xs();break;case 17650:Ns();break;default:Ds()}}function Ss(){Vl.startNonterminal("JSONTest",Pl);switch(Hl){case 167:Cs();break;case 194:Ls();break;default:Os()}Vl.endNonterminal("JSONTest",Pl)}function xs(){switch(Hl){case 167:ks();break;case 194:As();break;default:Ms()}}function Ts(){Vl.startNonterminal("StructuredItemTest",Pl),Sl(242),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("StructuredItemTest",Pl)}function Ns(){xl(242),kl(22),xl(34),kl(23),xl(37)}function Cs(){Vl.startNonterminal("JSONItemTest",Pl),Sl(167),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("JSONItemTest",Pl)}function ks(){xl(167),kl(22),xl(34),kl(23),xl(37)}function Ls(){Vl.startNonterminal("JSONObjectTest",Pl),Sl(194),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("JSONObjectTest",Pl)}function As(){xl(194),kl(22),xl(34),kl(23),xl(37)}function Os(){Vl.startNonterminal("JSONArrayTest",Pl),Sl(78),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("JSONArrayTest",Pl)}function Ms(){xl(78),kl(22),xl(34),kl(23),xl(37)}function _s(){Vl.startNonterminal("AtomicOrUnionType",Pl),Ha(),Vl.endNonterminal("AtomicOrUnionType",Pl)}function Ds(){Ba()}function Ps(){Vl.startNonterminal("KindTest",Pl);switch(Hl){case 120:Fs();break;case 121:no();break;case 82:Js();break;case 227:oo();break;case 226:Ys();break;case 216:Vs();break;case 96:Us();break;case 244:qs();break;case 185:Ws();break;default:Bs()}Vl.endNonterminal("KindTest",Pl)}function Hs(){switch(Hl){case 120:Is();break;case 121:ro();break;case 82:Ks();break;case 227:uo();break;case 226:Zs();break;case 216:$s();break;case 96:zs();break;case 244:Rs();break;case 185:Xs();break;default:js()}}function Bs(){Vl.startNonterminal("AnyKindTest",Pl),Sl(191),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("AnyKindTest",Pl)}function js(){xl(191),kl(22),xl(34),kl(23),xl(37)}function Fs(){Vl.startNonterminal("DocumentTest",Pl),Sl(120),kl(22),Sl(34),kl(144);if(Hl!=37)switch(Hl){case 121:Nl(),no();break;default:Nl(),oo()}kl(23),Sl(37),Vl.endNonterminal("DocumentTest",Pl)}function Is(){xl(120),kl(22),xl(34),kl(144);if(Hl!=37)switch(Hl){case 121:ro();break;default:uo()}kl(23),xl(37)}function qs(){Vl.startNonterminal("TextTest",Pl),Sl(244),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("TextTest",Pl)}function Rs(){xl(244),kl(22),xl(34),kl(23),xl(37)}function Us(){Vl.startNonterminal("CommentTest",Pl),Sl(96),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("CommentTest",Pl)}function zs(){xl(96),kl(22),xl(34),kl(23),xl(37)}function Ws(){Vl.startNonterminal("NamespaceNodeTest",Pl),Sl(185),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal("NamespaceNodeTest",Pl)}function Xs(){xl(185),kl(22),xl(34),kl(23),xl(37)}function Vs(){Vl.startNonterminal("PITest",Pl),Sl(216),kl(22),Sl(34),kl(253);if(Hl!=37)switch(Hl){case 11:Sl(11);break;default:Nl(),Ia()}kl(23),Sl(37),Vl.endNonterminal("PITest",Pl)}function $s(){xl(216),kl(22),xl(34),kl(253);if(Hl!=37)switch(Hl){case 11:xl(11);break;default:qa()}kl(23),xl(37)}function Js(){Vl.startNonterminal("AttributeTest",Pl),Sl(82),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),Qs(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go())),kl(23),Sl(37),Vl.endNonterminal("AttributeTest",Pl)}function Ks(){xl(82),kl(22),xl(34),kl(261),Hl!=37&&(Gs(),kl(101),Hl==41&&(xl(41),kl(255),yo())),kl(23),xl(37)}function Qs(){Vl.startNonterminal("AttribNameOrWildcard",Pl);switch(Hl){case 38:Sl(38);break;default:lo()}Vl.endNonterminal("AttribNameOrWildcard",Pl)}function Gs(){switch(Hl){case 38:xl(38);break;default:co()}}function Ys(){Vl.startNonterminal("SchemaAttributeTest",Pl),Sl(226),kl(22),Sl(34),kl(255),Nl(),eo(),kl(23),Sl(37),Vl.endNonterminal("SchemaAttributeTest",Pl)}function Zs(){xl(226),kl(22),xl(34),kl(255),to(),kl(23),xl(37)}function eo(){Vl.startNonterminal("AttributeDeclaration",Pl),lo(),Vl.endNonterminal("AttributeDeclaration",Pl)}function to(){co()}function no(){Vl.startNonterminal("ElementTest",Pl),Sl(121),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),io(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go(),kl(102),Hl==64&&Sl(64))),kl(23),Sl(37),Vl.endNonterminal("ElementTest",Pl)}function ro(){xl(121),kl(22),xl(34),kl(261),Hl!=37&&(so(),kl(101),Hl==41&&(xl(41),kl(255),yo(),kl(102),Hl==64&&xl(64))),kl(23),xl(37)}function io(){Vl.startNonterminal("ElementNameOrWildcard",Pl);switch(Hl){case 38:Sl(38);break;default:ho()}Vl.endNonterminal("ElementNameOrWildcard",Pl)}function so(){switch(Hl){case 38:xl(38);break;default:po()}}function oo(){Vl.startNonterminal("SchemaElementTest",Pl),Sl(227),kl(22),Sl(34),kl(255),Nl(),ao(),kl(23),Sl(37),Vl.endNonterminal("SchemaElementTest",Pl)}function uo(){xl(227),kl(22),xl(34),kl(255),fo(),kl(23),xl(37)}function ao(){Vl.startNonterminal("ElementDeclaration",Pl),ho(),Vl.endNonterminal("ElementDeclaration",Pl)}function fo(){po()}function lo(){Vl.startNonterminal("AttributeName",Pl),Ha(),Vl.endNonterminal("AttributeName",Pl)}function co(){Ba()}function ho(){Vl.startNonterminal("ElementName",Pl),Ha(),Vl.endNonterminal("ElementName",Pl)}function po(){Ba()}function vo(){Vl.startNonterminal("SimpleTypeName",Pl),go(),Vl.endNonterminal("SimpleTypeName",Pl)}function mo(){yo()}function go(){Vl.startNonterminal("TypeName",Pl),Ha(),Vl.endNonterminal("TypeName",Pl)}function yo(){Ba()}function bo(){Vl.startNonterminal("FunctionTest",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,Pl,_l)}switch(_l){case-1:Nl(),Eo();break;default:Nl(),xo()}Vl.endNonterminal("FunctionTest",Pl)}function wo(){for(;;){kl(97);if(Hl!=32)break;j()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),Jl(5,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,t,-2)}}switch(_l){case-1:So();break;case-3:break;default:To()}}function Eo(){Vl.startNonterminal("AnyFunctionTest",Pl),Sl(145),kl(22),Sl(34),kl(24),Sl(38),kl(23),Sl(37),Vl.endNonterminal("AnyFunctionTest",Pl)}function So(){xl(145),kl(22),xl(34),kl(24),xl(38),kl(23),xl(37)}function xo(){Vl.startNonterminal("TypedFunctionTest",Pl),Sl(145),kl(22),Sl(34),kl(263);if(Hl!=37){Nl(),ms();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(260),Nl(),ms()}}Sl(37),kl(30),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal("TypedFunctionTest",Pl)}function To(){xl(145),kl(22),xl(34),kl(263);if(Hl!=37){gs();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(260),gs()}}xl(37),kl(30),xl(79),kl(260),gs()}function No(){Vl.startNonterminal("ParenthesizedItemType",Pl),Sl(34),kl(260),Nl(),ws(),kl(23),Sl(37),Vl.endNonterminal("ParenthesizedItemType",Pl)}function Co(){xl(34),kl(260),Es(),kl(23),xl(37)}function ko(){Vl.startNonterminal("RevalidationDecl",Pl),Sl(108),kl(72),Sl(222),kl(152);switch(Hl){case 240:Sl(240);break;case 171:Sl(171);break;default:Sl(233)}Vl.endNonterminal("RevalidationDecl",Pl)}function Lo(){Vl.startNonterminal("InsertExprTargetChoice",Pl);switch(Hl){case 70:Sl(70);break;case 84:Sl(84);break;default:if(Hl==79){Sl(79),kl(119);switch(Hl){case 134:Sl(134);break;default:Sl(170)}}kl(54),Sl(163)}Vl.endNonterminal("InsertExprTargetChoice",Pl)}function Ao(){switch(Hl){case 70:xl(70);break;case 84:xl(84);break;default:if(Hl==79){xl(79),kl(119);switch(Hl){case 134:xl(134);break;default:xl(170)}}kl(54),xl(163)}}function Oo(){Vl.startNonterminal("InsertExpr",Pl),Sl(159),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),Fo(),Nl(),Lo(),kl(267),Nl(),qo(),Vl.endNonterminal("InsertExpr",Pl)}function Mo(){xl(159),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Io(),Ao(),kl(267),Ro()}function _o(){Vl.startNonterminal("DeleteExpr",Pl),Sl(110),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),qo(),Vl.endNonterminal("DeleteExpr",Pl)}function Do(){xl(110),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Ro()}function Po(){Vl.startNonterminal("ReplaceExpr",Pl),Sl(219),kl(130),Hl==261&&(Sl(261),kl(64),Sl(196)),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal("ReplaceExpr",Pl)}function Ho(){xl(219),kl(130),Hl==261&&(xl(261),kl(64),xl(196)),kl(62),xl(191),kl(267),Ro(),xl(270),kl(267),Df()}function Bo(){Vl.startNonterminal("RenameExpr",Pl),Sl(218),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(79),kl(267),Nl(),Uo(),Vl.endNonterminal("RenameExpr",Pl)}function jo(){xl(218),kl(62),xl(191),kl(267),Ro(),xl(79),kl(267),zo()}function Fo(){Vl.startNonterminal("SourceExpr",Pl),_f(),Vl.endNonterminal("SourceExpr",Pl)}function Io(){Df()}function qo(){Vl.startNonterminal("TargetExpr",Pl),_f(),Vl.endNonterminal("TargetExpr",Pl)}function Ro(){Df()}function Uo(){Vl.startNonterminal("NewNameExpr",Pl),_f(),Vl.endNonterminal("NewNameExpr",Pl)}function zo(){Df()}function Wo(){Vl.startNonterminal("TransformExpr",Pl),Sl(103),kl(21),Nl(),Vo();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),Vo()}Sl(181),kl(267),Nl(),_f(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal("TransformExpr",Pl)}function Xo(){xl(103),kl(21),$o();for(;;){if(Hl!=41)break;xl(41),kl(21),$o()}xl(181),kl(267),Df(),xl(220),kl(267),Df()}function Vo(){Vl.startNonterminal("TransformSpec",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal("TransformSpec",Pl)}function $o(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df()}function Jo(){Vl.startNonterminal("FTSelection",Pl),Yo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;Nl(),Su()}Vl.endNonterminal("FTSelection",Pl)}function Ko(){Zo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;xu()}}function Qo(){Vl.startNonterminal("FTWeight",Pl),Sl(264),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal("FTWeight",Pl)}function Go(){xl(264),kl(87),xl(276),kl(267),Y(),xl(282)}function Yo(){Vl.startNonterminal("FTOr",Pl),eu();for(;;){if(Hl!=144)break;Sl(144),kl(162),Nl(),eu()}Vl.endNonterminal("FTOr",Pl)}function Zo(){tu();for(;;){if(Hl!=144)break;xl(144),kl(162),tu()}}function eu(){Vl.startNonterminal("FTAnd",Pl),nu();for(;;){if(Hl!=142)break;Sl(142),kl(162),Nl(),nu()}Vl.endNonterminal("FTAnd",Pl)}function tu(){ru();for(;;){if(Hl!=142)break;xl(142),kl(162),ru()}}function nu(){Vl.startNonterminal("FTMildNot",Pl),iu();for(;;){kl(213);if(Hl!=193)break;Sl(193),kl(53),Sl(154),kl(162),Nl(),iu()}Vl.endNonterminal("FTMildNot",Pl)}function ru(){su();for(;;){kl(213);if(Hl!=193)break;xl(193),kl(53),xl(154),kl(162),su()}}function iu(){Vl.startNonterminal("FTUnaryNot",Pl),Hl==143&&Sl(143),kl(155),Nl(),ou(),Vl.endNonterminal("FTUnaryNot",Pl)}function su(){Hl==143&&xl(143),kl(155),uu()}function ou(){Vl.startNonterminal("FTPrimaryWithOptions",Pl),au(),kl(215),Hl==259&&(Nl(),Fu()),Hl==264&&(Nl(),Qo()),Vl.endNonterminal("FTPrimaryWithOptions",Pl)}function uu(){fu(),kl(215),Hl==259&&Iu(),Hl==264&&Go()}function au(){Vl.startNonterminal("FTPrimary",Pl);switch(Hl){case 34:Sl(34),kl(162),Nl(),Jo(),Sl(37);break;case 35:du();break;default:lu(),kl(216),Hl==195&&(Nl(),yu())}Vl.endNonterminal("FTPrimary",Pl)}function fu(){switch(Hl){case 34:xl(34),kl(162),Ko(),xl(37);break;case 35:vu();break;default:cu(),kl(216),Hl==195&&bu()}}function lu(){Vl.startNonterminal("FTWords",Pl),hu(),kl(222);if(Hl==71||Hl==76||Hl==210)Nl(),mu();Vl.endNonterminal("FTWords",Pl)}function cu(){pu(),kl(222),(Hl==71||Hl==76||Hl==210)&&gu()}function hu(){Vl.startNonterminal("FTWordsValue",Pl);switch(Hl){case 11:Sl(11);break;default:Sl(276),kl(267),Nl(),G(),Sl(282)}Vl.endNonterminal("FTWordsValue",Pl)}function pu(){switch(Hl){case 11:xl(11);break;default:xl(276),kl(267),Y(),xl(282)}}function du(){Vl.startNonterminal("FTExtensionSelection",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(166),Hl!=282&&(Nl(),Jo()),Sl(282),Vl.endNonterminal("FTExtensionSelection",Pl)}function vu(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(166),Hl!=282&&Ko(),xl(282)}function mu(){Vl.startNonterminal("FTAnyallOption",Pl);switch(Hl){case 76:Sl(76),kl(219),Hl==272&&Sl(272);break;case 71:Sl(71),kl(220),Hl==273&&Sl(273);break;default:Sl(210)}Vl.endNonterminal("FTAnyallOption",Pl)}function gu(){switch(Hl){case 76:xl(76),kl(219),Hl==272&&xl(272);break;case 71:xl(71),kl(220),Hl==273&&xl(273);break;default:xl(210)}}function yu(){Vl.startNonterminal("FTTimes",Pl),Sl(195),kl(149),Nl(),wu(),Sl(247),Vl.endNonterminal("FTTimes",Pl)}function bu(){xl(195),kl(149),Eu(),xl(247)}function wu(){Vl.startNonterminal("FTRange",Pl);switch(Hl){case 130:Sl(130),kl(267),Nl(),Vn();break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(267),Nl(),Vn();break;default:Sl(183),kl(267),Nl(),Vn()}break;default:Sl(140),kl(267),Nl(),Vn(),Sl(248),kl(267),Nl(),Vn()}Vl.endNonterminal("FTRange",Pl)}function Eu(){switch(Hl){case 130:xl(130),kl(267),$n();break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(267),$n();break;default:xl(183),kl(267),$n()}break;default:xl(140),kl(267),$n(),xl(248),kl(267),$n()}}function Su(){Vl.startNonterminal("FTPosFilter",Pl);switch(Hl){case 202:Tu();break;case 269:Cu();break;case 117:Lu();break;case 115:case 223:_u();break;default:Bu()}Vl.endNonterminal("FTPosFilter",Pl)}function xu(){switch(Hl){case 202:Nu();break;case 269:ku();break;case 117:Au();break;case 115:case 223:Du();break;default:ju()}}function Tu(){Vl.startNonterminal("FTOrder",Pl),Sl(202),Vl.endNonterminal("FTOrder",Pl)}function Nu(){xl(202)}function Cu(){Vl.startNonterminal("FTWindow",Pl),Sl(269),kl(267),Nl(),Vn(),Nl(),Ou(),Vl.endNonterminal("FTWindow",Pl)}function ku(){xl(269),kl(267),$n(),Mu()}function Lu(){Vl.startNonterminal("FTDistance",Pl),Sl(117),kl(149),Nl(),wu(),Nl(),Ou(),Vl.endNonterminal("FTDistance",Pl)}function Au(){xl(117),kl(149),Eu(),Mu()}function Ou(){Vl.startNonterminal("FTUnit",Pl);switch(Hl){case 273:Sl(273);break;case 232:Sl(232);break;default:Sl(205)}Vl.endNonterminal("FTUnit",Pl)}function Mu(){switch(Hl){case 273:xl(273);break;case 232:xl(232);break;default:xl(205)}}function _u(){Vl.startNonterminal("FTScope",Pl);switch(Hl){case 223:Sl(223);break;default:Sl(115)}kl(132),Nl(),Pu(),Vl.endNonterminal("FTScope",Pl)}function Du(){switch(Hl){case 223:xl(223);break;default:xl(115)}kl(132),Hu()}function Pu(){Vl.startNonterminal("FTBigUnit",Pl);switch(Hl){case 231:Sl(231);break;default:Sl(204)}Vl.endNonterminal("FTBigUnit",Pl)}function Hu(){switch(Hl){case 231:xl(231);break;default:xl(204)}}function Bu(){Vl.startNonterminal("FTContent",Pl);switch(Hl){case 81:Sl(81),kl(117);switch(Hl){case 237:Sl(237);break;default:Sl(126)}break;default:Sl(127),kl(42),Sl(100)}Vl.endNonterminal("FTContent",Pl)}function ju(){switch(Hl){case 81:xl(81),kl(117);switch(Hl){case 237:xl(237);break;default:xl(126)}break;default:xl(127),kl(42),xl(100)}}function Fu(){Vl.startNonterminal("FTMatchOptions",Pl);for(;;){Sl(259),kl(182),Nl(),qu(),kl(215);if(Hl!=259)break}Vl.endNonterminal("FTMatchOptions",Pl)}function Iu(){for(;;){xl(259),kl(182),Ru(),kl(215);if(Hl!=259)break}}function qu(){Vl.startNonterminal("FTMatchOption",Pl);switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:oa();break;case 268:case 137404:aa();break;case 246:case 126140:Ju();break;case 238:case 122044:Vu();break;case 114:Wu();break;case 239:case 122556:ea();break;case 199:la();break;default:Uu()}Vl.endNonterminal("FTMatchOption",Pl)}function Ru(){switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:ua();break;case 268:case 137404:fa();break;case 246:case 126140:Ku();break;case 238:case 122044:$u();break;case 114:Xu();break;case 239:case 122556:ta();break;case 199:ca();break;default:zu()}}function Uu(){Vl.startNonterminal("FTCaseOption",Pl);switch(Hl){case 88:Sl(88),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}break;case 177:Sl(177);break;default:Sl(258)}Vl.endNonterminal("FTCaseOption",Pl)}function zu(){switch(Hl){case 88:xl(88),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}break;case 177:xl(177);break;default:xl(258)}}function Wu(){Vl.startNonterminal("FTDiacriticsOption",Pl),Sl(114),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}Vl.endNonterminal("FTDiacriticsOption",Pl)}function Xu(){xl(114),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}}function Vu(){Vl.startNonterminal("FTStemOption",Pl);switch(Hl){case 238:Sl(238);break;default:Sl(188),kl(74),Sl(238)}Vl.endNonterminal("FTStemOption",Pl)}function $u(){switch(Hl){case 238:xl(238);break;default:xl(188),kl(74),xl(238)}}function Ju(){Vl.startNonterminal("FTThesaurusOption",Pl);switch(Hl){case 246:Sl(246),kl(142);switch(Hl){case 81:Nl(),Qu();break;case 109:Sl(109);break;default:Sl(34),kl(112);switch(Hl){case 81:Nl(),Qu();break;default:Sl(109)}for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(31),Nl(),Qu()}Sl(37)}break;default:Sl(188),kl(78),Sl(246)}Vl.endNonterminal("FTThesaurusOption",Pl)}function Ku(){switch(Hl){case 246:xl(246),kl(142);switch(Hl){case 81:Gu();break;case 109:xl(109);break;default:xl(34),kl(112);switch(Hl){case 81:Gu();break;default:xl(109)}for(;;){kl(101);if(Hl!=41)break;xl(41),kl(31),Gu()}xl(37)}break;default:xl(188),kl(78),xl(246)}}function Qu(){Vl.startNonterminal("FTThesaurusID",Pl),Sl(81),kl(15),Sl(7),kl(221),Hl==217&&(Sl(217),kl(17),Sl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Nl(),Yu(),kl(58),Sl(175);Vl.endNonterminal("FTThesaurusID",Pl)}function Gu(){xl(81),kl(15),xl(7),kl(221),Hl==217&&(xl(217),kl(17),xl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Zu(),kl(58),xl(175)}function Yu(){Vl.startNonterminal("FTLiteralRange",Pl);switch(Hl){case 130:Sl(130),kl(16),Sl(8);break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(16),Sl(8);break;default:Sl(183),kl(16),Sl(8)}break;default:Sl(140),kl(16),Sl(8),kl(79),Sl(248),kl(16),Sl(8)}Vl.endNonterminal("FTLiteralRange",Pl)}function Zu(){switch(Hl){case 130:xl(130),kl(16),xl(8);break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(16),xl(8);break;default:xl(183),kl(16),xl(8)}break;default:xl(140),kl(16),xl(8),kl(79),xl(248),kl(16),xl(8)}}function ea(){Vl.startNonterminal("FTStopWordOption",Pl);switch(Hl){case 239:Sl(239),kl(86),Sl(273),kl(142);switch(Hl){case 109:Sl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}break;default:Nl(),na();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}}break;default:Sl(188),kl(75),Sl(239),kl(86),Sl(273)}Vl.endNonterminal("FTStopWordOption",Pl)}function ta(){switch(Hl){case 239:xl(239),kl(86),xl(273),kl(142);switch(Hl){case 109:xl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}break;default:ra();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}}break;default:xl(188),kl(75),xl(239),kl(86),xl(273)}}function na(){Vl.startNonterminal("FTStopWords",Pl);switch(Hl){case 81:Sl(81),kl(15),Sl(7);break;default:Sl(34),kl(17),Sl(11);for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(17),Sl(11)}Sl(37)}Vl.endNonterminal("FTStopWords",Pl)}function ra(){switch(Hl){case 81:xl(81),kl(15),xl(7);break;default:xl(34),kl(17),xl(11);for(;;){kl(101);if(Hl!=41)break;xl(41),kl(17),xl(11)}xl(37)}}function ia(){Vl.startNonterminal("FTStopWordsInclExcl",Pl);switch(Hl){case 254:Sl(254);break;default:Sl(131)}kl(99),Nl(),na(),Vl.endNonterminal("FTStopWordsInclExcl",Pl)}function sa(){switch(Hl){case 254:xl(254);break;default:xl(131)}kl(99),ra()}function oa(){Vl.startNonterminal("FTLanguageOption",Pl),Sl(169),kl(17),Sl(11),Vl.endNonterminal("FTLanguageOption",Pl)}function ua(){xl(169),kl(17),xl(11)}function aa(){Vl.startNonterminal("FTWildCardOption",Pl);switch(Hl){case 268:Sl(268);break;default:Sl(188),kl(84),Sl(268)}Vl.endNonterminal("FTWildCardOption",Pl)}function fa(){switch(Hl){case 268:xl(268);break;default:xl(188),kl(84),xl(268)}}function la(){Vl.startNonterminal("FTExtensionOption",Pl),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal("FTExtensionOption",Pl)}function ca(){xl(199),kl(255),Ba(),kl(17),xl(11)}function ha(){Vl.startNonterminal("FTIgnoreOption",Pl),Sl(271),kl(42),Sl(100),kl(267),Nl(),Qn(),Vl.endNonterminal("FTIgnoreOption",Pl)}function pa(){xl(271),kl(42),xl(100),kl(267),Gn()}function da(){Vl.startNonterminal("CollectionDecl",Pl),Sl(95),kl(255),Nl(),Ha(),kl(107),Hl==79&&(Nl(),va()),Vl.endNonterminal("CollectionDecl",Pl)}function va(){Vl.startNonterminal("CollectionTypeDecl",Pl),Sl(79),kl(178),Nl(),Ps(),kl(156),Hl!=53&&(Nl(),ys()),Vl.endNonterminal("CollectionTypeDecl",Pl)}function ma(){Vl.startNonterminal("IndexName",Pl),Ha(),Vl.endNonterminal("IndexName",Pl)}function ga(){Vl.startNonterminal("IndexDomainExpr",Pl),Lr(),Vl.endNonterminal("IndexDomainExpr",Pl)}function ya(){Vl.startNonterminal("IndexKeySpec",Pl),ba(),Hl==79&&(Nl(),wa()),kl(146),Hl==94&&(Nl(),Sa()),Vl.endNonterminal("IndexKeySpec",Pl)}function ba(){Vl.startNonterminal("IndexKeyExpr",Pl),Lr(),Vl.endNonterminal("IndexKeyExpr",Pl)}function wa(){Vl.startNonterminal("IndexKeyTypeDecl",Pl),Sl(79),kl(255),Nl(),Ea(),kl(169);if(Hl==39||Hl==40||Hl==64)Nl(),ys();Vl.endNonterminal("IndexKeyTypeDecl",Pl)}function Ea(){Vl.startNonterminal("AtomicType",Pl),Ha(),Vl.endNonterminal("AtomicType",Pl)}function Sa(){Vl.startNonterminal("IndexKeyCollation",Pl),Sl(94),kl(15),Sl(7),Vl.endNonterminal("IndexKeyCollation",Pl)}function xa(){Vl.startNonterminal("IndexDecl",Pl),Sl(155),kl(255),Nl(),ma(),kl(65),Sl(197),kl(63),Sl(192),kl(266),Nl(),ga(),Sl(87),kl(266),Nl(),ya();for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(266),Nl(),ya()}Vl.endNonterminal("IndexDecl",Pl)}function Ta(){Vl.startNonterminal("ICDecl",Pl),Sl(161),kl(40),Sl(97),kl(255),Nl(),Ha(),kl(120);switch(Hl){case 197:Nl(),Na();break;default:Nl(),Aa()}Vl.endNonterminal("ICDecl",Pl)}function Na(){Vl.startNonterminal("ICCollection",Pl),Sl(197),kl(39),Sl(95),kl(255),Nl(),Ha(),kl(140);switch(Hl){case 31:Nl(),Ca();break;case 191:Nl(),ka();break;default:Nl(),La()}Vl.endNonterminal("ICCollection",Pl)}function Ca(){Vl.startNonterminal("ICCollSequence",Pl),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal("ICCollSequence",Pl)}function ka(){Vl.startNonterminal("ICCollSequenceUnique",Pl),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(80),Sl(255),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal("ICCollSequenceUnique",Pl)}function La(){Vl.startNonterminal("ICCollNode",Pl),Sl(138),kl(62),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal("ICCollNode",Pl)}function Aa(){Vl.startNonterminal("ICForeignKey",Pl),Sl(139),kl(57),Sl(168),kl(51),Nl(),Oa(),Nl(),Ma(),Vl.endNonterminal("ICForeignKey",Pl)}function Oa(){Vl.startNonterminal("ICForeignKeySource",Pl),Sl(140),kl(39),Nl(),_a(),Vl.endNonterminal("ICForeignKeySource",Pl)}function Ma(){Vl.startNonterminal("ICForeignKeyTarget",Pl),Sl(248),kl(39),Nl(),_a(),Vl.endNonterminal("ICForeignKeyTarget",Pl)}function _a(){Vl.startNonterminal("ICForeignKeyValues",Pl),Sl(95),kl(255),Nl(),Ha(),kl(62),Sl(191),kl(21),Nl(),li(),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal("ICForeignKeyValues",Pl)}function Da(){xl(36);for(;;){Al(89);if(Hl==50)break;switch(Hl){case 24:xl(24);break;default:Da()}}xl(50)}function Pa(){switch(Hl){case 22:xl(22);break;default:Da()}}function Ha(){Vl.startNonterminal("EQName",Pl),Al(250);switch(Hl){case 82:Sl(82);break;case 96:Sl(96);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 145:Sl(145);break;case 152:Sl(152);break;case 165:Sl(165);break;case 185:Sl(185);break;case 191:Sl(191);break;case 216:Sl(216);break;case 226:Sl(226);break;case 227:Sl(227);break;case 243:Sl(243);break;case 244:Sl(244);break;case 253:Sl(253);break;case 78:Sl(78);break;case 167:Sl(167);break;case 242:Sl(242);break;default:ja()}Vl.endNonterminal("EQName",Pl)}function Ba(){Al(250);switch(Hl){case 82:xl(82);break;case 96:xl(96);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 145:xl(145);break;case 152:xl(152);break;case 165:xl(165);break;case 185:xl(185);break;case 191:xl(191);break;case 216:xl(216);break;case 226:xl(226);break;case 227:xl(227);break;case 243:xl(243);break;case 244:xl(244);break;case 253:xl(253);break;case 78:xl(78);break;case 167:xl(167);break;case 242:xl(242);break;default:Fa()}}function ja(){Vl.startNonterminal("FunctionName",Pl);switch(Hl){case 6:Sl(6);break;case 70:Sl(70);break;case 73:Sl(73);break;case 74:Sl(74);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 93:Sl(93);break;case 94:Sl(94);break;case 103:Sl(103);break;case 105:Sl(105);break;case 108:Sl(108);break;case 109:Sl(109);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 113:Sl(113);break;case 118:Sl(118);break;case 119:Sl(119);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 129:Sl(129);break;case 131:Sl(131);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 153:Sl(153);break;case 159:Sl(159);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 170:Sl(170);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 182:Sl(182);break;case 184:Sl(184);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 218:Sl(218);break;case 219:Sl(219);break;case 220:Sl(220);break;case 224:Sl(224);break;case 229:Sl(229);break;case 235:Sl(235);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 250:Sl(250);break;case 254:Sl(254);break;case 256:Sl(256);break;case 260:Sl(260);break;case 266:Sl(266);break;case 270:Sl(270);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 262:Sl(262);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal("FunctionName",Pl)}function Fa(){switch(Hl){case 6:xl(6);break;case 70:xl(70);break;case 73:xl(73);break;case 74:xl(74);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 93:xl(93);break;case 94:xl(94);break;case 103:xl(103);break;case 105:xl(105);break;case 108:xl(108);break;case 109:xl(109);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 113:xl(113);break;case 118:xl(118);break;case 119:xl(119);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 129:xl(129);break;case 131:xl(131);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 153:xl(153);break;case 159:xl(159);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 170:xl(170);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 182:xl(182);break;case 184:xl(184);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 218:xl(218);break;case 219:xl(219);break;case 220:xl(220);break;case 224:xl(224);break;case 229:xl(229);break;case 235:xl(235);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 250:xl(250);break;case 254:xl(254);break;case 256:xl(256);break;case 260:xl(260);break;case 266:xl(266);break;case 270:xl(270);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 262:xl(262);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ia(){Vl.startNonterminal("NCName",Pl);switch(Hl){case 19:Sl(19);break;case 70:Sl(70);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 94:Sl(94);break;case 105:Sl(105);break;case 109:Sl(109);break;case 113:Sl(113);break;case 118:Sl(118);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 131:Sl(131);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 220:Sl(220);break;case 224:Sl(224);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 254:Sl(254);break;case 266:Sl(266);break;case 270:Sl(270);break;case 73:Sl(73);break;case 74:Sl(74);break;case 82:Sl(82);break;case 93:Sl(93);break;case 96:Sl(96);break;case 103:Sl(103);break;case 108:Sl(108);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 119:Sl(119);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 129:Sl(129);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 145:Sl(145);break;case 152:Sl(152);break;case 153:Sl(153);break;case 159:Sl(159);break;case 165:Sl(165);break;case 170:Sl(170);break;case 182:Sl(182);break;case 184:Sl(184);break;case 185:Sl(185);break;case 191:Sl(191);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 216:Sl(216);break;case 218:Sl(218);break;case 219:Sl(219);break;case 226:Sl(226);break;case 227:Sl(227);break;case 229:Sl(229);break;case 235:Sl(235);break;case 243:Sl(243);break;case 244:Sl(244);break;case 250:Sl(250);break;case 253:Sl(253);break;case 256:Sl(256);break;case 260:Sl(260);break;case 262:Sl(262);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal("NCName",Pl)}function qa(){switch(Hl){case 19:xl(19);break;case 70:xl(70);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 94:xl(94);break;case 105:xl(105);break;case 109:xl(109);break;case 113:xl(113);break;case 118:xl(118);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 131:xl(131);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 220:xl(220);break;case 224:xl(224);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 254:xl(254);break;case 266:xl(266);break;case 270:xl(270);break;case 73:xl(73);break;case 74:xl(74);break;case 82:xl(82);break;case 93:xl(93);break;case 96:xl(96);break;case 103:xl(103);break;case 108:xl(108);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 119:xl(119);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 129:xl(129);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 145:xl(145);break;case 152:xl(152);break;case 153:xl(153);break;case 159:xl(159);break;case 165:xl(165);break;case 170:xl(170);break;case 182:xl(182);break;case 184:xl(184);break;case 185:xl(185);break;case 191:xl(191);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 216:xl(216);break;case 218:xl(218);break;case 219:xl(219);break;case 226:xl(226);break;case 227:xl(227);break;case 229:xl(229);break;case 235:xl(235);break;case 243:xl(243);break;case 244:xl(244);break;case 250:xl(250);break;case 253:xl(253);break;case 256:xl(256);break;case 260:xl(260);break;case 262:xl(262);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ra(){Vl.startNonterminal("MainModule",Pl),l(),Nl(),Ua(),Vl.endNonterminal("MainModule",Pl)}function Ua(){Vl.startNonterminal("Program",Pl),$a(),Vl.endNonterminal("Program",Pl)}function za(){Vl.startNonterminal("Statements",Pl);for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,Pl,_l)}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Nl(),Ka()}Vl.endNonterminal("Statements",Pl)}function Wa(){for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),Jl(6,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,t,-2);break}}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Qa()}}function Xa(){Vl.startNonterminal("StatementsAndExpr",Pl),za(),Nl(),G(),Vl.endNonterminal("StatementsAndExpr",Pl)}function Va(){Wa(),Y()}function $a(){Vl.startNonterminal("StatementsAndOptionalExpr",Pl),za(),Hl!=25&&Hl!=282&&(Nl(),G()),Vl.endNonterminal("StatementsAndOptionalExpr",Pl)}function Ja(){Wa(),Hl!=25&&Hl!=282&&Y()}function Ka(){Vl.startNonterminal("Statement",Pl);switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),_l=-1}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),_l=-2}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),_l=-3}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),_l=-12}catch(c){_l=-13}}}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,Pl,_l)}}switch(_l){case-2:Za();break;case-3:tf();break;case 90198:rf();break;case 90214:of();break;case 113284:af();break;case 16009:case 16046:case 116910:case 119945:case 128649:lf();break;case 17560:df();break;case 17651:mf();break;case 141562:wf();break;case 17661:Sf();break;case-12:case 16134:Cf();break;case-13:Lf();break;case 53:Of();break;default:Ga()}Vl.endNonterminal("Statement",Pl)}function Qa(){switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),Jl(7,t,-1),_l=-15}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),Jl(7,t,-2),_l=-15}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),Jl(7,t,-3),_l=-15}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),Jl(7,t,-12),_l=-15}catch(c){_l=-13,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,t,-13)}}}}}}switch(_l){case-2:ef();break;case-3:nf();break;case 90198:sf();break;case 90214:uf();break;case 113284:ff();break;case 16009:case 16046:case 116910:case 119945:case 128649:cf();break;case 17560:vf();break;case 17651:gf();break;case 141562:Ef();break;case 17661:xf();break;case-12:case 16134:kf();break;case-13:Af();break;case 53:Mf();break;case-15:break;default:Ya()}}function Ga(){Vl.startNonterminal("ApplyStatement",Pl),Pf(),Sl(53),Vl.endNonterminal("ApplyStatement",Pl)}function Ya(){Hf(),xl(53)}function Za(){Vl.startNonterminal("AssignStatement",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal("AssignStatement",Pl)}function ef(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df(),xl(53)}function tf(){Vl.startNonterminal("BlockStatement",Pl),Sl(276),kl(277),Nl(),za(),Sl(282),Vl.endNonterminal("BlockStatement",Pl)}function nf(){xl(276),kl(277),Wa(),xl(282)}function rf(){Vl.startNonterminal("BreakStatement",Pl),Sl(86),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal("BreakStatement",Pl)}function sf(){xl(86),kl(59),xl(176),kl(28),xl(53)}function of(){Vl.startNonterminal("ContinueStatement",Pl),Sl(102),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal("ContinueStatement",Pl)}function uf(){xl(102),kl(59),xl(176),kl(28),xl(53)}function af(){Vl.startNonterminal("ExitStatement",Pl),Sl(132),kl(71),Sl(221),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal("ExitStatement",Pl)}function ff(){xl(132),kl(71),xl(221),kl(267),Df(),xl(53)}function lf(){Vl.startNonterminal("FLWORStatement",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),hf(),Vl.endNonterminal("FLWORStatement",Pl)}function cf(){nt();for(;;){kl(173);if(Hl==220)break;it()}pf()}function hf(){Vl.startNonterminal("ReturnStatement",Pl),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal("ReturnStatement",Pl)}function pf(){xl(220),kl(270),Qa()}function df(){Vl.startNonterminal("IfStatement",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(270),Nl(),Ka(),kl(48),Sl(122),kl(270),Nl(),Ka(),Vl.endNonterminal("IfStatement",Pl)}function vf(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(270),Qa(),kl(48),xl(122),kl(270),Qa()}function mf(){Vl.startNonterminal("SwitchStatement",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yf(),kl(113);if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal("SwitchStatement",Pl)}function gf(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bf(),kl(113);if(Hl!=88)break}xl(109),kl(70),xl(220),kl(270),Qa()}function yf(){Vl.startNonterminal("SwitchCaseStatement",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal("SwitchCaseStatement",Pl)}function bf(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(270),Qa()}function wf(){Vl.startNonterminal("TryCatchStatement",Pl),Sl(250),kl(87),Nl(),tf();for(;;){kl(36),Sl(91),kl(257),Nl(),_n(),Nl(),tf(),kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,Pl,_l)}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break}Vl.endNonterminal("TryCatchStatement",Pl)}function Ef(){xl(250),kl(87),nf(),kl(36),xl(91),kl(257),Dn(),nf();for(;;){kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),Jl(8,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,t,-2);break}}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break;kl(36),xl(91),kl(257),Dn(),nf()}}function Sf(){Vl.startNonterminal("TypeswitchStatement",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),Tf(),kl(113);if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal("TypeswitchStatement",Pl)}function xf(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),Nf(),kl(113);if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(270),Qa()}function Tf(){Vl.startNonterminal("CaseStatement",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),ms(),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal("CaseStatement",Pl)}function Nf(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),gs(),kl(70),xl(220),kl(270),Qa()}function Cf(){Vl.startNonterminal("VarDeclStatement",Pl);for(;;){kl(98);if(Hl!=32)break;Nl(),B()}Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f());for(;;){if(Hl!=41)break;Sl(41),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f())}Sl(53),Vl.endNonterminal("VarDeclStatement",Pl)}function kf(){for(;;){kl(98);if(Hl!=32)break;j()}xl(262),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df());for(;;){if(Hl!=41)break;xl(41),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df())}xl(53)}function Lf(){Vl.startNonterminal("WhileStatement",Pl),Sl(267),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(270),Nl(),Ka(),Vl.endNonterminal("WhileStatement",Pl)}function Af(){xl(267),kl(22),xl(34),kl(267),Y(),xl(37),kl(270),Qa()}function Of(){Vl.startNonterminal("VoidStatement",Pl),Sl(53),Vl.endNonterminal("VoidStatement",Pl)}function Mf(){xl(53)}function _f(){Vl.startNonterminal("ExprSingle",Pl);switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:Z();break;case 17560:Sn();break;case 17651:ln();break;case 141562:Tn();break;case 17661:mn();break;default:Pf()}Vl.endNonterminal("ExprSingle",Pl)}function Df(){switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:et();break;case 17560:xn();break;case 17651:cn();break;case 141562:Nn();break;case 17661:gn();break;default:Hf()}}function Pf(){Vl.startNonterminal("ExprSimple",Pl);switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),_l=-6}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,Pl,_l)}}switch(_l){case 16001:case 16107:on();break;case 97951:case 98463:Oo();break;case 97902:case 98414:_o();break;case 98010:Bo();break;case-6:case 98011:Po();break;case 15975:Wo();break;case 85102:Bf();break;case 85151:Ff();break;case 85210:qf();break;case-11:Uf();break;case 85069:Wf();break;default:Pn()}Vl.endNonterminal("ExprSimple",Pl)}function Hf(){switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),Jl(9,t,-6),_l=-13}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,t,-11)}}}switch(_l){case 16001:case 16107:un();break;case 97951:case 98463:Mo();break;case 97902:case 98414:Do();break;case 98010:jo();break;case-6:case 98011:Ho();break;case 15975:Xo();break;case 85102:jf();break;case 85151:If();break;case 85210:Rf();break;case-11:zf();break;case 85069:Xf();break;case-13:break;default:Hn()}}function Bf(){Vl.startNonterminal("JSONDeleteExpr",Pl),Sl(110),kl(56),Sl(166),kl(264),Nl(),Yr(),Vl.endNonterminal("JSONDeleteExpr",Pl)}function jf(){xl(110),kl(56),xl(166),kl(264),Zr()}function Ff(){Vl.startNonterminal("JSONInsertExpr",Pl);switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),_l=-1}catch(g){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,Pl,_l)}switch(_l){case-1:Sl(159),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),_l=-1}catch(m){_l=-2}Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,Pl,_l)}}_l==-1&&(Sl(81),kl(69),Sl(211),kl(267),Nl(),_f());break;default:Sl(159),kl(56),Sl(166),kl(267),Nl(),hl(),Sl(163),kl(267),Nl(),_f()}Vl.endNonterminal("JSONInsertExpr",Pl)}function If(){switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),Jl(10,t,-1),_l=-3}catch(g){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,t,-2)}}switch(_l){case-1:xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df());break;case-3:break;default:xl(159),kl(56),xl(166),kl(267),pl(),xl(163),kl(267),Df()}}function qf(){Vl.startNonterminal("JSONRenameExpr",Pl),Sl(218),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(79),kl(267),Nl(),_f(),Vl.endNonterminal("JSONRenameExpr",Pl)}function Rf(){xl(218),kl(56),xl(166),kl(264),Zr(),xl(79),kl(267),Df()}function Uf(){Vl.startNonterminal("JSONReplaceExpr",Pl),Sl(219),kl(82),Sl(261),kl(64),Sl(196),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal("JSONReplaceExpr",Pl)}function zf(){xl(219),kl(82),xl(261),kl(64),xl(196),kl(56),xl(166),kl(264),Zr(),xl(270),kl(267),Df()}function Wf(){Vl.startNonterminal("JSONAppendExpr",Pl),Sl(77),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f(),Vl.endNonterminal("JSONAppendExpr",Pl)}function Xf(){xl(77),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df()}function Vf(){Vl.startNonterminal("CommonContent",Pl);switch(Hl){case 12:Sl(12);break;case 23:Sl(23);break;case 277:Sl(277);break;case 283:Sl(283);break;default:yl()}Vl.endNonterminal("CommonContent",Pl)}function $f(){switch(Hl){case 12:xl(12);break;case 23:xl(23);break;case 277:xl(277);break;case 283:xl(283);break;default:bl()}}function Jf(){Vl.startNonterminal("ContentExpr",Pl),Xa(),Vl.endNonterminal("ContentExpr",Pl)}function Kf(){Va()}function Qf(){Vl.startNonterminal("CompDocConstructor",Pl),Sl(119),kl(87),Nl(),yl(),Vl.endNonterminal("CompDocConstructor",Pl)}function Gf(){xl(119),kl(87),bl()}function Yf(){Vl.startNonterminal("CompAttrConstructor",Pl),Sl(82),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal("CompAttrConstructor",Pl)}function Zf(){xl(82),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(12,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function el(){Vl.startNonterminal("CompPIConstructor",Pl),Sl(216),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ia()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal("CompPIConstructor",Pl)}function tl(){xl(216),kl(251);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:qa()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(13,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function nl(){Vl.startNonterminal("CompCommentConstructor",Pl),Sl(96),kl(87),Nl(),yl(),Vl.endNonterminal("CompCommentConstructor",Pl)}function rl(){xl(96),kl(87),bl()}function il(){Vl.startNonterminal("CompTextConstructor",Pl),Sl(244),kl(87),Nl(),yl(),Vl.endNonterminal("CompTextConstructor",Pl)}function sl(){xl(244),kl(87),bl()}function ol(){Vl.startNonterminal("PrimaryExpr",Pl);switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),_l=-10}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,Pl,_l)}}switch(_l){case 8:case 9:case 10:case 11:oi();break;case 31:li();break;case 34:di();break;case 44:mi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:Si();break;case 141514:yi();break;case 141568:wi();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:os();break;case-10:case 27412:yl();break;case-11:ll();break;case 68:ml();break;case 278:al();break;default:Li()}Vl.endNonterminal("PrimaryExpr",Pl)}function ul(){switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),Jl(14,t,-10),_l=-14}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,t,-11)}}}switch(_l){case 8:case 9:case 10:case 11:ui();break;case 31:ci();break;case 34:vi();break;case 44:gi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:xi();break;case 141514:bi();break;case 141568:Ei();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:us();break;case-10:case 27412:bl();break;case-11:cl();break;case 68:gl();break;case 278:fl();break;case-14:break;default:Ai()}}function al(){Vl.startNonterminal("JSONSimpleObjectUnion",Pl),Sl(278),kl(273),Hl!=281&&(Nl(),G()),Sl(281),Vl.endNonterminal("JSONSimpleObjectUnion",Pl)}function fl(){xl(278),kl(273),Hl!=281&&Y(),xl(281)}function ll(){Vl.startNonterminal("ObjectConstructor",Pl),Sl(276),kl(274),Hl!=282&&(Nl(),hl()),Sl(282),Vl.endNonterminal("ObjectConstructor",Pl)}function cl(){xl(276),kl(274),Hl!=282&&pl(),xl(282)}function hl(){Vl.startNonterminal("PairConstructorList",Pl),dl();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),dl()}Vl.endNonterminal("PairConstructorList",Pl)}function pl(){vl();for(;;){if(Hl!=41)break;xl(41),kl(267),vl()}}function dl(){Vl.startNonterminal("PairConstructor",Pl),_f(),Sl(49),kl(267),Nl(),_f(),Vl.endNonterminal("PairConstructor",Pl)}function vl(){Df(),xl(49),kl(267),Df()}function ml(){Vl.startNonterminal("ArrayConstructor",Pl),Sl(68),kl(272),Hl!=69&&(Nl(),G()),Sl(69),Vl.endNonterminal("ArrayConstructor",Pl)}function gl(){xl(68),kl(272),Hl!=69&&Y(),xl(69)}function yl(){Vl.startNonterminal("BlockExpr",Pl),Sl(276),kl(277),Nl(),$a(),Sl(282),Vl.endNonterminal("BlockExpr",Pl)}function bl(){xl(276),kl(277),Ja(),xl(282)}function wl(){Vl.startNonterminal("FunctionDecl",Pl),Sl(145),kl(255),Nl(),Ha(),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(148),Hl==79&&(Nl(),El()),kl(118);switch(Hl){case 276:Sl(276),kl(277),Nl(),$a(),Sl(282);break;default:Sl(133)}Vl.endNonterminal("FunctionDecl",Pl)}function El(){Vl.startNonterminal("ReturnType",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal("ReturnType",Pl)}function Sl(e){Hl==e?(Nl(),Vl.terminal(i.TOKEN[Hl],Bl,jl>Gl?Gl:jl),Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function xl(e){Hl==e?(Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function Tl(e){var t=Dl,n=Pl,r=Hl,i=Bl,s=jl;Hl=e,Bl=Yl,jl=Zl,Fl=0,Pa(),Dl=t,Pl=n,Hl=r,Hl!=0&&(Bl=i,jl=s)}function Nl(){Pl!=Bl&&(Dl=Pl,Pl=Bl,Vl.whitespace(Dl,Pl))}function Cl(e){var t;for(;;){t=ec(e);if(t!=22){if(t!=36)break;Tl(t)}}return t}function kl(e){Hl==0&&(Hl=Cl(e),Bl=Yl,jl=Zl)}function Ll(e){Fl==0&&(Fl=Cl(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Al(e){Hl==0&&(Hl=ec(e),Bl=Yl,jl=Zl)}function Ol(e){Fl==0&&(Fl=ec(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Ml(e,t,r,i,s){throw t>Ul&&(Rl=e,Ul=t,zl=r,Wl=i,Xl=s),new n.ParseException(Rl,Ul,zl,Wl,Xl)}function Jl(e,t,n){$l[(t<<4)+e]=n}function Kl(e,t){var n=$l[(t<<4)+e];return typeof n!="undefined"?n:0}function ec(e){var t=!1;Yl=Zl;var n=Zl,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<Gl?Ql.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<Gl?Ql.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,Zl=n)}r>>=12;if(r==0){Zl=n-1;var f=Zl<Gl?Ql.charCodeAt(Zl):0;return f>=56320&&f<57344&&--Zl,Ml(Yl,Zl,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--Zl;var f=Zl<Gl?Ql.charCodeAt(Zl):0;f>=56320&&f<57344&&--Zl}else Zl-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?"lexical analysis failed":"syntax error"}},this.getInput=function(){return Ql},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=Ql.substring(0,e.getBegin()),i=r.split("\n"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?"":", found "+n)+"\nwhile expecting "+(t.length==1?t[0]:"["+t.join(", ")+"]")+"\n"+(u==0||n!=null?"":"after successfully scanning "+u+" characters beginning ")+"at line "+s+", column "+o+":\n..."+Ql.substring(e.getBegin(),Math.min(Ql.length,e.getBegin()+64))+"..."},this.parse_XQuery=function(){Vl.startNonterminal("XQuery",Pl),kl(275),Nl(),o(),Sl(25),Vl.endNonterminal("XQuery",Pl)};var _l,Dl,Pl,Hl,Bl,jl,Fl,Il,ql,Rl,Ul,zl,Wl,Xl,Vl,$l,Ql,Gl,Yl,Zl};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<284;i+=32){var s=i,o=(i>>5)*3694+n-1,u=o>>1,a=u>>2,f=r.EXPECTED[(o&1)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,38,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38,38,38,38,38,38,38,38,38,38,38,30,30,38,38,38,38,38,38,38,69,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,38,30,38,30,30,38],r.INITIAL=[1,12290,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],r.TRANSITION=[42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25651,25666,25670,25670,25670,18189,25670,25670,25670,25670,18201,25670,25670,25670,25670,18176,25670,25671,18217,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,18730,20976,20988,20999,21015,25420,18732,21040,42516,42516,42516,27632,42516,42516,51474,31122,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,21056,21084,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23286,21107,42516,42516,42516,39416,42516,42516,43470,47286,25568,42516,42516,42516,42516,23672,41495,21126,21160,42516,42516,42516,27632,42516,42516,35938,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25556,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21176,21248,42516,42516,42516,50595,42516,42516,42445,42516,25917,23619,21211,21279,21269,21226,21240,44419,21040,42516,42516,42516,27632,21302,42516,32247,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19871,21321,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,21344,26008,18612,18632,18596,21349,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42510,42516,42516,42516,48894,42515,42516,51366,42516,21365,42504,21403,42515,21410,42516,27599,27612,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,21426,42516,42516,42516,22170,42516,42516,21445,42516,42516,21468,21481,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,24484,42516,42516,42516,42516,42516,42516,42517,21497,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,21513,25598,18486,18508,51408,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25358,21538,42516,42516,42516,29996,42516,42516,26519,46446,25383,42516,42516,42516,42516,25736,28473,18232,21557,42516,42516,42516,27632,42516,42516,51474,21573,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19060,21591,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23074,23089,21619,21619,21619,21672,21614,21619,21624,23096,21640,21745,21688,21665,21655,21732,21703,21716,21040,42516,42516,42516,33326,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21761,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,45317,42516,42516,42516,49458,21798,42516,22640,21804,25917,45316,42516,21821,21844,21828,21860,21869,21885,42516,42516,42516,29550,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21901,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,21944,42516,42516,42516,48069,42516,42516,42516,26308,36543,25445,25454,21937,25455,21960,21985,21998,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,18888,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,26329,37275,42655,22014,22031,22014,22046,42653,22015,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,22071,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,26891,42516,42516,42516,48069,22092,42516,23653,22130,40293,22116,22186,22191,22191,22207,26888,44587,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,18247,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35843,22232,22249,22232,22264,35841,22233,22289,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,33841,42516,34304,43899,22305,22071,36154,42516,42516,42516,42516,28243,22657,22322,22657,22657,22341,33347,46316,46316,39789,38147,35514,38147,38147,22359,22382,42516,42516,42516,42516,42516,28815,42516,22405,22426,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,47355,26569,42516,42516,42516,42516,42516,45225,42516,42516,32981,50880,22657,22657,22657,30360,22467,39622,46316,22501,46316,22343,36422,42625,38147,22520,38147,27826,41766,42516,42516,42516,42516,42516,49148,42516,23255,22657,44467,22657,22657,30361,22539,42077,46316,46316,46316,30525,38147,40186,38147,38147,34440,41769,42516,42516,20027,37487,42516,28242,22657,22657,36250,37745,46316,46316,44329,37798,38147,38147,43834,27827,30836,42516,42516,19405,22558,38368,22576,22657,40730,22597,46316,36583,22617,38147,40469,22638,42516,25905,42516,34153,22656,33064,46073,46316,22674,22710,27827,22690,51145,42516,32408,22729,37572,22752,32120,22683,29050,30609,22771,38961,22813,36803,22874,22893,22911,28238,43147,27775,22913,22451,22736,46400,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,50215,25917,42516,42516,42516,42516,42516,45715,23059,23112,42516,42516,42516,27632,42516,42516,37325,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23128,46363,42516,42516,42516,34304,42516,42516,18360,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28815,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23154,42516,42516,42516,46371,42516,42516,42516,42516,25917,35960,23175,23206,23195,23229,35959,23179,21040,42516,42516,42516,27632,42516,42516,51474,27227,42516,43023,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23254,42516,42516,42516,48069,42516,42516,42516,19968,25917,42516,42516,42516,42516,42516,42762,23271,23302,42516,42516,42516,27632,42516,42516,21380,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23318,46363,42516,42516,42516,34304,42516,42516,23344,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,23370,23409,42516,42516,42516,42516,38331,23429,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,23450,23383,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,50700,22540,46316,46316,46316,46316,47852,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,29796,22539,46316,46316,46316,46316,23533,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,48371,42516,42516,42516,31492,32078,42516,42516,23557,25917,18721,49121,23587,23594,23610,42516,43878,23635,23651,42516,42516,33439,23669,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,25038,24355,23991,25028,23804,18270,40105,18293,23688,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,23724,24084,23749,23789,24317,23827,23849,23904,24015,23917,23946,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,23969,24689,24310,25086,25092,23974,23990,24416,24845,24007,23833,24977,24993,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,24031,23930,24046,24073,24057,24100,24137,24664,24240,24198,24251,24225,24986,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,24267,24283,24299,24348,24333,24371,24167,24428,24402,23773,24444,24474,35639,19379,39467,19401,41728,19421,19500,24458,19544,24500,24558,24572,24588,24604,24182,24745,24620,24636,24767,19696,19712,19728,19753,19773,19830,19435,19514,24680,24514,19528,24705,24152,24757,19947,19984,20043,20080,20119,20157,20667,24542,24528,24731,24830,24209,24939,20235,20264,20301,24783,24799,24815,24715,24861,20381,20397,19814,23733,24877,24893,20503,25039,24968,23864,24927,24955,25015,20652,18443,23763,24386,25055,24651,25071,25108,25159,25175,25191,25243,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,27003,42516,42516,42516,48069,25296,42516,42516,25291,40518,25312,25320,25320,25320,25327,27168,25343,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25399,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,18963,25373,18652,18689,18711,18748,18695,25415,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,19337,25436,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,25471,25509,25525,20579,19301,19596,25541,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,25584,19614,19632,19650,25620,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,21541,28730,28739,28739,28739,28746,47533,25636,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,27653,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25687,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51268,23158,42516,42516,42516,48069,42516,42516,42516,42516,25917,22795,25710,25710,25710,25717,23159,22797,21040,25733,42516,42516,27632,42516,42516,51474,42516,42516,44769,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25752,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26066,26075,42516,42516,42516,42907,42516,42516,42516,42516,25917,26405,25775,25775,25775,25782,28588,26407,25798,25814,42516,42516,27632,42516,42516,51474,42516,42516,23413,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25831,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,25857,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25891,42516,42516,42516,42516,48069,25942,42516,42516,28970,33768,42516,42516,42516,25933,25960,26180,25944,25980,42516,42516,42516,27632,42516,42516,51474,27927,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,25996,26028,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,41865,26051,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,26178,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,23464,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,26196,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,26216,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,31151,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,31154,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,22786,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26258,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,48694,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,28605,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,47769,26274,26287,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,26303,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35004,26345,26373,26362,26396,35005,26346,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,37963,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,26423,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,47727,42516,26460,26483,26467,42516,47735,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,26499,20264,20301,20317,20346,20333,20349,20365,26535,20397,20422,20606,20438,26551,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,29068,42516,42516,42516,51537,26585,26616,29663,26601,26633,26690,26699,26715,26730,26742,26758,26771,26099,19999,42516,26787,26162,26806,41856,26832,26883,26907,26946,30733,26962,26998,27019,27054,46783,31896,27070,46885,46348,36728,27120,42516,42516,34304,27137,37896,42516,27163,34995,39190,42516,27184,43650,22657,22657,22657,27203,27401,46316,46316,41985,48318,38147,38147,38147,37213,40896,22382,42516,27222,48046,42516,27243,27263,27280,42516,42516,27038,20763,27308,27328,22657,22657,27363,27386,27419,35266,46316,30482,27448,27495,27524,27566,38147,35889,38740,46095,27585,26152,27628,42516,45564,42516,47310,23487,42516,46936,27648,27669,27685,34339,22657,27729,22984,44673,27748,45967,46316,27773,39768,32782,27791,37607,38147,27824,22485,27843,27859,27882,27899,42516,27922,31758,27943,23255,33056,27962,22657,42185,33093,27982,30091,46316,35423,43042,32774,28017,38147,38147,42363,28033,23138,28062,40096,28115,41486,28137,21969,22956,28160,22657,46191,35558,28176,28197,32038,49740,47969,28214,27827,28233,42899,42516,21253,42516,38368,42934,43766,40730,37393,48025,36583,51021,44713,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,28260,28298,33550,28320,28341,28379,28401,28421,26921,40729,36585,44924,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28445,42516,42516,51537,42516,42516,42516,42516,31409,28464,42516,28489,28496,28512,28528,28541,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,42942,46314,28557,30860,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28583,23487,28604,45602,42516,42516,38368,22657,22657,22657,44648,28621,22541,46316,46316,46316,40008,44805,38147,38147,38147,38147,41449,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,32305,42516,42516,28652,43395,23255,28671,22657,22657,22657,28690,28706,46316,46316,46316,37589,32774,28762,38147,38147,38147,44356,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,23013,26674,44310,41661,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28784,42516,42516,51537,42516,28813,42516,28831,36313,28851,28860,28876,28891,28903,28919,28932,26099,42516,42516,33807,29427,42516,42516,28948,42516,28965,42516,42516,42516,25275,42516,28986,44283,46314,29021,22622,37863,32069,42516,29066,42516,34304,29084,49128,42516,45291,29103,36853,42516,39408,30216,37513,22657,22657,22657,29138,29162,46316,46316,48917,29187,29203,38147,38147,40896,22382,23471,42516,42516,37970,42516,41320,23487,39926,29222,42516,42516,38368,29257,38293,22657,29296,38374,29315,31567,38618,38779,46316,44805,42631,29346,29367,48610,38147,32923,26115,26152,42516,42516,35359,42516,36267,23487,42516,42516,42516,38370,22657,22657,38875,29587,30360,22540,46316,46316,49716,48753,22343,30533,38147,38147,47896,47206,27826,35762,29388,42516,42516,42516,29423,42516,29443,23255,22657,22657,22657,43545,22877,22539,46316,46316,49625,46316,32774,38147,38147,38147,29464,34440,41769,42516,42516,19074,42516,46902,29483,22657,45738,22657,46191,46316,28001,46316,32038,38147,48630,38147,27827,29518,29546,42516,39530,20864,38368,29566,29583,46250,46316,29603,36583,29623,29640,40469,42516,42516,42516,29661,38373,22657,29679,46316,51108,36586,38147,50541,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,29702,29722,29738,29754,28244,40729,36585,22448,28385,36584,34366,22755,31692,34720,29778,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,26790,42516,42516,51537,42516,29812,25227,42516,31450,29831,29840,29856,29871,29878,29894,29907,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,31072,31070,42516,32276,32283,40826,29686,35273,29923,34810,28721,42516,35352,29943,34304,42516,29968,36872,42516,42516,29988,30012,34471,30028,22581,34160,30064,24121,30107,48780,30128,30172,30191,29624,22523,47650,28217,40896,22382,42516,42516,42516,42735,42516,30232,23487,42516,42516,42516,27906,38368,22657,22657,22657,26867,38374,22541,46316,46316,46316,37425,44805,38147,38147,38147,38147,30252,50615,30272,30304,42516,42516,42516,30320,30338,23487,42516,42516,27104,21782,30358,30377,22657,22657,30395,30434,30481,30498,46316,46316,30515,51071,30551,30568,38147,38147,30585,35762,23510,42516,42516,42516,42516,42516,30625,23255,30648,22657,22657,30668,22877,30687,46316,46316,34855,46316,32837,38147,38147,43217,38147,34440,41769,45029,42516,30729,42516,21024,28242,29299,22657,30749,46191,50174,46316,30776,32038,38147,30812,48472,27827,22690,23708,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,37071,42516,42516,38373,22657,31523,46316,43307,36586,38147,39352,22690,34920,42516,38372,43148,46316,38137,38147,30829,36804,38368,28385,28404,30535,27085,28354,31634,30852,30600,30074,38197,42103,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,21805,30876,42516,51537,49762,30895,42516,30918,43094,30942,30951,30967,30982,30994,31010,31023,26099,42516,31039,39573,31055,20844,31088,31151,40795,31438,31118,31138,31170,31208,31224,31259,31325,39316,31341,31357,42305,39859,31243,31397,39944,31425,33906,31466,31484,36903,42516,42516,38844,42516,28243,31508,40831,43064,26242,31546,31583,49551,32501,35578,43001,31607,35023,30465,31623,22382,40777,39e3,31658,40711,31716,41838,31747,42230,41234,31783,31813,31829,31873,31912,31936,31952,31988,32019,35868,32054,38034,47598,32094,32110,32136,39813,32152,32186,47170,32233,26152,32263,42516,49503,42516,32299,32321,32337,32365,32386,32406,32424,22657,35078,32463,30760,22540,32487,46316,47681,50971,43200,30533,32517,38147,37625,38481,40265,32560,23510,18666,32576,32596,39698,32624,37664,32645,31965,32706,47478,32693,32731,32762,40433,46316,32798,32825,32774,32853,32872,49013,32893,32919,41769,42516,21429,46706,42516,42516,32939,25143,43551,27695,46191,47568,50517,33128,32038,44391,37914,44027,27827,22690,51501,22158,32960,23571,32997,33045,33080,33109,33144,33160,33196,33225,33259,33289,25257,41794,33305,33321,22943,47433,44826,33342,33363,33392,45913,37247,22690,23238,33434,38372,47456,46316,49977,38147,33455,33478,32944,28385,33515,33536,30206,38372,33571,38971,31372,39304,33587,33611,33627,33643,33674,33720,28385,36584,33273,33742,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,33784,42516,51537,33805,33823,29972,43389,33866,33897,42516,33882,33940,33947,33963,33976,26099,42516,42516,20279,27632,42516,42516,42516,42516,42516,41269,42516,41261,42516,41268,25123,41628,38176,37400,33992,34810,28721,42516,34012,42516,34304,34012,42516,42516,42516,34029,34013,37295,42516,28243,34045,22657,22657,22657,34069,34103,46316,46316,48318,47159,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,45931,42516,38368,22657,22657,22657,44213,38374,22541,46316,46316,46316,42968,44805,38147,38147,38147,38147,34120,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,46602,42516,38370,22657,22657,30041,22657,30360,22540,46316,46316,42268,46316,22343,30533,38147,38147,44e3,38147,27826,35762,23510,42516,42516,42516,42516,42516,39273,23255,22657,22657,22657,37139,22877,22539,46316,46316,49643,46316,32774,38147,38147,38147,48815,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,46733,42516,42516,42516,36647,22657,28384,27995,46316,49984,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,44874,43254,31692,29762,34139,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,38852,42516,42516,51280,34176,34185,34201,34208,34215,34231,34244,26099,42516,42516,42516,27632,42516,42516,34401,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,37878,42057,42516,42516,34304,42516,42516,42516,42516,34260,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,34278,42516,28081,38368,22657,22657,22657,22657,38374,42076,46316,46316,46316,46316,46212,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,47761,42516,34299,19108,42516,42516,19113,34320,22657,22657,34338,22657,30360,22540,46316,34104,46316,46316,22343,30533,38147,42837,38147,38147,27826,34355,42516,42516,42516,34399,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,38663,42516,34417,28242,22657,22657,38760,37745,46316,46316,50996,37798,38147,38147,38147,34438,22690,34456,18364,34487,34538,24114,31309,31274,34559,34565,27432,34581,44559,30458,34604,22076,42516,19757,34657,29792,34679,47804,33555,31559,34736,35451,34758,22690,41150,39051,35676,32439,38610,34776,34795,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,34833,34871,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,18277,42516,42516,34899,42516,42516,42516,36062,42516,36065,42516,42516,34947,34936,36697,22657,34963,27757,38148,48007,34986,42516,42516,29815,34304,21387,19116,42516,38636,42516,42516,42516,42516,28243,22657,22657,43325,22657,27401,46316,46316,30705,48318,38147,38147,38147,35021,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,35376,42516,35039,38368,22657,22657,22657,22657,50945,22541,46316,46316,46316,46316,38717,38147,38147,38147,38147,38147,41757,22444,42516,35059,42516,42516,42516,42516,42516,42516,42516,39196,38370,35077,22657,22657,22657,30360,46821,46316,46316,46316,46316,22343,23541,38147,38147,38147,38147,27826,41766,42516,42516,42516,50318,42516,42516,42516,23255,22657,22657,22657,46040,30361,22539,46316,46316,46316,34080,30525,38147,38147,38147,42204,34440,41769,42516,42516,46608,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,23434,42516,22428,38373,22657,28384,46316,46316,36586,38147,27827,35094,34920,22560,38372,50497,46316,40393,38147,43581,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,44978,42516,51537,30322,33499,42482,50012,50022,18763,18772,35115,35131,35143,35159,35172,26099,42516,42516,42516,36498,41847,42516,42516,42516,31671,41803,35188,36161,35205,35221,43491,35237,35256,29171,35289,37464,35305,42516,42516,42516,35339,42516,28090,35375,42516,42516,28949,35314,39266,28243,48989,48108,22657,35392,47509,37433,35422,34970,35439,27808,35467,38147,35501,35536,22382,42516,35594,39908,48509,34515,35614,42516,18299,18417,42516,35655,35672,48116,22657,43129,29280,37184,22541,48019,46316,38117,35692,47637,38147,35719,38147,35737,27472,35753,22444,42516,42516,42516,42516,35778,48535,35820,42516,42516,42516,23024,36244,22657,22657,29502,38418,35859,41980,46316,46316,48733,41934,49389,35884,38147,38147,40673,49832,35905,42516,36909,35924,35976,35997,18673,36033,34522,36081,47410,36098,36117,36141,36177,46316,36198,32809,43953,30446,38147,43626,42012,36214,36230,23328,20636,45205,36266,36283,36301,35981,36329,26662,46771,36350,36390,48253,35703,36411,36456,40231,38454,41461,37653,42516,42516,37028,36479,40577,43121,45398,22366,37772,48725,38205,36432,50457,40469,42516,25485,42516,36514,38373,22657,28384,46316,46316,36586,38147,27827,36626,36531,42516,28996,31885,36559,36579,36602,36619,36804,36642,28385,28404,30535,42423,49897,44263,36663,36694,43147,27775,22913,28244,40729,36585,22448,36713,36744,34366,22755,31692,28429,36774,36790,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,39935,42516,51537,42516,42516,42516,42516,25917,42516,29952,39942,19158,38671,36820,36833,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,44206,22657,27401,46316,46317,46316,48318,38147,38147,34588,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,19484,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,36849,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,36869,42516,42516,42516,42516,42516,42516,42516,42516,46294,22657,22657,22657,22657,30360,49232,46316,46316,46316,46316,22343,30796,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,46996,42516,51537,42516,23354,42516,42753,36888,36925,36938,36954,36961,36977,36993,37006,26099,42516,37022,42516,27632,42516,41516,26816,42516,42516,37044,42516,37049,18537,37065,37087,37117,44086,37200,37235,39844,33658,37263,42516,42516,35791,42516,42516,34914,28072,42516,37291,22389,37311,18926,37716,37348,43712,48153,37366,37382,46316,37416,40607,40193,49587,35520,37449,27508,37480,37934,42516,42516,42516,42516,41144,42516,42516,42516,42516,42516,38368,37503,36125,22657,37529,39594,37550,37566,48265,46316,37588,30713,29645,37605,37623,38799,38147,37641,22444,42516,42516,37688,42516,42516,49494,24999,42516,42516,42516,38370,22657,22657,29494,37704,37740,22540,46316,46316,40001,37761,37795,30533,38147,38147,37825,37814,37848,41766,42516,37894,42516,42516,51139,42516,42516,23255,22657,41398,22657,22657,30361,22539,42274,46316,46316,46316,30525,38147,37912,38147,38147,34440,41769,37930,36490,42516,34663,37950,28242,37986,22657,22657,46812,38013,46316,46316,45485,49261,38147,38147,48821,22690,49311,42516,42516,38050,38368,41404,22657,40730,47057,46316,36583,48937,38147,40469,42516,21575,42516,42516,38373,22657,38069,46316,45780,36586,38147,40463,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,38089,46273,22694,23034,40134,34366,22755,38105,38164,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,26200,42516,51537,42516,27946,42516,42516,47834,20951,20960,38221,38236,38243,38259,38272,26258,42516,38551,42516,27632,42516,34262,42516,42516,42516,38553,42516,38546,21091,38552,21774,38288,31700,35273,38309,34810,28721,42516,42516,38329,34304,42516,29241,23811,23953,42516,42516,42516,38347,38364,33022,22657,38390,38410,28636,46316,29607,39628,38434,42370,38147,48603,38470,47663,38504,38541,39253,39681,42516,42516,42516,42516,41197,42516,42516,42516,38368,31857,22657,38569,22657,38374,22541,38589,28198,46316,46316,44805,29206,27800,32877,38147,38147,32923,22444,42516,28144,42516,38634,42516,45188,42516,38652,42516,42516,38370,39723,22657,22657,38687,30379,22540,23043,46316,46316,38710,22895,30533,49398,38147,38147,38733,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,33462,42516,42516,42516,42516,38368,38756,22657,40730,38776,46316,36583,38795,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,38815,36586,49663,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,49485,38368,44256,40047,45820,38834,38868,32210,38891,28238,43147,27775,22913,28244,40729,36585,22448,28385,38914,38935,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,27187,42516,30926,42516,34543,38987,37672,39016,39067,39107,39092,39111,39076,39127,39140,26099,42516,25841,23701,20829,39222,20009,42516,39156,41252,39175,39212,32746,21195,39238,26847,39289,45668,39332,39368,34810,28721,32390,42516,42516,26444,30879,36010,28099,40787,39398,38525,26035,39432,39483,44460,39503,41633,22657,32003,22601,46316,49709,48318,47976,47889,30552,38147,33209,39523,39917,39159,42516,39546,42516,42516,40976,42516,42516,42516,39568,39487,37157,22657,39589,22657,38374,39610,45436,46316,39644,46316,44805,27542,39661,38313,38147,38147,32923,22444,42516,42516,42516,42516,30632,42516,42516,21187,39678,39697,39714,22657,22657,50559,22657,39739,39760,46316,46316,38818,46316,39784,39805,38147,38147,32856,38147,39829,41766,46006,39893,48391,49682,42516,39960,34641,39976,38394,40024,37997,33010,30361,22539,40063,40121,43817,40157,30525,40868,40175,40209,40247,34760,44916,20285,40281,34623,40309,51090,50324,48429,40325,40344,40364,39645,40409,40428,40449,38147,40485,49825,39382,22690,40506,42516,42516,22216,40534,39507,48098,30083,50926,38024,33595,45640,28567,40469,40559,42516,40087,26129,45371,31289,28384,40593,41927,40637,40665,40689,34614,41203,40707,27312,43148,48295,28405,40861,22683,50287,38368,40727,40746,40649,40767,40811,22827,40847,33407,49334,48207,33243,28244,40729,36585,22448,28385,36584,41673,40884,31692,28429,22929,40922,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,40951,51537,42516,42744,40972,42516,27292,40992,41001,41017,41032,41039,41055,41068,26099,20248,41084,41102,41129,21286,41166,42516,41182,41219,41286,31731,41302,41336,41352,41368,41384,34883,41420,41436,48349,41477,42516,42240,27121,34422,42516,41511,25267,41532,41575,42516,42516,41594,28243,22657,31843,41613,34053,27401,40159,35568,34847,41649,38147,27550,41689,41744,40896,22382,42516,26380,42516,41578,42516,44762,41785,42516,41828,27866,41270,19255,22657,41881,41897,22657,35406,41916,43971,44095,46316,46316,41950,22851,37219,42001,38147,29467,32923,42028,42044,42516,46644,19385,42516,42516,42516,42516,42516,34632,38370,22657,27339,43920,22657,30360,22540,46316,44514,36395,46316,22343,30533,38147,35478,49592,38147,27826,41766,42516,42516,21305,42516,31235,42516,42516,23255,22657,22657,22657,22657,20064,42074,46316,46316,46316,46316,42093,38147,38147,38147,38147,50734,41769,50664,35952,42516,42516,42516,41113,22657,42177,22657,45759,46316,43945,46316,45799,38147,45843,38147,27827,29041,42127,42516,42516,42516,48412,30671,22657,38073,44692,46316,33520,45533,38147,40469,42146,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,43588,34920,42516,42166,40348,33173,48271,42201,22683,42220,41559,42256,42290,42321,33756,44448,35547,42352,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,32531,22755,42386,28429,22929,42410,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,39045,51537,42516,42516,42439,19363,42461,42498,42516,31468,42533,42547,42563,42576,26099,42516,42516,25867,27632,42516,42516,42516,42592,26617,42516,42516,26436,25867,42516,30236,31920,49620,42612,36440,34810,28721,42516,42647,42516,34304,42516,44608,36046,42516,35598,42516,42516,36057,51481,44194,32471,36334,37148,42671,32033,42687,33121,42706,38488,30256,30569,29372,32199,42722,42778,42516,42799,42516,49524,50043,35835,42516,42516,42516,42516,38368,22657,22657,37175,22657,38374,22541,46316,46316,47563,46316,44805,38147,38147,38147,42836,38147,32923,42853,42888,35656,42516,42516,42516,50763,30902,39460,48700,42516,38370,22657,42923,22657,22657,37350,22540,46316,42958,46316,46316,27403,30533,38147,42991,38147,38147,27826,41766,42516,29233,42516,42516,42516,43017,42516,23255,22657,22657,49093,22657,22325,22539,46316,46316,43039,46316,30788,38147,38147,35485,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,36017,42516,42516,43058,22657,22657,40730,46316,46316,36583,38147,38147,48843,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,46409,43080,43110,32715,30112,30535,40935,43145,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,35061,42516,42516,42516,28279,28282,18254,28275,31684,43164,43182,29146,43216,43233,29330,43270,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,43287,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,43306,46316,46316,46316,46316,50852,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,43323,28384,43789,46316,36586,43341,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,50278,22100,42516,42516,50243,42516,29530,43375,33789,43361,43411,43418,43434,43447,26099,42516,33915,33924,27632,40956,43463,43486,41243,43507,26512,26972,26982,27147,41812,42783,43531,49966,43567,43604,44058,40078,42516,42516,42516,23213,43642,34502,43666,43684,38517,42516,42516,35323,43702,22657,43728,30048,43746,43782,42975,46316,43805,34708,43833,43850,27569,49274,49874,43871,42516,42516,42516,45270,35189,42516,42516,43894,43668,42516,42814,33726,22657,43915,22657,37724,49041,43936,46316,43969,46316,45680,43987,44022,33996,38147,38147,44043,44074,22444,42516,42516,19081,42516,44111,44127,42516,43290,44154,44166,44182,22657,37101,44229,44279,30652,44299,46316,42336,45461,44326,40412,44345,38147,44372,45987,44388,34123,41766,28121,42516,42516,24911,44407,50085,42516,44435,27732,44483,22975,22657,30361,22539,44504,42690,46316,46316,30525,28768,44537,44554,38147,40691,44575,42516,44603,44624,42516,42516,28242,44645,22657,22657,44664,44689,46316,46316,49378,44708,38147,38147,49798,22690,42516,44729,42516,42516,20056,22657,22657,34376,46316,51047,22477,38147,44538,40469,42516,22273,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,44749,26230,34694,49922,44785,36803,38372,46315,38146,47702,44821,44842,44862,21913,40729,36585,22448,28385,36584,40621,44890,44940,42111,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,46959,51537,45028,47264,44964,45002,45045,45083,45015,45108,45123,45139,45155,45168,26099,45184,28448,42516,28797,42516,42516,30342,42516,42516,45204,45221,31185,28655,31192,26648,48147,38948,50978,45241,34810,28721,45262,45286,25875,34304,35804,42516,42516,42516,42516,45307,45333,42516,45362,45387,27370,22657,22657,45422,45457,45477,46316,48318,45501,22713,45531,38147,40896,22382,41086,42516,42516,45549,45580,42516,42516,42516,42516,42516,41312,38368,32670,37166,22657,22657,33029,22541,45618,47052,46316,46316,45690,35721,38147,45637,38147,38147,45656,22444,42516,42516,45593,44733,42516,45600,35835,45706,27030,38348,45731,22657,22657,40543,26861,45754,45775,46316,46316,43191,44800,45796,45815,38147,38147,40256,45836,45859,28046,42867,49429,42516,25220,42516,19477,43271,20461,22657,22657,27347,45890,30361,22539,46316,48577,44521,46316,30525,38147,38147,46850,45910,34440,41769,42516,50831,45929,19737,42516,28242,22657,45947,43759,50887,46316,45965,46065,28181,38147,45983,46857,27827,22690,42516,42516,46003,44138,38368,22657,22657,40730,46316,46316,36583,38147,38147,29031,51383,46022,26136,47337,46039,22657,46056,46316,34383,36586,38147,46089,46111,34920,46149,46173,43148,46207,44846,46228,32903,36804,38368,46247,46266,45515,36803,38372,46315,38146,35099,35240,22504,22913,46289,46310,46333,36758,46387,47879,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,27247,51537,42516,42516,23393,42516,46425,46462,46474,46490,46505,46521,46537,46550,26099,46566,25493,25815,46587,26561,21328,46624,21598,42516,46636,46660,46669,46685,46722,46757,46799,32544,46837,46873,41704,47524,33832,37332,35627,34304,46901,42516,44629,46918,39031,46952,46975,47012,47022,48184,31972,27713,43730,47038,31642,47073,47098,47607,47121,47145,47186,47202,47222,47250,47280,47302,42058,42516,47326,47353,42516,42516,47371,47388,46928,47404,47426,47449,47472,29567,47494,47549,47584,47623,47679,36182,44805,36463,37832,40141,38147,32161,32170,47697,42516,45060,42596,50682,47718,42130,47751,46440,36515,21144,38370,47785,29270,22657,44488,47820,47850,47868,40376,46316,45441,47912,47938,47958,43617,38147,38919,47992,41766,29407,48041,42516,27096,48062,42516,50062,40568,48085,38573,48132,48169,30361,48200,48223,48241,48287,48311,47922,47129,22858,48334,43855,34440,40906,48365,50193,42516,22144,48387,48407,44243,48428,22657,49223,47234,48445,46316,47082,50795,48488,38147,33704,22690,42516,48504,48525,42516,20103,22966,48559,32447,40385,48575,48593,50156,48626,48646,48680,42516,33850,39552,21921,26930,48716,48749,48769,48802,45246,48837,48960,48859,48887,32658,28363,48910,33376,48933,48953,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,45621,46231,48976,39991,49005,49029,40039,49057,44903,22755,31692,28429,49073,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,49109,42516,42516,49144,42516,32608,18328,18337,49164,18337,18344,49180,49193,26099,42516,42516,42516,27632,20863,28835,42516,42516,42516,42516,28834,42516,20857,42516,28241,49209,31530,22841,49248,36678,30143,33493,42516,42516,34304,42516,42516,35043,49290,42516,42516,42516,38053,28243,49327,22657,22657,22658,49350,46316,46316,46316,31591,33687,38147,38147,38147,49366,49414,49451,42516,49474,49519,42516,42516,43686,45346,42516,46571,46157,38368,45949,40328,45406,25137,29005,22541,48786,34087,38601,49540,48459,38147,33697,39345,49573,33236,49608,22444,42516,19180,42516,50588,42516,42516,42516,18791,42516,42516,38370,38694,22657,22657,22657,30360,49641,32217,46316,46316,46316,22343,49659,38898,38147,38147,38147,27826,41766,46990,42516,49679,42516,42516,42516,42516,20094,31303,22657,22657,22657,30361,49698,46316,46316,46316,46316,30525,49732,38147,38147,38147,34440,35908,42516,42516,46023,49756,42516,29706,37130,22657,22657,39744,38128,46316,46316,49778,49814,38147,38147,49848,22690,22055,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,34322,43148,47105,28405,38446,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,49890,49913,49938,22448,28385,36584,34366,34779,33418,49954,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,5e4,50082,50038,50059,42516,32349,42516,20487,50078,34283,44986,50101,50114,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,50130,42394,35273,50148,34810,28721,42516,36285,32580,34304,42516,42516,42516,42516,42516,25759,42516,42516,28243,27704,22657,37534,22657,27401,50172,46316,38188,48318,29351,38147,30813,38147,40896,22382,42516,42516,42516,42516,42516,41597,42516,42516,42516,42476,42516,38368,22657,50132,22657,22657,38374,22541,46316,49557,46316,46316,44805,38147,38147,50449,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,50190,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,50209,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,50231,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,50266,42516,22306,42516,45067,50303,50340,42516,50365,50380,50394,50410,50423,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,45894,46314,50439,28325,41965,36365,42516,42516,42516,34304,42516,42516,42516,42516,25694,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,50473,42516,42516,42516,50491,22657,22657,22657,22657,30360,50513,46316,46316,46316,46316,22343,50533,38147,38147,38147,38147,27826,41766,42516,42516,29399,42516,42516,42516,42516,23255,22657,22657,50557,22657,50575,22539,46316,43245,46316,33180,30525,38147,47942,38147,38147,50611,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,48543,50631,50644,26099,42516,42516,42516,27632,50660,42516,50680,42516,42516,42516,29122,42516,21452,29118,32973,50698,44948,35273,50716,34810,28721,42516,42516,42516,50750,27264,27883,43515,42516,42516,42516,42516,42516,28243,22657,43166,22657,49088,27401,46316,30696,30175,48318,38147,38147,50786,27533,40896,50811,50827,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,51530,42516,42516,42516,38370,22657,27966,22657,22657,27206,22540,46316,36563,46316,46316,48225,30533,38147,43345,38147,38147,27826,41766,21110,42516,42516,42516,42516,42516,42516,23255,36082,22657,22657,22657,30361,22539,50847,46316,46316,46316,30525,40490,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,24903,42516,42516,27632,42516,42516,20017,42516,42516,42516,42516,20023,42516,42516,50868,36101,46314,27462,29927,45874,41719,42516,29087,42516,34304,42516,42516,42516,42516,42516,42516,42516,42872,28243,22657,22657,22657,47797,27401,46316,46316,22542,48318,38147,38147,38147,27479,40896,22382,42516,50903,42516,42516,42516,42516,42516,42516,42150,42516,42516,38368,46183,22657,41900,22657,38374,22541,50922,46316,37779,46316,44805,36603,38147,38147,40222,38147,32923,22444,42516,50475,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,50942,22657,22657,30360,50961,30499,50994,46316,46316,22343,49789,39662,51012,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,48664,23255,22657,22657,32677,22657,28304,22539,46316,46316,51045,46316,51063,38147,38147,50725,38147,44006,41769,42516,42516,50906,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,48656,42516,42516,47372,42516,31381,22657,22657,34817,46316,46316,40751,38147,38147,40469,42516,42516,51087,42516,38373,28681,28384,46316,51106,36586,34742,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,19962,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,46123,30288,30286,49299,30156,51124,22408,22410,49308,30152,46133,51161,51174,21040,42516,42516,42516,27632,42516,42516,31797,42516,42516,42516,42516,42516,42516,42516,32629,20505,20792,18990,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,30409,42516,25917,39868,39877,51215,51230,51237,29448,51253,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,23517,42516,42516,23514,32629,20505,21066,18953,21068,18866,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,36374,42516,42516,42516,42516,31102,50349,51296,51323,51307,51330,32370,51346,21040,42516,42516,42516,27632,42516,42516,51474,51382,42516,26083,42516,42516,42516,26079,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51399,25598,18486,18508,21522,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23494,42516,42516,45092,51424,51429,51429,51451,23492,51445,51467,42516,42516,42516,42516,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,51497,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,51517,20264,20301,20317,20346,20333,20349,20365,51553,20397,20422,20606,20438,20453,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,0,94506,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,365,94506,90409,94506,94506,94506,94506,94506,94506,94506,69632,73728,94506,94506,94506,94506,94506,65536,94506,12290,3,0,0,2183168,0,0,0,90409,94506,299,300,0,2134016,303,304,304,304,304,304,304,304,0,0,0,0,0,304,0,304,1,289,3,0,0,0,295,0,0,0,0,0,0,0,0,0,0,796,0,796,0,0,0,0,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,0,0,0,0,2904064,2908160,0,0,0,0,0,0,0,0,0,0,0,1685,1686,0,1688,0,0,0,0,3117056,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,448,0,0,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,559,582,559,582,559,559,582,0,0,0,2138112,0,0,0,0,0,0,0,0,0,0,0,0,0,2991,0,0,0,2772992,2805760,2830336,0,2863104,2920448,0,0,0,0,0,0,0,2805760,2920448,0,0,0,0,0,0,0,2732032,0,2179072,2179072,2179072,2179072,2424832,2433024,0,0,0,0,0,2920448,0,0,0,0,0,0,0,0,0,0,0,1702,0,1704,0,0,2179072,2830336,2179072,2179072,2863104,2179072,2179072,2179072,2179072,2920448,2179072,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2593681,2126737,2126737,2126737,2126737,0,914,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,2125824,2125824,2125824,2125824,2723840,2125824,2732032,2772992,2125824,2125824,2125824,2805760,2125824,2830336,2125824,2125824,2863104,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3117056,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2457600,2125824,2125824,2125824,2125824,2183168,0,0,0,0,0,0,0,0,0,0,661,0,661,0,0,0,2408448,0,0,2584576,0,0,0,0,2838528,0,0,2838528,0,0,0,0,0,2179072,2179072,2179072,2408448,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2625536,2179072,2179072,0,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2662400,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2801664,2813952,2125824,2125824,2801664,2813952,2125824,2838528,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,0,0,0,0,0,0,0,0,0,0,0,0,2600960,0,0,0,0,0,0,2441,0,0,0,0,0,0,0,0,0,0,2493,2494,0,0,2497,0,2768896,2777088,2781184,0,2822144,0,0,2883584,0,0,0,0,0,0,0,0,0,0,0,0,3055616,0,0,0,3080192,3100672,3104768,0,0,0,0,3186688,0,0,0,0,0,0,0,307,204800,0,0,0,0,0,0,0,0,0,111051,111051,111051,111051,111051,111051,111051,111051,1,0,0,0,0,0,2797568,0,0,0,0,0,0,0,2850816,2867200,0,0,0,0,0,441,0,0,332,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,0,0,3133440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2131,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2461696,2465792,2179072,2768896,2777088,2781184,2797568,2822144,2179072,2179072,2179072,2883584,2179072,2912256,2179072,2179072,2179072,2179072,2179072,2179072,2523136,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2600960,0,0,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,2465792,2125824,0,1142784,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,24576,988,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2523136,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2600960,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,541,1272,541,541,541,541,2125824,2125824,2125824,2641920,2125824,2125824,2125824,2125824,2125824,2125824,2719744,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2125824,2125824,2125824,2125824,2125824,299,0,0,0,299,0,300,0,0,0,2768896,2777088,2781184,2797568,2822144,2125824,2125824,2125824,2883584,2125824,2912256,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2126812,2125824,2125824,2125824,2125824,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,0,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,0,0,0,0,0,0,2510848,2514944,0,0,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,2179072,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,300,0,0,0,0,0,0,2764,0,0,0,0,0,0,0,0,0,0,2059,2060,0,2062,2063,0,0,0,0,2605056,0,0,0,0,2887680,0,2924544,0,0,0,0,0,0,0,2108,0,0,0,0,0,0,0,0,0,0,0,0,0,1177,0,0,0,0,0,0,3162112,3170304,0,0,3219456,3035136,0,0,0,0,0,3072e3,3190784,0,0,0,0,0,0,0,0,2576384,0,0,0,0,0,0,0,334,0,0,334,0,0,334,0,0,0,0,0,0,0,2387968,0,0,0,0,0,0,0,0,0,0,0,2050,0,0,0,0,3121152,3141632,0,0,0,2924544,0,2682880,0,0,0,0,0,0,3112960,2387968,2924544,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3035136,2179072,2179072,3072e3,2179072,2179072,2179072,2179072,2699264,2179072,2715648,2179072,2723840,2179072,2732032,2772992,2179072,2179072,2179072,2805760,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,0,0,0,0,0,0,541,1734,541,541,541,541,541,541,1740,541,2125824,3190784,3194880,2125824,0,0,0,0,0,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2887680,2125824,2125824,2924544,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,2125824,2125824,2125824,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,3190784,3194880,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,299,0,300,3112960,3219456,2125824,2125824,3112960,3219456,2125824,2125824,3112960,3219456,0,0,0,0,0,0,0,347,0,405,0,0,0,0,0,405,3022848,0,0,3145728,0,3203072,0,0,0,0,0,0,0,0,0,0,0,2072,0,0,0,0,0,0,0,3067904,0,0,0,0,0,0,0,0,0,0,0,0,0,3003,0,0,0,0,0,2621440,0,3182592,2899968,0,2961408,0,0,2179072,2179072,2416640,2179072,2179072,2179072,2179072,2928640,2179072,2179072,2179072,2998272,2179072,2179072,2179072,2179072,3059712,2179072,2179072,2179072,2179072,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,2125824,0,2179072,2125824,2125824,0,2179072,2125824,2125824,2985984,2985984,2985984,2985984,0,0,0,0,0,0,2490,0,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,2179072,2445312,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2551808,2179072,2179072,2179072,2179072,3178496,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2495377,2126737,2126737,2126737,2126737,2126737,3179409,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2495451,2126811,2895872,2916352,2179072,2179072,2945024,2179072,2179072,2994176,2179072,3002368,2179072,2179072,3022848,2179072,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,0,0,2125824,2125824,2416640,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3035136,2125824,2125824,3072e3,2125824,2125824,2125824,3121152,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,2125824,2125824,2445312,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2551808,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2637824,2125824,2125824,2125824,2125824,2727936,2752512,2125824,2125824,2125824,2125824,2842624,2846720,2842624,2846720,2125824,2895872,2916352,2125824,2125824,2945024,2125824,2125824,2994176,2125824,3002368,2125824,2125824,3022848,2125824,3067904,2125824,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3039232,2125824,3063808,2125824,2125824,2125824,2125824,2125824,3100672,2547712,2596864,0,0,0,0,0,0,0,0,0,0,0,0,0,3178496,2670592,0,2744320,0,0,0,0,0,2928640,0,0,0,3059712,0,2543616,2666496,0,2633728,0,0,0,0,0,0,2494464,0,0,0,0,0,0,0,0,0,2780,0,0,0,0,2785,0,0,0,0,2957312,0,0,0,0,0,0,0,0,0,0,0,0,0,3188,0,0,0,0,3211264,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2494464,2179072,2179072,2179072,2707456,2179072,2736128,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2887680,2179072,2179072,2179072,2179072,2641920,2179072,2179072,2179072,2179072,2179072,2179072,2719744,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2126737,2126737,2499473,2126737,2126737,2126737,2556817,2565009,2179072,2514944,2179072,2179072,2179072,2543616,2547712,2179072,2179072,2596864,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3039232,2179072,3063808,2179072,2179072,2179072,2179072,3100672,2125824,2125824,2125824,2125824,2125824,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,1080,1084,0,0,1088,2125824,2514944,2125824,2125824,2125824,2543616,2547712,2125824,2125824,2596864,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2928640,2125824,2125824,2125824,2998272,2125824,2125824,2125824,2125824,3059712,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3178496,2179072,2125824,2125824,2179072,2179072,2125824,2125824,2125824,2125824,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2441216,0,0,0,0,0,0,0,0,0,2932736,2965504,0,0,3076096,0,0,0,0,0,444,0,0,0,0,0,0,0,0,0,0,407,0,0,0,0,0,0,2695168,3174400,2646016,2613248,2703360,0,0,0,0,2977792,0,0,3047424,3129344,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,0,0,725,0,0,0,0,0,0,0,0,0,743,0,0,0,0,0,0,0,0,0,0,0,0,2769,0,0,0,2981888,2396160,0,3153920,0,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,541,3027,541,541,541,541,541,541,541,541,541,2584,541,541,541,0,0,0,0,0,2793472,0,0,0,0,0,2469888,2506752,2756608,0,0,2580480,0,0,0,0,0,0,2517,0,0,0,0,0,0,0,0,541,541,541,3029,541,541,541,541,541,541,0,2396160,2400256,2179072,2179072,2441216,2179072,2469888,2179072,2179072,2179072,2519040,2179072,2179072,2179072,2179072,2179072,2179072,2801664,2813952,2179072,2838528,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2453504,2179072,2473984,2482176,2179072,2179072,2179072,2179072,2588672,2179072,2613248,2646016,2179072,2179072,2695168,2756608,2179072,2179072,2179072,2932736,2179072,2179072,2179072,2179072,2179072,3117056,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2584576,2179072,2179072,2125824,2125824,2125824,2519040,2125824,2125824,2125824,2125824,2588672,2125824,2613248,2646016,2125824,2125824,2695168,2756608,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3129344,2125824,2125824,3153920,3166208,3174400,2506752,2506752,2506752,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3180,2437120,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,0,0,0,0,0,2953216,0,0,2826240,3158016,2428928,0,3018752,2764800,2572288,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,2741,0,0,0,0,0,3051520,2179072,2428928,2437120,2179072,2486272,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2654208,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2125824,2428928,2437120,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2125824,2428928,2437120,2125824,2486272,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2654208,2678784,2760704,2764800,2785280,2854912,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2179072,3051520,2125824,3051520,2125824,3051520,0,2490368,2498560,0,0,0,0,2875392,0,0,0,3180,0,0,0,0,0,0,2834432,0,3227648,2568192,2564096,0,2940928,2179072,2179072,2498560,2179072,2179072,2179072,2555904,2564096,2179072,2179072,2179072,2617344,2179072,2179072,2179072,2179072,2179072,2179072,2662400,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2125824,2125824,2498560,2125824,2125824,2125824,2555904,2564096,2125824,2555904,2564096,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2940928,2940928,0,0,0,0,0,2748416,2879488,0,0,0,0,0,0,0,0,0,2519,0,0,0,0,0,541,2940928,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,375,0,0,0,0,0,0,0,360,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2396160,2400256,2125824,2125824,2441216,2125824,2469888,2125824,2125824,2125824,2519040,2125824,2125824,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,2629632,2125824,2125824,2650112,2125824,2125824,2125824,2707456,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2125824,2125824,2498560,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,0,0,0,0,0,0,2739,0,0,0,0,0,0,0,2743,0,0,0,2592768,0,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2592768,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2397073,2401169,2126737,2126737,2442129,2126737,2470801,2125824,2125824,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,3031040,2125824,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,0,2179072,2125824,2125824,2457600,2179072,2179072,2179072,2179072,2457600,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,0,1727,0,0,1728,0,3031040,2125824,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2125824,2126738,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,0,0,0,0,0,693,0,0,0,0,0,0,365,365,365,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3020,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2404352,2125824,2125824,2125824,2125824,3026944,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2125824,2658304,2973696,2125824,2125824,2658304,2973696,2125824,0,2711552,256e4,2179072,256e4,2125824,256e4,2125824,0,2179072,2179072,2531328,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2605056,2179072,2629632,2179072,2179072,2650112,0,0,2809856,0,0,0,0,0,0,0,0,0,0,3088384,0,0,0,0,0,442,0,0,454,470,470,470,470,470,470,470,470,470,470,480,470,470,470,470,470,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,459,111051,459,459,459,459,459,459,459,459,459,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,111051,111051,111051,459,111051,111051,111051,111051,111051,0,0,0,0,0,0,0,0,0,2795,0,0,0,0,0,0,12290,3,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,1060,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,1060,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,662,0,662,0,0,0,0,303,118784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2434,0,303,303,303,303,303,303,303,0,0,0,0,0,303,0,303,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2155,0,12290,3,0,0,2183168,0,0,0,0,0,33403,300,0,2134016,49791,304,2105632,12290,3,0,0,294,0,0,0,0,294,0,0,0,0,0,0,0,2124,0,0,0,0,0,0,0,0,0,788,814,0,814,809,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,0,122880,0,122880,122880,122880,0,0,0,0,0,122880,0,0,122880,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,0,0,0,0,0,3002,0,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,122880,0,0,0,0,0,0,0,0,0,0,712,0,0,0,716,0,0,0,147456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2459,0,1092,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,0,1823,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,1919,2125824,2125824,2125824,0,0,0,131072,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,740,407,0,0,0,0,0,0,0,0,0,0,1158,0,0,0,0,0,0,131072,0,0,131072,131072,0,0,0,0,0,0,0,131072,0,0,131072,0,0,131072,0,0,0,0,135168,135168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2756,0,0,0,0,135168,0,0,135168,0,0,0,0,0,0,0,0,0,0,735,0,797,0,0,0,0,0,0,0,135168,0,135168,135168,135168,135168,135168,135168,0,135168,135168,135168,135168,135168,135168,135168,0,0,0,0,0,135168,0,135168,1,12290,3,0,0,2183168,0,0,0,0,0,636,637,0,2134016,640,641,0,1361,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,987,2125824,2125824,2125824,2125824,0,304,139264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225709,0,12290,3,0,0,2183168,0,0,0,0,0,299,33406,0,2134016,303,49794,0,61440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3178,0,304,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,757,0,0,0,0,762,301,301,301,143661,371,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,143661,301,301,143661,301,301,301,143731,301,301,301,143731,69632,73728,301,301,143661,301,301,65536,301,301,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,143661,301,301,301,301,301,301,301,301,301,366,301,0,143661,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,301,143661,301,143661,143661,143661,143661,143661,143731,143661,143731,143731,143731,143731,143731,143731,143731,143661,143661,143661,143661,143661,143661,143661,143661,1,301,143661,301,143661,143661,143661,143661,143661,143661,301,0,301,0,301,301,301,301,301,301,301,301,301,143661,301,143661,143661,143661,143661,301,0,0,0,3117056,0,0,0,0,0,0,0,2200252,2200252,0,0,0,0,0,0,662,0,0,0,0,0,541,541,541,541,541,541,541,541,2168,541,541,541,0,0,0,0,0,155648,155648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325,0,0,0,0,155648,155648,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,155648,0,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,0,155648,0,155648,0,0,0,0,0,155648,0,0,0,0,0,155648,155648,0,155648,155648,0,12290,3,0,0,2183168,126976,0,0,0,0,299,300,0,2134016,303,304,0,0,0,3117056,0,0,0,0,0,0,0,365,0,0,0,0,0,0,0,3563,0,541,541,541,541,541,541,541,541,541,3209,541,541,541,541,541,159744,159744,159744,159744,0,0,159744,0,0,0,0,0,0,0,0,159744,0,0,0,0,0,0,0,159744,159744,159744,163840,159744,159744,159744,159744,159744,0,0,0,0,0,0,0,0,0,2805,0,541,541,541,541,541,0,25162,0,0,0,159744,0,0,0,25162,25162,25162,159744,25162,25162,25162,25162,25162,25162,25162,25162,159744,159744,159744,159744,25162,159744,25162,1,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,1,167936,167936,167936,167936,0,0,167936,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,167936,167936,0,0,0,0,0,0,0,0,0,2976,0,0,0,0,0,0,0,0,0,2138112,1183,0,0,0,0,0,0,0,0,0,0,0,0,3168,0,0,0,0,0,0,0,0,172032,0,172032,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,348,172032,172032,0,0,172032,0,0,172032,172032,0,172032,0,0,0,0,172032,172032,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,2777,0,0,0,0,0,0,2784,0,0,0,0,0,0,2986,2987,0,2988,0,2990,0,0,0,0,0,0,0,69632,73728,0,135168,135168,0,0,65536,135168,172032,0,172032,172032,0,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,0,0,0,0,0,0,0,0,0,3014,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,1,176128,176128,176128,176128,0,0,176128,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,0,0,0,0,0,0,0,0,0,3175,0,0,0,0,0,0,0,3,78115,78115,293,0,634,0,0,0,299,300,0,2134016,303,304,1164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,361,541,541,1308,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,2242,0,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,1203,541,587,563,541,541,541,541,541,563,563,563,563,3070,563,563,563,563,3074,563,563,587,587,587,587,587,1079,0,0,0,0,0,0,0,0,0,0,1102,0,0,0,0,0,0,0,229376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,0,1691,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,563,563,587,587,587,587,0,0,0,0,0,0,0,0,0,0,541,541,541,541,3569,541,541,0,0,563,563,563,563,563,563,563,2251,563,563,563,563,563,563,587,3109,587,587,587,587,587,587,587,587,2407,587,587,587,587,587,2412,2413,563,563,2288,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3541,587,587,587,2375,587,587,587,587,587,587,587,587,587,587,587,587,587,1497,587,587,0,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1439,0,3007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3317,541,541,541,541,3038,541,541,541,541,541,541,541,541,541,541,541,541,1300,541,541,541,563,563,563,3078,563,563,563,563,563,563,563,563,563,563,563,563,1401,563,563,563,587,587,587,587,3120,587,587,587,587,587,587,587,587,587,587,587,1042,587,587,587,587,0,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155648,3214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1359,563,563,563,587,3259,587,587,587,3262,587,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,0,3609,541,541,541,587,587,3270,587,587,587,587,587,587,587,587,587,587,587,587,587,1498,587,587,541,541,541,3330,3331,541,541,541,541,541,541,541,541,563,563,563,563,3581,563,563,563,563,563,3349,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,0,541,541,541,3406,541,541,541,541,563,563,563,563,563,563,3415,563,0,587,587,587,587,587,291,1079,0,0,0,0,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,1,587,3431,587,587,587,587,587,587,3437,587,587,587,3441,587,541,563,563,3473,563,563,563,563,3478,563,563,563,563,3483,563,563,563,563,977,563,563,563,563,0,587,587,587,587,587,587,1931,587,587,587,587,587,587,587,587,587,2678,587,587,587,2681,587,587,0,0,3456,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2586,0,541,3471,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2327,563,3487,587,587,587,587,587,587,587,587,587,587,587,587,587,587,0,0,563,563,587,587,587,587,0,0,541,541,563,563,587,587,0,541,541,541,3205,541,541,541,541,541,541,541,3210,541,541,541,541,541,541,2816,541,541,2820,541,541,541,541,541,541,541,541,3041,541,541,541,541,541,541,541,541,2556,541,541,541,541,541,541,541,541,2233,541,541,541,541,541,0,0,563,587,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,0,3510,0,0,0,0,541,541,541,541,541,2165,541,541,541,541,541,541,541,541,3616,563,563,563,563,563,563,563,2265,563,563,563,563,2270,563,563,563,184932,184932,184932,184932,184932,184932,184932,0,0,0,0,0,184932,0,184932,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,301,301,0,0,301,301,143661,301,301,301,301,301,301,301,301,301,301,301,143731,301,301,301,301,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,2134016,303,304,587,0,0,188416,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,2731,0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,249856,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,192972,0,1,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,0,192972,0,0,0,0,0,0,0,0,0,0,1145,365,365,0,0,1148,192972,192972,192972,0,192972,192972,192972,192972,192972,0,0,0,0,0,0,0,0,0,3304,0,3180,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,407,407,407,407,407,407,407,0,0,0,0,0,407,0,407,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,118784,299,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,302,303,304,587,0,0,740,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,2729,0,0,0,0,0,0,740,1184,0,0,0,0,1188,0,0,0,0,0,0,0,378,0,381,0,0,0,381,0,0,563,587,587,587,587,587,1079,1559,0,0,0,1565,0,0,0,1571,2034,0,0,0,0,1577,2036,0,0,0,0,0,0,0,397,0,0,0,0,0,397,0,0,0,0,0,1577,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,0,0,0,1188,1669,0,0,0,0,0,0,0,0,0,0,0,0,3177,0,0,0,563,563,587,587,587,587,1559,2030,0,0,0,0,1565,2032,0,0,0,0,0,0,2997,0,0,0,0,0,0,0,0,0,0,1586,1587,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,0,0,0,0,106496,0,0,0,0,0,0,2034,0,2036,0,0,0,0,0,0,0,0,0,0,0,0,0,1150976,0,0,0,0,0,563,563,563,563,2325,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,2343,0,307,0,307,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,3011,0,0,0,0,3016,3017,0,3019,0,0,0,0,0,204800,204800,0,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,205107,204800,204800,205106,205107,204800,205106,205106,204800,204800,0,0,0,0,0,0,0,0,0,122880,0,122880,122880,122880,122880,122880,12290,3,0,0,2183801,0,0,0,0,0,299,300,151552,2134016,303,304,0,212992,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,151552,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,0,3117056,0,0,0,0,0,0,0,0,2200253,0,0,0,0,0,0,678,0,0,0,0,0,0,0,0,0,0,2977,0,0,0,0,0,0,914,2126737,2126737,2126737,2126737,2126737,2425745,2433937,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3138449,2126811,2126811,2499547,2126811,2126811,2126737,2724753,2126737,2732945,2773905,2126737,2126737,2126737,2806673,2126737,2831249,2126737,2126737,2864017,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2593755,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3036123,2126811,2126811,3072987,2126811,2126811,2126811,3122139,2126811,2126737,2126737,2921361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3117969,2126737,0,2126811,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,1190,0,0,0,0,0,2126811,2425819,2434011,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3126235,2126811,2126811,2126811,2126811,2126811,2626523,2126811,2126811,2126811,2126811,2126811,2126811,2700251,2126811,2716635,2126811,2724827,2126811,2733019,2773979,2126811,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,3125248,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2126811,2126811,2806747,2126811,2831323,2126811,2126811,2864091,2126811,2126811,2126811,2126811,2921435,2126811,2126811,2126811,0,2179072,2126811,2126737,2457600,2179072,2179072,2179072,2179072,2458513,2126737,2126737,2126737,2126737,2126737,2524049,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2601873,2126737,2126737,2458587,2126811,2126811,2126811,2126811,2183168,0,0,0,0,0,0,0,0,0,0,1206,0,1208,0,0,0,0,2126737,2126737,2126737,2409361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,2126811,2126811,2126811,2409435,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2839515,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3118043,2126811,2126811,2126811,2126811,2126811,2126811,2126811,0,0,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2462609,2466705,2126737,2126737,2126737,2642833,2126737,2126737,2126737,2126737,2126737,2126737,2720657,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3040145,2126737,3064721,2126737,2126737,2126737,2126737,2126737,3101585,2769809,2778001,2782097,2798481,2823057,2126737,2126737,2126737,2884497,2126737,2913169,2126737,2126737,2126737,2126737,2126737,2126737,2626449,2126737,2126737,2126737,2126737,2126737,2126737,2700177,2126737,2716561,2126737,2126737,3134353,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3208081,2126737,0,0,0,0,0,0,3026,541,541,541,541,541,541,541,541,541,541,1352,541,541,541,541,541,0,0,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2462683,2466779,2126811,2126811,2126811,2126811,2126811,2929627,2126811,2126811,2126811,2999259,2126811,2126811,2126811,2126811,3060699,2126811,2126811,2126811,2126811,2454491,2126811,2474971,2483163,2126811,2126811,2126811,2126811,2126811,2126811,2532315,2126811,2126811,2126811,2446299,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2552795,2769883,2778075,2782171,2798555,2823131,2126811,2126811,2126811,2884571,2126811,2913243,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3130331,2126811,2126811,3154907,3167195,3175387,2506752,2507739,2507665,2126811,2126811,3134427,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3208155,2126811,2179072,2126811,2126811,2126811,2642907,2126811,2126811,2126811,2126811,2126811,2126811,2720731,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3040219,2126811,3064795,2126811,2126811,2126811,2126811,2126811,3101659,0,0,0,2388881,2126737,2126737,2126737,2421649,2126737,2126737,2126737,2126737,2126737,2454417,2126737,2474897,2483089,2126737,2126737,2126737,2126737,2126737,2126737,2532241,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2605969,2126737,2630545,2126737,2126737,2651025,2126737,2126737,2126737,2708369,2126737,2737041,2126737,2126737,2126737,2126737,2126737,2126737,2663313,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,988,2126811,2126811,2126811,2126811,3036049,2126737,2126737,3072913,2126737,2126737,2126737,3122065,2126737,2126737,3142545,2126737,2126737,2126737,3171217,2126737,2126737,2126737,2888593,2126737,2126737,2925457,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,986,2126811,2126811,2126811,2126811,2126811,2126811,2126737,3191697,3195793,2126737,0,0,0,0,0,0,2388955,2126811,2126811,2126811,2421723,2126811,2126811,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2126811,2737115,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2888667,2126811,2126811,2925531,2126811,2126811,2126811,2126811,2126811,2585563,2126811,2126811,2126811,2126811,2126811,2618331,2126811,2126811,2126811,2126811,2126811,2126811,2606043,2126811,2630619,2126811,2126811,2651099,2126811,2126811,2126811,2708443,2126811,3142619,2126811,2126811,2126811,3171291,2126811,2126811,3191771,3195867,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2637824,2179072,2179072,2179072,2179072,2727936,2752512,2179072,2179072,2179072,2842624,2846720,2179072,3112960,3219456,2126737,2126737,3113873,3220369,2126811,2126811,3113947,3220443,0,0,0,0,0,0,0,415,415,0,0,0,0,0,415,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2126737,2126737,2417553,2126737,2126737,2126737,2126737,2929553,2126737,2126737,2126737,2999185,2126737,2126737,2126737,2126737,3060625,2126737,2126737,2126737,2126737,2933649,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3130257,2126737,2126737,2126737,2519953,2126737,2126737,2126737,2126737,2589585,2126737,2614161,2646929,2126737,2126737,2696081,2757521,2126737,2446225,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2552721,2126737,2126737,2126737,2638737,2126737,2126737,2126737,2126737,2728849,2753425,2126737,2126737,2126737,2126737,2843537,2847633,2126737,2896785,2917265,2126737,2126737,2945937,2126737,2126737,2995089,2126737,3003281,2126737,2126737,3023761,2126737,3068817,3085201,2126737,3097489,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3224465,0,0,2126811,2126811,2417627,2843611,2847707,2126811,2896859,2917339,2126811,2126811,2946011,2126811,2126811,2995163,2126811,3003355,2126811,2126811,3023835,2126811,3068891,3085275,2126811,3097563,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3224539,2179072,2126811,2126737,2126737,2126737,3031953,2126737,2126811,2450395,2126811,2536411,2126811,2610139,2126811,2859995,2126811,2126811,2126811,2126811,2126811,2524123,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2601947,2126811,2515857,2126737,2126737,2126737,2544529,2548625,2126737,2126737,2597777,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2585489,2126737,2126737,2126737,2126737,2126737,2618257,2126811,2515931,2126811,2126811,2126811,2544603,2548699,2126811,2126811,2597851,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2655195,2679771,2761691,2765787,2786267,2855899,2970587,2126811,3007451,3154833,3167121,3175313,2397147,2401243,2126811,2126811,2442203,2126811,2470875,2126811,2126811,2126811,2520027,2126811,2126811,2126811,2126811,2126811,2638811,2126811,2126811,2126811,2126811,2728923,2753499,2126811,2126811,2126811,2126811,2126811,2126811,3179483,2179072,2126811,2126737,2179072,2179072,2126737,2126737,2126811,2126811,0,0,0,0,0,0,2510848,2514944,0,0,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2126737,2429841,2438033,2126737,2487185,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2655121,2679697,2761617,2765713,2786193,2855825,2970513,2126737,3007377,2126737,3019665,2126737,2126737,2126737,2126737,3150737,2126811,2429915,2438107,2126811,2487259,2126811,2126811,2589659,2126811,2614235,2647003,2126811,2126811,2696155,2757595,2126811,2126811,2126811,2126811,2933723,2126811,2126811,2663387,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2802651,2814939,2126811,3019739,2126811,2126811,2126811,2126811,3150811,2179072,3051520,2126737,3052433,2126811,3052507,0,2490368,2498560,2126811,2556891,2565083,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3138523,2940928,2941841,2941915,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,647,0,0,0,0,0,0,0,0,0,2467,0,0,2470,0,0,0,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2126737,2126737,2126811,2126811,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2503569,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3011473,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,0,2112,0,0,0,0,2503643,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3011547,2126811,2126811,2126811,0,0,0,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2126737,2450321,2126737,2536337,2126737,2610065,2126737,2859921,3032027,2126811,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2802577,2814865,2126737,2839441,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3126161,2126737,2528145,2126737,2126737,2126737,2126737,2126737,3093393,2126811,2528219,2126811,2126811,2126811,2126811,2126811,3093467,0,0,0,0,0,782,0,0,0,0,0,0,541,843,541,541,541,541,541,1796,541,541,541,541,541,541,541,541,541,541,541,2822,541,541,541,541,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2405265,2126737,2126737,2126737,2126737,3027857,2405339,2126811,2126811,2126811,2126811,3027931,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2126737,2659217,2974609,2126737,2126811,2659291,2974683,2126811,0,2711552,256e4,2179072,2560913,2126737,2560987,2126811,0,2179072,2179072,3133440,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3207168,2179072,0,0,0,0,0,0,2464,0,0,0,0,0,0,0,0,0,324,398,0,0,0,324,0,2126737,2126811,0,2179072,2126737,2126811,0,2179072,2126737,2126811,2985984,2985984,2986897,2986971,0,0,0,0,0,0,3164,0,0,3167,0,0,0,0,0,0,0,1135,0,0,0,0,0,0,0,0,0,824,0,0,0,0,0,0,0,221184,221184,0,0,0,0,0,0,0,0,0,221184,221184,0,0,221184,221184,221184,0,0,0,0,0,0,0,221184,0,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,0,0,0,0,0,0,0,0,0,0,221184,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,139264,300,0,303,0,0,0,303,0,304,0,0,0,304,0,0,0,304,69632,139682,0,0,0,0,0,65536,0,0,0,0,98304,0,0,0,53248,0,0,0,0,0,2662400,0,2813952,0,0,3133440,0,98304,0,0,0,0,0,0,0,0,0,0,0,0,111051,0,0,0,0,303,0,304,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,163840,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,914,0,0,0,0,0,0,3172,3173,0,0,0,0,0,0,0,0,0,665,0,0,668,0,0,0,0,914,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2482176,2125824,2125824,2125824,2125824,2125824,2125824,2531328,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,3190784,3194880,2125824,988,0,0,0,988,0,2387968,2125824,2125824,2125824,2420736,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,299,0,0,0,303,0,0,0,303,119198,73728,0,0,0,0,0,65536,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,914,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2625536,2125824,2125824,2125824,2125824,2125824,2125824,2699264,2125824,2715648,2125824,2723840,2125824,2732032,2772992,2125824,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,988,0,2125824,2125824,2416640,225890,225890,225890,225890,225890,225890,225890,225741,225741,225741,225741,225741,225906,225741,225906,1,12290,3,0,0,0,0,0,0,0,90409,90409,90409,90409,0,94506,94506,90409,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,1,2125824,237568,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,0,0,0,0,0,0,0,0,0,217088,0,0,0,0,0,0,0,0,0,0,0,0,0,304,0,0,2125824,241664,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1236,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,0,0,0,0,0,0,0,12290,0,0,0,2183168,0,0,270336,0,0,299,300,0,2134016,303,304,200704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,180224,0,0,0,0,0,0,0,663,0,0,666,667,0,0,0,0,2940928,0,0,0,0,0,2748416,2879488,0,20480,0,0,0,0,0,0,0,679,0,0,0,0,0,0,0,0,0,1129,0,0,0,0,0,0,1,12290,2113826,0,0,0,0,0,0,296,0,0,0,296,0,0,0,0,0,0,3182,0,0,0,0,3187,0,0,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,1,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,0,0,2662400,0,2813952,12290,2113826,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,245760,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2584576,2125824,2125824,2125824,2125824,2125824,2617344,2125824,2125824,2125824,2125824,2125824,245760,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1245,0,0,0,0,0,274432,274432,274432,274432,274432,274432,274432,0,0,0,0,0,274432,0,274432,1,12290,3,0,0,0,0,0,253952,0,0,0,253952,0,0,0,0,0,0,0,0,0,0,0,0,0,1155072,0,0,0,0,0,0,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,0,303,304,563,563,587,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,3196,0,0,0,0,0,0,0,0,0,0,3186,0,0,0,3189,0,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,0,0,695,0,0,0,0,365,365,365,0,0,2485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,1678,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,2114,0,0,0,0,0,0,3395,541,541,541,541,3399,541,541,541,541,541,541,1346,541,541,541,541,541,541,1356,541,541,12290,3,78115,78456,293,0,0,0,0,0,299,300,0,0,303,304,541,588,564,564,564,564,564,564,564,588,588,588,541,588,588,588,588,588,588,588,588,564,564,541,564,588,564,588,1,0,0,0,0,2775,0,0,0,0,0,0,0,0,0,0,0,0,163840,0,0,0,1,12290,3,78116,293,0,0,0,0,0,0,0,0,0,0,0,0,167936,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,1,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,0,0,282624,0,0,0,0,0,0,0,0,0,0,1600,1601,0,0,0,0,282624,282624,282624,0,282624,282624,282624,282624,282624,0,0,0,0,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,1,2981888,2396160,0,3153920,3180,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,679,751,0,0,0,0,0,0,0,0,0,1144,0,365,365,0,1147,0,0,0,0,0,286720,286720,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,0,0,0,0,0,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3305,2437120,0,0,0,0,0,0,680,0,0,0,0,0,0,0,0,0,300,0,0,0,0,0,0,0,0,0,0,2875392,0,0,0,3386,0,0,0,0,0,0,2834432,2940928,0,0,0,0,0,2748416,2879488,0,3386,0,0,0,0,0,0,0,709,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,309,0,0,0,0,0,308,0,308,309,0,308,308,0,0,0,308,308,309,309,0,0,0,0,0,0,308,408,309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,781,0,0,0,309,413,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,783,0,802,0,0,0,0,541,847,541,541,541,541,541,2830,2831,541,541,541,541,2834,541,541,541,541,541,541,541,3521,541,3523,541,541,3525,541,563,563,0,0,432,0,0,0,0,308,449,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,489,489,463,489,489,489,489,489,489,489,514,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,534,489,489,489,489,489,542,565,542,565,542,542,565,542,589,565,565,565,565,565,565,565,589,589,589,542,589,589,589,589,589,589,589,589,565,565,542,565,589,565,589,1,0,0,674,0,0,0,0,0,0,0,0,0,0,0,0,0,323,324,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,0,0,742,0,0,0,0,742,0,748,0,0,0,736,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,0,0,792,663,841,0,0,0,0,541,845,541,541,541,541,541,2217,541,541,541,541,541,541,541,541,541,541,541,1802,541,541,541,541,0,0,0,0,645,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,0,0,765,0,0,768,0,0,0,0,774,0,0,778,0,0,0,0,0,0,3562,0,3564,541,541,541,541,541,541,541,541,541,3219,541,541,541,541,541,3224,0,0,785,0,0,0,0,789,0,0,0,0,0,0,0,793,0,0,736,0,793,0,0,0,0,648,0,0,0,0,0,0,0,807,808,0,0,0,0,808,0,0,807,0,0,0,0,0,755,0,0,816,817,0,0,0,793,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,0,0,0,0,0,648,0,0,0,0,0,834,789,0,0,0,0,0,0,0,2139,0,0,0,0,0,0,0,0,0,1712,0,0,0,0,0,0,838,839,789,789,0,0,0,0,789,736,789,0,541,541,849,853,563,964,563,967,563,563,981,563,563,0,587,587,587,996,1e3,587,0,0,0,0,0,0,0,0,3180,3448,0,0,0,0,0,0,0,2465,0,0,0,0,0,0,0,0,0,2152,0,0,0,0,0,0,1093,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1135,0,0,0,0,1152,0,0,0,0,1157,0,0,0,0,0,0,0,822,0,816,0,664,0,0,0,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,221184,0,0,0,1253,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,341,541,541,1342,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2239,0,0,0,0,0,1596,0,0,0,0,0,0,0,0,0,0,0,0,233472,0,0,0,0,0,0,1640,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,357,1653,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1163,0,0,0,0,1669,0,0,0,0,0,0,1673,0,0,0,0,0,0,0,69632,73728,0,0,0,346,345,65536,344,0,1729,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,3327,541,541,1742,541,541,541,541,541,541,541,541,541,1755,541,541,541,541,541,541,541,2193,541,541,541,541,541,541,541,541,541,2557,541,541,541,541,541,541,541,541,541,1794,541,541,1797,541,541,541,541,541,541,541,541,541,541,1314,541,541,541,1318,541,541,1809,541,541,541,541,541,1814,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2328,1824,563,563,563,563,563,1831,563,563,563,563,563,1837,563,563,563,563,563,3093,563,563,563,563,563,563,563,563,563,3102,563,563,1892,563,563,563,563,563,563,563,563,563,563,1905,563,563,563,563,978,563,563,563,563,0,587,587,587,587,587,587,1997,587,587,587,587,587,587,587,587,587,1531,587,587,587,587,587,587,563,563,563,1910,563,563,563,563,563,563,563,26028,1920,587,587,587,0,1285,1469,1377,541,541,1339,541,541,563,563,1431,563,587,587,1927,587,587,587,587,587,1933,587,587,587,587,587,587,587,1529,587,587,587,587,587,587,587,587,1932,587,587,587,587,587,587,587,587,1494,587,587,587,587,587,587,587,587,587,1946,587,587,587,587,587,587,587,587,587,587,587,587,587,1513,587,587,563,563,2026,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,131072,0,131072,131072,131072,131072,0,131072,131072,131072,131072,131072,131072,131072,0,0,0,0,0,131072,0,131072,1,0,0,0,2042,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,2141,0,0,2148,0,0,0,0,0,0,0,0,0,0,0,0,237568,0,0,0,0,0,0,2140,541,541,541,541,541,541,541,541,541,541,541,2170,541,541,2173,541,541,541,541,541,541,2181,541,541,541,541,541,541,541,541,2841,541,541,541,541,541,541,541,541,1294,541,541,541,541,541,541,541,541,1327,541,541,541,1334,1336,541,541,541,541,2214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2535,541,563,2258,563,563,563,563,563,563,2266,563,563,563,563,563,563,563,983,563,0,587,587,587,587,1001,587,563,2300,563,563,563,563,563,563,563,563,563,563,563,563,563,563,587,587,587,2345,587,587,587,587,587,587,2353,587,587,587,587,587,587,587,1950,587,587,587,587,587,587,587,587,1468,587,587,587,587,587,587,587,587,2387,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2414,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,2034,0,2036,0,0,2428,0,0,0,0,0,0,0,0,0,0,1713,0,0,0,0,0,2436,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1179,2449,0,0,0,0,0,2453,0,0,0,0,0,0,0,0,0,0,1726,0,0,0,0,0,0,0,0,0,2477,0,0,0,0,0,0,0,0,0,0,0,0,245760,0,0,0,0,0,2501,0,0,0,0,0,0,0,0,0,0,0,0,0,386,338,0,541,541,541,2539,541,541,541,541,541,541,541,541,541,541,541,541,541,2198,541,541,0,0,0,563,563,563,563,563,563,563,563,563,2595,563,563,563,563,563,3238,563,563,563,563,563,563,563,563,563,563,2880,563,563,563,563,563,587,587,587,2661,587,587,587,587,587,587,587,587,587,587,587,2669,587,587,587,587,2714,587,587,587,587,587,587,541,587,563,541,541,2417,2418,563,563,2421,2422,587,587,2425,2426,0,1563,0,0,0,2735,0,0,0,0,0,0,2740,0,0,0,0,0,0,0,1102,1101,0,0,0,0,0,0,0,0,1724,0,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,0,0,1187,0,0,0,0,0,0,1104,0,0,0,0,0,2763,0,0,0,0,0,0,0,0,0,0,0,2431,2432,0,0,0,0,0,0,0,0,2792,2793,0,0,0,0,0,0,0,0,0,0,2049,0,0,0,0,0,541,541,541,541,2829,541,541,541,541,541,541,541,541,541,541,2836,563,563,563,563,2876,563,563,563,563,563,563,563,563,563,563,563,0,2329,587,587,587,2884,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1874,587,587,2933,587,587,587,587,587,587,587,587,587,587,587,587,587,1536,587,587,2955,541,2957,563,2959,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,587,3442,0,3444,0,0,0,0,0,3180,0,0,0,0,3452,0,0,0,0,0,796,0,0,0,0,0,0,0,0,0,0,0,0,796,0,0,0,0,3454,0,541,3457,541,3459,541,541,541,541,541,541,541,541,541,541,541,541,2585,0,0,0,563,587,3488,587,3490,587,587,587,587,587,587,587,587,587,587,587,1047,587,587,587,587,587,0,0,0,3505,0,0,0,0,0,0,0,3512,0,0,541,541,541,541,541,541,3462,541,541,541,541,541,541,541,541,541,3334,541,541,541,563,563,563,541,541,541,3517,541,541,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3530,563,563,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3544,587,587,587,587,587,587,587,587,587,587,587,0,0,0,0,541,541,541,541,563,563,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,669,0,0,0,0,0,421,0,0,0,0,450,0,0,0,0,0,0,0,0,304,304,304,304,0,304,304,304,0,0,0,0,450,450,421,450,450,450,450,450,450,450,450,450,450,450,450,450,450,533,450,533,533,533,450,533,533,533,533,450,543,566,543,566,543,543,566,543,590,566,566,566,566,566,566,566,590,590,590,543,590,590,590,590,590,590,590,590,566,566,616,621,590,621,627,1,960,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,3136,587,587,3138,587,587,587,587,587,0,0,0,0,1657,0,0,0,0,0,0,0,0,0,0,0,0,254414,0,0,0,1676,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1211,541,541,541,1810,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1378,0,0,2486,0,0,0,0,0,0,0,0,0,0,0,0,0,694,0,0,541,541,541,541,2528,541,541,541,541,2532,541,541,541,541,541,541,541,541,3218,541,541,541,541,541,541,541,541,2583,541,541,541,541,0,2586,0,0,0,0,563,563,563,563,563,563,2592,563,563,563,563,2596,563,0,587,587,587,587,587,78115,1079,0,0,0,0,0,0,0,0,0,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,0,0,0,0,0,0,0,2658,587,587,587,587,2662,587,587,587,587,587,587,587,587,587,587,2665,587,587,587,587,587,0,0,0,313,314,315,316,317,318,319,320,321,322,0,0,0,0,0,0,694,0,0,0,0,0,365,365,365,0,0,313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2142208,0,0,316,0,0,0,0,0,0,0,0,0,0,0,0,0,730,0,0,0,423,431,433,422,431,0,313,431,451,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,485,490,490,501,490,490,490,490,490,490,490,490,516,516,529,529,530,530,530,530,530,530,530,530,530,530,530,516,530,530,530,530,530,544,567,544,567,544,544,567,544,591,567,567,567,567,567,567,567,591,591,591,613,591,591,591,591,591,591,591,614,615,615,613,615,614,615,614,1,734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1238,0,0,0,0,767,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,702,0,0,0,0,0,702,0,0,0,541,541,541,541,541,541,3322,541,541,541,541,541,541,541,541,1816,541,541,541,541,541,541,1360,563,563,563,968,563,563,563,563,563,0,587,587,587,587,587,587,587,3150,3151,3152,541,541,563,563,587,587,0,0,2963,0,0,0,0,0,0,0,0,3180,0,0,3389,0,0,0,0,0,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,308,309,0,1150,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,1119,0,0,1212,0,0,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,0,797,0,0,0,0,0,0,0,0,0,0,0,0,797,0,1360,914,563,563,1364,563,563,1368,563,563,563,563,563,563,563,563,985,0,587,587,587,587,587,587,1382,563,1387,563,563,1391,563,563,1394,563,563,563,563,563,563,563,984,563,0,587,587,587,587,587,1004,587,1460,587,587,587,587,587,587,587,587,1474,587,1479,587,587,1483,587,587,1486,587,587,587,587,587,587,587,587,587,587,587,587,587,1939,587,587,0,1692,0,1694,0,0,0,0,0,0,1701,0,0,0,0,0,0,0,2442,0,0,0,0,0,0,0,0,0,1173,0,0,0,0,0,0,541,541,1745,541,541,541,541,541,541,541,541,541,1757,541,541,541,541,541,541,2192,541,541,2195,541,541,541,541,541,541,541,1798,541,541,541,541,541,541,1806,541,541,1792,1793,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2824,541,0,563,563,563,563,563,563,563,563,563,563,563,563,563,1840,563,0,587,587,587,587,587,78115,1079,0,0,1083,1087,0,0,1091,587,587,587,587,1948,587,587,587,587,587,587,587,587,587,587,587,1478,587,587,587,587,587,587,587,587,1961,587,587,587,587,587,587,587,587,587,587,587,1533,587,587,587,587,0,2034,0,2036,0,0,0,0,0,0,2430,0,0,0,0,0,0,0,2454,0,0,0,0,0,0,0,0,0,2429,0,0,0,0,0,0,0,0,0,2476,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,702,0,0,0,2502,2503,0,0,0,0,0,0,0,0,0,0,0,0,1147355,0,0,0,587,587,2700,587,587,587,587,587,587,587,587,587,587,587,587,587,2004,587,587,0,0,2802,0,0,0,0,0,0,0,2806,541,541,541,541,541,541,541,2204,541,541,541,541,541,541,541,541,541,2220,541,541,541,541,541,541,541,2956,563,2958,587,2960,0,0,0,0,0,2966,0,0,0,0,0,0,0,69632,73728,0,0,0,350,348,65536,0,0,0,0,2970,0,0,0,0,0,0,0,0,0,0,0,0,365,365,208896,0,3035,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1807,541,541,3050,3051,541,541,541,541,541,541,541,541,541,541,541,541,541,2223,2224,541,563,3090,563,3092,563,563,563,563,563,563,563,563,563,563,563,563,1415,563,563,563,3117,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1484,587,587,3132,587,3134,587,587,587,587,587,587,587,587,587,587,587,1937,1938,587,587,587,0,3192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309,308,541,541,541,541,3228,541,541,541,541,563,563,563,563,563,563,563,563,563,945,563,563,563,563,587,3503,0,3504,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,2810,3515,541,3516,541,541,541,3520,541,541,541,541,541,541,541,563,3528,563,3529,563,563,563,3533,563,563,563,563,563,563,563,563,587,3542,587,3543,587,587,587,3547,587,587,587,587,587,587,587,587,0,0,0,0,3673,541,541,541,3675,563,563,3676,587,587,587,3678,0,0,541,541,563,563,587,587,0,541,541,3204,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,2586,0,324,324,374,0,0,0,0,0,0,0,0,0,0,0,0,0,1133,0,0,0,0,434,374,0,439,445,0,452,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,491,491,502,491,491,491,491,491,491,491,491,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,545,568,545,568,545,545,568,545,592,568,568,568,568,568,568,568,592,592,592,545,592,592,592,592,592,592,592,592,568,568,545,568,592,568,592,1,587,587,587,1019,587,587,587,587,587,587,587,587,587,587,587,587,1052,587,587,587,1122,0,1124,1125,0,0,0,1127,1128,0,0,0,0,0,0,0,0,334,0,0,0,0,0,334,0,0,0,1166,1167,0,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,1228,0,0,0,0,1233,0,0,0,0,0,0,0,0,0,365,300,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,1244,0,1194,0,1113,0,1250,1127,0,0,0,0,0,0,0,0,0,541,541,1274,541,541,541,541,541,541,2203,541,541,541,541,541,541,541,541,541,541,1329,541,541,541,541,541,541,541,1322,541,541,1324,541,541,541,1328,541,541,541,541,541,541,541,541,3522,541,541,541,541,541,563,563,3068,563,563,563,563,563,563,563,563,2603,563,563,563,563,563,563,563,1360,914,563,563,1365,563,563,563,563,563,563,563,563,563,563,563,587,3427,587,587,3429,563,563,563,1405,563,563,563,563,563,563,563,1414,563,563,1416,563,0,587,587,587,1051,587,78115,1079,0,0,0,0,0,0,0,0,1134592,0,0,0,0,0,0,1134592,0,0,0,0,563,563,1420,563,563,563,563,563,563,563,563,563,563,563,563,563,1437,563,563,563,563,563,1444,563,563,563,563,563,26028,1360,988,587,587,1457,587,0,0,0,0,0,0,0,3447,3180,0,0,0,0,0,0,0,1237,0,0,541,541,1273,541,1276,541,0,0,0,1656,0,0,0,0,0,0,0,0,0,0,0,0,541,846,541,541,587,587,587,1993,587,587,587,587,587,587,587,587,587,587,587,587,1496,587,587,587,563,2025,587,587,587,2029,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,1134592,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,2039,0,2078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,331,0,0,0,0,2092,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,0,541,2172,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,0,541,2188,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2240,541,541,541,541,2229,541,2231,541,541,541,541,541,541,541,0,0,0,0,0,0,1146880,0,1146880,0,0,0,0,0,0,0,0,2617344,0,0,0,0,0,2789376,0,0,0,563,563,563,563,563,563,563,563,563,2253,563,563,563,563,0,0,0,0,0,0,587,2654,587,587,587,587,587,587,3135,587,587,587,587,587,587,587,587,587,1530,587,587,587,587,587,587,2257,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1889,2273,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2272,563,563,563,563,2316,563,2318,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,563,2344,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1516,2360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1517,587,587,587,587,2403,587,2405,587,587,587,587,587,587,587,541,587,0,0,0,0,0,0,0,3508,0,0,0,0,0,0,541,541,541,541,541,541,3400,541,541,541,2499,0,0,0,0,0,2504,0,0,0,0,0,0,0,0,0,0,2086,2087,0,0,0,0,541,541,2526,2527,541,541,541,541,541,541,541,541,541,541,541,541,541,2237,0,0,541,541,2566,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3046,541,0,0,0,563,563,563,2590,563,2591,563,563,563,563,563,563,563,1411,563,563,563,563,563,563,563,563,1429,563,563,563,563,563,563,563,563,1916,563,563,26028,1921,587,587,587,0,0,0,2761,0,0,0,0,0,0,0,0,0,0,0,0,674,0,0,0,541,541,2837,541,541,541,541,541,541,541,2843,541,541,541,541,541,541,541,2232,541,541,2235,2236,541,541,0,0,563,563,563,2885,563,563,563,563,563,563,563,2891,563,563,563,563,0,0,2329,0,0,0,587,587,587,587,587,587,587,587,587,587,2341,587,587,587,2920,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1519,587,587,587,587,3373,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,2968,563,587,587,587,587,587,587,3493,587,587,587,587,587,587,587,587,1034,587,587,587,587,587,587,587,326,327,328,0,0,0,0,0,0,0,0,0,0,0,0,0,1161,0,0,0,0,0,325,373,328,372,0,0,0,0,0,0,0,0,0,0,2111,0,0,0,0,0,325,0,0,372,372,402,0,328,0,0,0,0,0,0,0,0,0,365,339,293,0,0,0,0,0,0,325,0,327,0,0,0,453,466,466,466,466,466,466,466,479,466,466,466,466,466,466,466,466,466,466,466,466,492,492,466,492,492,507,509,492,492,507,492,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,535,518,518,518,518,518,546,569,546,569,546,546,569,546,593,569,569,569,569,569,569,569,593,593,593,546,593,593,593,593,593,593,593,593,569,569,546,569,593,569,593,1,0,0,658,659,0,0,0,0,0,0,0,0,0,0,670,671,0,689,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,800,0,0,0,0,0,0,0,0,0,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,731,0,0,0,0,0,0,1159168,417,417,0,0,0,0,0,417,0,0,784,0,786,0,0,0,0,0,0,0,0,0,0,0,0,759,0,0,0,0,0,798,0,803,0,806,0,0,0,0,803,806,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,0,0,0,0,806,806,803,0,0,0,0,0,0,0,786,0,798,0,815,0,0,0,0,0,802,0,0,783,0,0,0,0,802,0,0,0,0,0,0,0,802,0,0,0,0,806,0,707,0,0,823,0,0,0,0,0,823,823,826,0,0,0,786,0,0,0,0,0,835,0,0,0,0,0,0,0,2480,0,0,0,0,0,0,0,0,0,1100,0,0,0,0,0,0,0,0,0,0,784,0,0,0,835,815,835,0,541,541,850,541,541,541,541,541,3052,541,541,541,541,541,541,541,541,3060,541,541,541,541,541,3217,541,541,541,541,541,541,541,3222,541,541,541,541,541,2529,541,541,541,541,541,541,541,541,541,541,541,3043,541,541,541,541,856,541,541,869,541,541,880,541,885,541,541,893,896,901,541,909,563,563,966,969,974,563,982,563,563,0,587,587,587,997,587,1003,587,587,1016,587,587,1027,587,1032,587,587,1040,1043,1048,587,1056,587,0,0,0,0,0,0,3507,0,0,0,0,0,0,0,541,541,541,541,541,3031,541,541,541,541,0,0,0,1110,0,0,0,0,0,0,0,1117,0,0,0,0,0,0,0,69632,73728,0,0,0,421,0,65536,0,0,1137,1138,0,0,0,0,1142,0,0,0,365,365,0,0,0,0,0,0,769,0,0,0,775,776,0,0,0,0,0,0,0,69632,73728,0,0,0,374,0,65536,0,0,1165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,515,522,0,0,1182,741,0,0,0,1134,0,0,0,0,0,0,0,0,0,367,0,0,0,0,0,0,541,541,541,1281,541,541,541,541,541,541,1296,541,541,541,1301,541,541,541,541,541,3229,541,541,541,563,563,563,563,563,563,563,941,563,563,563,563,563,563,1360,914,563,563,563,563,563,563,563,563,563,563,1373,563,563,563,563,563,3249,563,3251,563,563,563,563,563,563,563,563,1852,563,563,563,563,563,563,563,563,563,563,1388,563,563,563,1393,563,563,563,563,563,563,563,563,1451,26028,1360,988,587,587,587,587,587,1485,587,587,587,587,587,587,587,587,587,587,587,587,587,1500,1540,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,563,3477,563,563,563,563,563,563,563,563,1396,563,563,563,563,563,563,563,0,0,1607,1608,1609,0,1611,1612,0,0,0,0,1617,0,0,0,0,0,0,770,0,0,773,0,0,777,0,0,0,0,0,0,796,0,0,0,0,0,541,541,541,541,541,541,563,563,563,563,563,563,933,563,563,947,563,563,563,563,0,0,1639,0,0,1642,0,1644,0,0,0,0,0,1650,1651,0,0,0,0,0,805,0,0,692,0,0,672,0,692,0,810,0,1667,0,0,1669,0,0,0,0,1671,1672,0,0,0,0,0,0,0,2491,2492,0,0,0,0,0,0,0,0,0,2686976,2736128,0,0,2531328,2707456,0,0,0,0,0,1708,0,0,1711,0,0,0,0,0,1715,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,1138688,0,1719,1720,0,0,0,0,0,0,0,0,0,0,0,0,1711,0,0,0,1731,1585,1585,1733,541,1735,541,1736,1737,541,1739,541,541,541,541,541,1310,541,541,541,541,541,541,541,1317,541,541,541,541,541,1748,541,541,541,541,541,541,541,541,541,1759,541,1743,541,541,541,541,541,541,541,541,541,1756,541,541,541,541,541,541,541,3333,541,541,541,541,541,563,563,563,922,926,563,563,563,563,563,563,952,563,957,1760,541,541,541,541,1764,541,1766,541,541,541,541,541,541,541,541,541,889,541,541,541,541,907,541,1774,1775,1777,541,541,541,541,541,541,541,1785,1786,1787,541,541,1790,1791,541,541,541,541,541,541,541,1799,541,541,541,1803,541,541,541,541,541,541,2530,541,541,541,541,541,541,541,541,541,541,1315,541,541,541,541,1320,541,541,541,541,1811,541,541,541,541,541,541,541,541,541,1822,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1379,0,1827,563,1829,563,1830,563,1832,563,1834,563,563,563,1838,563,563,563,563,1390,563,563,563,563,563,563,563,563,563,563,563,2652,0,587,587,587,563,1859,563,1861,563,563,563,563,563,563,563,563,1869,1870,1872,563,0,587,587,1042,587,587,78115,1079,0,0,0,0,0,0,0,0,307,307,307,0,0,0,0,0,1907,563,563,563,563,563,563,563,563,563,1918,26028,0,1923,587,1925,587,1926,587,1928,587,1930,587,587,587,1934,587,587,587,587,587,587,587,3366,587,587,587,587,3367,3368,587,587,587,587,587,1947,587,587,587,587,1951,587,587,587,587,1955,587,1957,587,587,1976,1977,1978,587,587,1981,1982,587,587,587,587,587,587,587,1999,2e3,587,587,587,587,587,587,587,2015,2016,2017,541,2019,541,541,563,2023,1990,587,587,587,1994,587,587,587,587,587,587,587,2003,587,587,587,0,1288,1472,1380,541,541,541,541,541,563,563,563,563,3475,563,563,563,563,563,563,563,563,563,563,2267,563,563,563,563,563,563,2024,563,1982,587,2028,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,746,0,0,0,0,0,2043,0,0,2046,2047,0,0,0,2051,0,0,0,0,0,0,800,0,0,0,0,0,0,0,800,0,0,0,0,541,541,541,541,2090,0,0,0,0,2094,0,0,0,0,0,0,0,0,0,0,0,2456,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,2113,0,0,2116,0,0,2119,0,0,0,0,0,0,2126,0,2128,0,0,0,0,0,0,0,69632,73728,0,370,370,0,0,65536,370,0,0,0,0,2137,0,0,0,0,0,0,0,0,0,0,0,0,1159168,0,0,0,0,2047,0,2147,0,0,0,0,0,0,0,0,0,0,0,0,1103,1104,1105,1106,0,2158,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,3329,541,541,541,2174,541,2176,541,541,541,541,541,541,2184,541,2186,541,541,541,541,541,3332,541,541,541,541,541,541,541,563,563,563,3069,563,563,563,563,563,563,563,2212,541,541,541,541,541,541,2219,541,541,541,541,541,541,541,541,541,1312,541,541,541,541,541,541,563,563,2259,563,2261,563,563,563,563,563,563,2269,563,2271,563,563,563,563,1422,563,563,563,563,563,563,563,563,563,563,1438,587,587,2346,587,2348,587,587,587,587,587,587,2356,587,2358,587,587,0,0,0,3634,0,3636,541,541,541,541,541,541,541,563,563,921,563,563,563,563,940,944,950,563,955,563,563,2261,541,2416,541,541,563,2420,563,563,587,2424,587,587,2030,0,2032,0,0,0,2452,0,0,0,0,0,0,0,0,0,0,0,0,1132,0,0,0,0,0,2461,0,0,0,0,0,2466,0,2468,2469,0,0,0,0,0,0,0,69632,73728,0,420,420,0,0,65536,420,0,0,0,0,2488,0,0,0,0,0,0,0,0,0,0,0,0,2179072,2179072,2179072,2179072,0,0,0,0,2516,2468,0,0,0,0,0,2521,0,0,0,541,541,541,541,541,3321,541,541,541,3325,541,541,541,541,541,541,1749,541,541,541,541,541,541,541,541,541,541,2558,541,541,541,541,541,2563,541,541,541,2568,541,541,541,541,541,541,541,2575,541,541,541,541,541,541,2542,541,2544,541,541,541,541,541,541,541,541,563,3411,563,563,3413,563,563,563,541,541,541,541,2580,541,541,541,541,541,541,541,541,0,2586,0,0,0,0,0,812,0,809,792,0,0,814,0,667,0,788,0,0,0,563,563,563,563,563,563,563,563,2594,563,563,563,563,0,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,2342,587,563,2624,563,563,563,563,2628,563,563,563,2633,563,563,563,563,563,563,2629,563,563,563,563,563,563,2636,563,563,563,563,2640,563,563,563,563,563,563,563,563,2646,563,563,563,563,0,2652,0,0,0,0,587,587,587,2656,587,2657,587,587,2660,587,587,587,587,587,587,587,587,587,587,587,587,587,2383,587,587,587,587,2672,587,2674,587,587,587,587,587,587,587,587,587,587,587,1970,587,587,587,587,587,2699,587,587,587,587,587,587,587,2706,587,587,587,587,587,587,587,3375,541,3376,563,3377,587,0,0,0,587,587,2712,587,587,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,2800,2801,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,3402,2992,0,0,0,0,0,0,0,0,0,0,0,2992,0,0,0,0,0,0,840,0,0,0,0,0,541,541,541,541,541,541,2166,541,541,541,541,541,0,3022,0,0,0,3025,541,541,541,541,541,541,3032,541,541,541,541,541,541,2570,541,541,541,541,2574,541,541,541,541,541,541,1286,541,541,541,541,541,541,541,541,541,541,1818,541,541,541,541,1360,541,541,3036,541,541,541,541,541,541,541,3042,541,541,541,541,541,541,541,2531,541,541,541,541,541,541,541,541,541,563,3230,563,563,563,3233,563,3048,541,541,541,541,541,541,541,541,541,541,3057,3059,541,541,541,541,541,541,2582,541,541,541,541,541,541,0,2586,0,3062,541,3064,3065,541,563,563,563,563,563,563,3072,563,563,563,563,563,1425,563,563,563,563,563,563,563,563,563,563,2889,563,563,563,563,563,563,563,3076,563,563,563,563,563,563,563,3082,563,563,563,563,563,3088,563,563,3091,563,563,563,563,563,563,563,563,3098,3100,563,563,563,563,563,3342,563,563,563,563,563,563,563,563,563,563,2645,563,563,563,563,563,563,563,3104,563,3106,3107,563,587,587,587,587,587,587,3114,587,587,587,0,1544,1545,1546,541,541,1548,541,541,563,563,1552,563,587,587,3118,587,587,587,587,587,587,587,3124,587,587,587,587,587,587,1998,587,587,587,587,587,587,587,587,587,3551,587,587,3553,587,0,0,3130,587,587,3133,587,587,587,587,587,587,587,587,3140,3142,587,587,0,0,3633,0,0,0,541,541,3638,541,541,541,3642,563,587,587,3146,587,3148,3149,587,541,587,563,541,3154,563,3156,587,3158,0,0,0,0,0,3181,0,3183,0,0,0,0,0,0,0,3190,0,0,0,3193,3194,0,0,0,0,0,0,0,0,0,0,0,0,2200252,2200252,2200252,0,563,563,563,563,3237,563,563,563,563,563,563,563,563,563,563,563,1400,563,563,563,563,563,563,563,3248,563,563,563,563,563,563,563,563,3256,563,563,563,563,563,3352,563,563,563,563,587,587,587,587,587,3358,563,563,563,587,587,587,3261,587,587,587,587,587,587,587,3266,587,0,0,0,0,0,3506,0,0,3509,0,0,0,0,0,541,541,541,541,3662,541,563,563,563,563,3666,563,0,3310,0,0,3313,0,0,0,0,0,0,0,0,0,0,0,0,2200253,151552,2200253,0,587,587,587,3372,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,2967,0,0,0,0,0,0,3383,3384,0,3180,0,0,0,0,0,3392,0,0,0,0,0,1097,0,0,0,0,0,0,0,0,0,0,331,382,384,0,0,0,563,3417,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,3115,587,587,587,587,587,587,3433,587,587,587,587,587,587,587,587,587,541,563,3472,563,3474,563,563,563,563,563,563,563,563,563,563,563,563,3243,563,563,563,3470,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3485,563,563,563,563,3532,563,563,563,563,563,563,563,563,563,587,587,3110,587,587,587,587,587,587,587,587,587,587,587,3546,587,587,587,587,587,587,587,587,587,3555,3556,0,0,0,3559,0,0,0,0,0,3565,3566,3567,541,541,541,3570,541,3572,541,541,541,541,3577,3578,3579,563,563,563,3582,563,3584,563,0,587,587,1044,587,587,291,1079,0,0,1082,1086,0,0,1090,563,563,563,3589,3590,3591,3592,587,587,587,3595,587,3597,587,587,587,587,587,1464,587,587,587,1473,587,587,587,587,587,587,1949,587,587,587,587,587,587,587,587,587,2949,587,587,587,541,587,563,587,3602,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,1738,541,541,541,563,3644,563,563,563,3648,563,587,587,3650,587,587,587,3654,587,0,0,0,0,0,0,0,0,3180,0,3449,0,0,0,0,0,0,0,69632,73728,266240,0,0,0,0,65536,0,0,0,0,329,330,0,0,0,0,0,0,0,0,0,0,0,349,0,0,0,0,0,369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,686,0,0,0,0,369,0,0,0,377,379,0,0,0,0,0,0,0,0,1099,0,0,0,0,0,0,0,0,1115,0,0,0,0,0,0,0,0,0,3185,0,0,0,0,0,0,0,0,412,0,0,0,412,69632,73728,0,369,369,0,424,65536,369,0,0,0,369,424,499,503,499,499,508,499,499,499,508,499,424,424,0,330,424,0,0,424,424,0,0,0,0,0,0,0,0,1156,0,0,0,0,0,0,0,0,664,0,0,0,0,0,0,0,0,680,681,0,0,0,0,0,0,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,547,570,547,570,547,547,570,547,594,570,570,570,570,570,570,570,594,594,594,547,594,594,594,594,594,594,594,594,570,570,547,570,594,570,594,1,587,587,587,1020,587,587,587,587,587,587,587,587,587,587,587,587,1954,587,587,587,0,0,1109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1215,0,0,0,0,0,0,0,0,0,0,0,1226,541,1279,541,541,541,541,541,1291,541,541,541,541,541,541,541,541,541,1351,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,1371,563,563,563,563,563,563,2643,563,563,563,563,563,563,563,563,563,1866,563,563,563,563,563,563,1383,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2286,587,587,1992,587,587,587,587,587,587,587,587,587,587,587,587,587,2411,541,587,563,563,3677,587,587,587,0,0,541,541,563,563,587,587,0,541,3203,541,541,541,3206,541,541,541,541,541,541,541,541,541,541,1313,541,541,541,541,541,425,425,0,0,425,440,0,425,425,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,493,493,467,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,548,571,548,571,548,548,571,548,595,571,571,571,571,571,571,571,595,595,595,548,595,595,595,595,595,595,595,595,571,571,548,571,595,571,595,1,0,1213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,732,0,0,0,0,0,1695,0,0,0,0,0,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,2093,0,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,2157,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,3328,541,2201,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2200,563,2415,541,541,541,2419,563,563,563,2423,587,587,587,0,0,0,0,0,0,541,541,541,541,541,541,541,563,3067,563,563,563,563,563,563,563,563,563,3253,563,563,563,563,563,563,0,2460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,748,0,0,0,0,0,2791,0,0,0,0,0,0,0,0,0,0,0,365,365,1146,0,0,2943,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,0,0,0,0,2971,0,0,0,2975,0,0,0,0,0,2981,0,0,0,0,0,1128,0,0,0,0,0,1233,0,0,0,1265,0,0,0,2994,0,2996,0,0,0,0,0,0,0,0,3004,0,0,0,0,0,1169,0,1171,0,0,0,0,1176,0,0,0,0,0,0,1643,0,0,0,0,0,0,0,0,0,0,2520,0,0,0,0,541,0,0,0,0,3009,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,387,541,3063,541,541,541,3066,563,563,563,563,563,563,563,563,563,563,3083,563,563,563,563,563,563,563,3105,563,563,563,3108,587,587,587,587,587,587,587,587,587,1509,587,587,587,587,587,587,3144,587,587,3147,587,587,587,541,587,563,541,541,563,563,587,587,0,0,3295,0,0,0,0,0,0,0,0,2766,0,0,0,0,0,0,0,0,2151,0,0,0,0,0,0,0,0,2506,0,0,0,0,0,2512,0,0,0,0,0,0,3195,0,0,0,0,0,0,0,0,0,0,0,2782,0,0,0,0,541,541,541,541,3216,541,541,541,541,541,541,541,3221,541,3223,541,541,541,541,541,3408,541,541,3410,563,563,563,563,3414,563,563,563,563,1446,1447,563,563,563,26028,1360,988,587,587,587,587,587,587,3671,0,0,0,541,541,541,3674,563,563,563,563,563,587,587,3260,587,587,587,587,587,587,587,587,587,587,3274,587,587,587,587,587,587,3280,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,2722,563,3350,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3655,587,587,587,587,3363,587,587,587,587,587,587,587,587,587,3369,587,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3071,563,563,563,563,563,0,0,0,0,541,541,3660,3661,541,541,563,563,3664,3665,563,563,563,563,1423,563,563,1430,563,563,563,563,563,563,563,563,2631,563,563,563,563,563,563,563,587,587,3668,3669,587,587,0,0,0,0,541,541,541,541,563,563,563,924,928,931,563,939,563,563,563,954,956,959,0,0,690,691,0,0,0,0,696,0,0,0,365,365,365,0,0,0,0,0,1185,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,829,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,758,0,0,0,0,0,758,758,910,541,563,563,563,563,927,563,563,563,563,563,563,563,563,563,1432,563,563,1436,563,563,563,983,0,587,587,587,587,1057,78115,1079,0,0,0,0,0,0,0,0,1220,0,0,0,0,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,587,1521,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1514,587,0,0,0,1721,0,0,0,0,0,0,0,0,0,0,0,0,1193,0,0,0,0,2040,0,0,0,0,0,0,0,0,0,0,0,0,0,0,749,0,2171,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2211,3288,541,3290,563,3292,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3514,468,468,468,486,494,494,486,494,494,494,494,494,494,494,494,519,527,527,527,527,527,527,527,527,527,527,527,527,527,527,527,536,527,527,527,527,527,549,572,549,572,549,549,572,549,596,572,572,572,572,572,572,572,596,596,596,549,596,596,596,596,596,596,596,596,572,572,549,572,596,572,596,1,795,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1652,0,818,0,0,0,795,0,0,818,0,0,0,0,0,818,818,0,0,0,0,795,0,0,0,0,0,0,836,791,0,0,836,857,541,865,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3527,563,911,541,563,563,563,563,563,930,563,938,563,563,563,563,563,563,1850,563,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,1012,587,587,587,587,587,587,587,587,587,587,587,587,587,1058,984,0,587,587,587,1077,1058,78115,1079,0,0,0,0,0,0,0,0,1243,0,0,0,0,0,0,0,0,1259,0,0,0,1263,0,0,0,0,0,0,0,1139,1140,0,0,0,0,0,365,365,0,0,0,0,0,0,1113,0,0,0,0,0,0,0,0,0,0,2071,0,0,0,0,0,1180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1705,1340,541,541,1344,541,541,541,541,541,1350,541,541,541,1357,541,541,541,541,541,1812,541,541,541,541,541,541,541,541,541,1360,1403,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2638,563,563,1442,563,563,563,1449,563,563,26028,1360,988,587,587,587,587,587,587,3272,587,587,587,587,587,587,587,587,3278,587,587,1487,587,587,587,587,587,587,587,1495,587,587,587,587,587,587,2365,587,587,587,587,587,587,587,587,587,2691,587,587,587,587,587,587,587,587,587,1524,587,587,1528,587,587,587,587,587,1534,587,587,587,587,587,1492,587,587,587,587,587,587,587,587,587,587,1510,587,587,587,587,587,1541,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3476,563,563,563,3480,563,563,563,563,563,563,2863,563,563,2867,563,563,563,563,563,563,1409,563,563,1413,563,563,563,563,563,563,1448,563,563,26028,1360,988,587,587,587,587,0,0,0,1595,0,0,0,0,0,0,0,0,0,0,0,0,1223,0,0,0,0,0,1655,0,0,0,0,0,0,0,0,0,1664,0,0,0,0,0,0,1126,0,0,0,1130,1131,0,0,0,0,0,0,0,2818048,2846720,0,2916352,0,0,3002368,0,0,1718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2053,1702,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,3326,541,541,541,563,563,563,1893,563,563,563,563,563,563,1901,563,563,563,563,563,563,2887,563,563,563,2890,563,2892,563,563,563,587,1944,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1940,587,587,1974,587,587,587,587,1980,587,587,587,587,587,587,587,587,1989,2007,2009,587,587,587,587,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,0,2079,0,0,0,2082,0,0,0,0,0,2088,0,0,0,0,0,0,1141,0,1143,0,0,365,365,0,0,0,0,0,0,1154,0,0,0,0,0,1160,0,1162,0,2104,0,0,0,0,0,0,0,0,0,0,0,0,0,2115,0,0,0,0,0,1192,0,0,0,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,0,0,563,563,563,563,563,563,2250,563,563,563,563,563,563,563,1851,563,563,563,563,1855,563,563,563,587,587,587,587,2349,587,587,587,587,587,587,587,587,587,587,587,1985,587,587,1988,587,2262,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,2732,0,2450,0,0,0,0,0,0,0,0,2455,0,0,2458,0,0,0,0,0,0,2134016,0,0,0,0,0,0,57344,0,0,0,0,0,0,2748,0,0,0,0,0,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,0,0,0,0,2462,0,0,0,0,0,0,0,0,0,0,0,541,541,541,2809,541,2473,0,0,0,0,0,0,0,2481,0,0,0,2483,0,0,0,0,0,0,1170,0,0,0,0,0,0,0,0,0,0,2989,0,0,0,0,0,0,2500,0,0,0,0,0,0,0,0,0,0,2510,0,0,0,0,0,0,1186,0,0,0,1191,0,0,0,0,1107,0,0,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,0,2524,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2536,541,541,2552,541,541,541,541,541,541,541,541,541,541,541,541,541,905,541,541,2564,541,541,541,541,541,541,2571,541,541,541,541,541,541,541,541,541,1768,541,541,541,541,541,541,541,2578,541,541,541,2581,541,541,541,541,541,541,541,0,0,0,0,0,0,1203,0,0,0,0,0,0,0,0,0,0,813,0,0,0,0,0,0,0,0,563,2588,563,563,563,563,563,563,563,563,563,563,563,1903,1904,563,563,563,2611,563,563,563,563,563,563,2616,563,563,563,563,563,563,563,2622,587,587,587,587,2702,587,587,587,587,587,587,587,587,587,587,2710,587,587,587,2713,587,587,587,587,587,587,587,2718,2719,2720,541,541,541,541,541,2177,541,541,541,541,541,541,541,541,541,541,541,541,2845,541,541,541,2758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2103,0,2773,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1120,0,0,0,2789,0,0,0,0,2794,0,0,0,2796,0,0,0,0,0,0,0,69632,73728,316,317,317,422,423,65536,430,541,541,541,541,2814,541,541,541,541,541,541,541,541,541,541,541,541,1333,541,541,541,541,541,2848,541,541,541,541,541,541,0,0,563,563,563,2856,563,0,587,587,1047,587,587,78115,1079,0,0,0,0,0,0,0,0,1159168,365,0,0,0,0,0,0,563,563,563,563,2861,563,563,563,563,563,563,563,563,563,563,563,2294,563,563,563,563,563,563,563,563,2897,563,563,563,563,563,563,0,0,587,587,587,587,587,587,587,2338,587,587,587,587,587,587,587,3122,587,587,587,587,587,587,587,587,1036,587,587,587,587,1054,587,587,2905,587,587,587,587,587,2910,587,587,587,587,587,587,587,587,587,1935,587,587,587,587,1941,587,3006,0,0,0,0,3010,0,0,0,0,3015,0,0,0,0,0,0,0,2749,0,0,0,0,0,0,0,0,0,697,698,0,365,365,365,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2145,3300,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,69632,73728,163840,0,0,0,0,65536,0,563,563,563,3340,563,563,563,563,563,563,563,563,563,563,563,563,2283,563,563,563,563,563,563,3351,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,3359,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1942,3370,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,3297,0,0,0,0,0,0,0,0,0,3394,0,541,541,541,541,541,541,541,541,541,541,541,541,3211,541,541,3486,587,587,587,587,587,587,587,587,3495,587,3497,3498,587,3500,587,0,0,0,541,587,563,541,541,541,904,541,563,563,563,977,3502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,854,541,541,3612,541,3613,541,541,541,563,563,563,563,563,563,3619,563,0,996,1075,1041,587,587,78115,1079,0,0,1081,1085,0,0,1089,3620,563,563,563,563,587,587,587,587,587,587,3627,587,3628,587,587,0,3603,0,0,0,0,0,0,0,0,541,541,3610,541,563,563,587,587,587,587,0,0,541,541,563,563,587,587,3683,3684,3685,3686,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,550,597,573,573,573,573,573,573,573,597,597,597,550,597,597,597,597,597,597,597,597,573,573,550,573,597,573,597,1,0,0,0,737,0,0,0,0,0,0,0,0,0,0,0,0,1237,0,0,0,0,0,2041,0,0,0,0,0,0,0,0,0,0,0,0,0,1194,1196,0,403,0,0,0,0,381,0,69632,73728,0,0,0,0,426,65536,0,0,0,0,0,1202,0,0,0,0,0,0,0,0,0,0,0,2444,2445,0,0,2448,426,426,0,0,426,0,446,426,426,469,469,469,476,469,469,469,469,469,469,469,469,469,476,469,469,469,469,469,469,469,469,483,469,495,495,469,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,538,551,574,551,574,551,551,574,551,598,574,574,574,574,574,574,574,598,598,598,551,598,598,598,598,598,598,598,598,574,574,551,574,598,574,598,1,0,0,0,0,660,661,0,0,0,0,0,0,0,0,0,0,0,3001,0,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,661,0,0,0,0,0,827,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,3176,0,0,0,0,0,0,0,729,0,742,661,0,0,0,0,0,541,844,541,541,541,541,541,2191,541,541,541,541,541,541,2197,541,2199,541,541,859,541,541,541,541,541,541,541,541,541,541,897,541,541,541,541,541,541,2817,541,2819,541,541,541,541,541,541,541,541,2572,541,541,541,541,541,541,541,541,1349,541,541,541,541,541,541,541,541,1752,541,541,541,541,541,541,541,541,1767,541,541,541,541,541,541,541,541,1782,541,541,541,541,541,541,541,541,1815,1817,541,541,541,541,541,1360,563,563,563,970,563,563,563,563,563,0,587,587,990,587,587,587,587,587,1526,587,587,587,587,587,587,587,587,587,587,1953,587,587,587,587,587,1006,587,587,587,587,587,587,587,587,587,587,1044,587,587,587,587,587,587,3285,587,587,587,587,587,587,541,587,563,1094,0,0,0,0,0,0,0,0,0,1101,1102,0,0,0,0,0,0,0,69632,73728,167936,0,0,0,0,65536,0,0,0,0,1229,0,0,0,0,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,1102,0,0,0,0,1260,1261,0,0,1101,0,0,0,0,0,0,2134756,0,0,0,0,0,0,0,0,0,0,1116,0,0,0,0,0,541,1306,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2241,1360,914,563,1363,563,563,563,563,563,563,563,563,563,563,563,1377,1384,563,563,563,563,563,563,563,563,563,1398,563,563,563,563,563,563,3079,563,563,563,563,563,563,563,563,563,0,587,587,989,587,587,587,1418,563,563,563,563,563,563,563,1431,563,563,563,563,563,563,563,1897,563,563,563,563,563,563,563,563,1395,563,563,563,563,563,563,563,587,587,1523,587,587,587,587,587,587,587,587,587,587,587,1537,587,0,0,0,541,587,563,541,541,541,1067,911,563,563,563,1072,563,587,587,1523,587,587,1079,0,0,0,0,0,0,0,0,0,0,2781,0,0,0,0,0,541,541,541,1746,1747,541,541,541,541,1754,541,541,541,541,541,541,541,1290,541,1295,541,541,1299,541,541,1302,541,541,541,541,1795,541,541,541,541,541,541,541,541,541,541,541,541,1335,541,541,541,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1841,1842,563,563,563,563,1849,563,563,563,563,563,563,563,563,563,563,3347,563,563,563,563,3348,1890,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2649,587,1945,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2372,587,587,1959,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2384,2385,587,587,587,587,2012,587,587,541,587,563,541,541,541,541,563,563,587,587,2961,0,0,2964,2965,0,0,0,0,0,0,0,2505,0,0,0,0,0,0,0,0,0,387,0,0,0,0,0,387,0,0,0,2054,0,2055,0,0,0,0,0,0,0,0,0,2064,541,541,541,541,2216,541,541,541,541,541,541,2221,541,541,541,541,541,541,1285,1292,541,541,541,541,541,541,541,541,541,1800,541,541,541,1805,541,541,541,2226,541,541,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,2302,563,563,563,563,563,563,2307,563,563,563,563,563,563,3080,563,563,563,563,563,563,563,563,563,1883,563,563,563,563,563,563,563,2313,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,587,587,2389,587,587,587,587,587,587,2394,587,587,587,587,587,587,2377,587,587,587,587,587,587,587,587,587,1952,587,587,587,587,1956,587,587,2400,587,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,895,541,541,563,563,968,563,0,587,587,587,587,587,78115,1079,0,0,1082,1086,0,0,1090,0,2437,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1178,0,587,2671,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2931,587,0,0,0,2736,0,0,0,0,0,0,0,0,0,0,0,0,1588,1589,0,0,2787,0,0,0,0,0,0,0,0,0,0,0,2797,0,0,0,0,0,0,1204,0,0,0,0,0,0,0,0,0,0,1631,0,0,0,0,0,541,541,541,2813,541,541,541,541,541,541,2821,541,541,541,541,541,541,541,2555,541,541,541,541,541,541,541,2562,563,563,563,2860,563,563,563,563,563,563,2868,563,563,563,563,563,563,3094,563,563,3096,563,563,563,563,563,563,1880,1881,1882,563,563,1885,1886,563,563,563,0,0,3008,0,0,0,0,0,0,0,0,0,0,0,0,0,1197,0,0,541,541,3227,541,541,541,541,541,541,563,563,563,563,563,563,563,3073,563,563,563,3571,541,3573,541,541,541,563,563,563,563,563,563,563,3583,563,3585,0,0,0,0,541,3659,541,541,541,541,563,3663,563,563,563,563,563,1878,563,563,563,563,1884,563,563,563,563,563,563,2864,563,2866,563,563,563,563,563,563,563,3354,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1057,587,3667,587,587,587,587,0,0,0,0,541,541,541,541,563,563,915,563,563,563,563,563,563,946,563,563,563,563,563,1427,563,563,563,563,563,563,563,563,563,563,3535,563,563,563,563,563,563,587,587,587,587,3112,587,587,587,587,3116,470,470,470,470,454,454,470,454,454,454,454,454,454,454,454,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,552,575,552,575,552,552,575,552,599,575,575,575,575,575,575,575,599,599,599,552,599,599,599,599,599,599,599,599,575,575,552,575,599,575,599,1,541,860,541,541,874,541,541,541,541,541,541,541,541,541,541,541,541,1770,541,541,541,1007,587,587,1021,587,587,587,587,587,587,587,587,587,587,587,587,1971,587,587,587,0,1123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1184,1184,1251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2156,0,0,0,1268,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,541,541,541,1323,541,541,541,541,541,541,541,541,541,541,541,541,541,2534,541,541,541,1341,541,541,541,541,541,1348,541,541,541,541,541,541,541,541,541,2234,541,541,541,541,0,0,1440,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3365,587,587,587,587,587,587,587,587,587,2936,587,587,587,2939,587,2941,587,587,587,587,587,1525,587,587,587,587,587,1532,587,587,587,587,587,587,2392,587,587,587,587,587,587,587,587,587,1472,587,587,587,587,1482,587,563,587,587,587,1557,587,1079,0,1561,0,0,0,1567,0,0,0,0,0,0,1218,1219,0,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,1573,0,0,0,1579,0,0,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,0,0,541,541,541,1779,541,541,541,541,541,541,541,541,541,541,541,541,541,2548,541,541,563,1843,563,563,563,563,563,563,563,563,563,1854,563,563,563,563,563,1879,563,563,563,563,563,563,563,563,563,563,3344,563,563,563,563,563,563,563,563,1865,563,563,563,563,563,563,563,2065,2066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210,0,2117,0,0,2120,2121,0,0,0,0,0,2127,0,0,0,0,0,0,0,2765,0,0,0,0,0,0,0,0,0,550,573,550,573,550,550,573,541,2213,541,541,541,541,2218,541,541,541,541,541,541,541,541,541,541,2182,541,541,541,541,541,2299,563,563,563,563,2304,563,563,563,563,563,563,563,563,563,563,1917,563,26028,0,587,587,587,2386,587,587,587,587,2391,587,587,587,587,587,587,587,587,587,587,2001,587,587,587,587,587,2006,541,541,541,3037,541,541,541,541,541,541,541,541,541,541,541,541,541,2846,541,541,563,563,3077,563,563,563,563,563,563,563,563,563,563,563,563,563,1887,1888,563,587,587,587,3119,587,587,587,587,587,587,587,587,587,587,587,587,1986,587,587,587,563,563,3247,563,563,563,563,563,563,563,563,563,563,563,563,563,2296,563,563,587,0,0,0,3445,0,0,0,0,3180,0,0,0,0,0,0,0,1242,0,0,0,0,0,0,0,0,0,380,0,0,0,0,0,0,0,0,541,541,541,541,3460,541,541,541,541,541,541,541,541,541,541,2207,541,541,541,541,541,563,587,587,587,587,3491,587,587,587,587,587,587,587,587,587,587,2354,587,587,587,587,587,587,563,563,563,563,3623,587,587,587,587,587,587,587,587,587,587,587,2395,587,587,587,587,587,3631,0,0,0,0,0,0,541,541,541,541,541,541,541,563,563,920,563,563,563,563,563,563,949,951,563,563,563,563,563,3421,563,563,563,3425,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3501,388,390,340,0,0,0,0,0,0,339,0,0,340,0,0,0,0,0,0,1598,0,0,0,0,0,0,0,0,1604,0,0,0,387,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1217,0,0,0,0,0,0,0,1224,0,0,0,0,0,347,0,0,0,0,0,0,0,0,0,0,0,3316,0,0,0,0,0,0,435,339,0,0,447,0,0,471,471,471,471,471,471,471,471,471,553,576,553,576,553,553,576,471,482,471,471,471,500,477,500,500,500,500,500,500,500,500,471,471,477,471,471,471,471,471,471,471,471,471,471,471,481,481,471,482,471,471,553,600,576,576,576,576,576,576,576,600,600,600,553,600,600,600,600,600,600,600,600,576,576,553,576,600,576,600,1,0,0,750,0,0,0,0,0,0,0,0,0,0,0,0,0,1603,0,0,0,0,0,0,663,0,788,0,0,0,0,0,0,0,792,0,0,0,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,2153,0,0,0,0,0,0,0,801,0,0,0,0,0,809,0,0,0,0,706,0,0,0,0,0,0,0,0,715,0,717,0,828,0,0,0,663,831,0,788,0,0,0,0,0,837,0,0,0,0,0,1597,0,0,0,577536,0,0,1602,0,0,0,0,0,0,1257,0,0,0,0,0,0,0,0,0,0,2508,0,0,0,0,0,541,861,541,541,875,541,541,541,541,888,541,541,541,541,906,541,541,541,541,541,3519,541,541,541,541,541,541,541,541,563,563,563,923,563,929,563,563,942,563,563,953,563,958,961,563,563,563,563,979,563,563,563,0,587,587,991,587,587,587,587,587,1962,587,587,587,587,587,587,587,587,587,587,3287,587,587,587,541,587,563,1008,587,587,1022,587,587,587,587,1035,587,587,587,587,1053,587,587,587,587,587,2945,587,587,2948,587,587,2951,587,2952,2953,2954,0,0,0,0,1216,0,0,0,0,1221,0,0,0,0,0,0,0,1258,0,0,0,0,0,0,0,0,0,365,299,0,0,0,0,0,0,1144,0,0,1256,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,2891776,0,0,0,0,0,2392064,2412544,0,0,0,0,0,0,2123,0,0,0,0,0,0,0,0,0,0,2727936,0,0,0,3084288,0,0,0,1267,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,1741,541,541,541,1309,541,541,541,541,541,541,541,541,541,541,541,541,541,3045,541,3047,563,587,587,1556,587,587,1079,0,0,0,0,0,0,0,0,0,0,3e3,0,0,0,0,0,1621,0,0,1624,0,1626,0,0,0,0,0,0,0,0,0,0,0,3198,3199,0,0,0,0,0,0,0,1722,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,541,541,541,541,1780,541,541,541,541,541,541,541,541,541,541,541,541,1820,541,541,1360,0,563,563,563,563,563,563,563,563,563,563,1836,563,563,563,563,563,2263,563,563,563,563,563,563,563,563,563,563,1433,563,563,563,563,563,1875,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2872,1943,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2359,0,0,2135,0,0,0,0,0,0,0,0,0,0,0,0,0,1618,0,0,2146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2484,0,0,0,0,541,541,541,2163,2164,541,541,541,541,541,541,541,541,2180,541,541,541,541,2185,541,541,541,541,541,2228,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,2857,0,0,563,563,563,2247,563,2249,563,563,563,563,563,563,563,563,2320,563,563,563,563,563,0,0,563,563,563,2315,563,563,563,563,563,563,563,563,563,563,0,0,988,587,587,587,587,0,0,587,587,587,2334,587,2336,587,587,587,587,587,587,587,587,1965,1966,1968,587,587,587,587,587,587,587,587,2402,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,897,541,541,563,563,970,563,0,997,587,1076,1048,587,78115,1079,0,0,0,0,0,0,0,0,458,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,0,0,2438,0,0,0,0,0,0,2443,0,0,0,2446,2447,0,0,0,0,0,1610,0,0,1613,0,0,0,0,0,0,0,0,1584,0,0,0,0,0,0,0,0,1683,0,0,0,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134,0,0,0,0,2487,0,0,0,0,0,0,0,0,0,0,0,2498,0,0,0,2515,0,0,0,0,0,0,0,0,0,2523,0,541,541,541,541,541,3576,563,563,563,3580,563,563,563,563,563,563,2290,563,563,563,563,563,563,563,563,563,1899,563,563,563,563,563,1906,2537,2538,541,541,541,541,541,2543,541,2545,541,541,541,541,2549,541,541,541,541,541,3614,3615,541,563,563,563,563,563,563,563,563,3424,563,563,587,587,587,587,587,563,563,2598,563,563,2601,2602,563,563,563,563,563,2607,563,2609,563,0,999,1039,587,1050,587,78115,1079,0,0,0,0,0,0,0,0,3184,0,0,0,0,0,0,0,0,2750,0,0,0,0,0,0,0,0,0,2732032,0,0,0,0,0,0,563,563,563,2613,563,563,563,563,563,563,563,563,2619,563,563,563,563,563,3624,587,587,587,587,587,587,587,587,587,587,1967,587,587,587,1972,587,587,563,2639,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1402,563,587,587,587,2673,587,2675,587,587,587,587,2679,587,587,587,587,587,587,2676,587,587,587,587,587,587,587,587,587,1469,1476,587,587,587,587,587,587,587,587,2685,587,587,587,587,587,587,587,587,2693,587,587,587,587,587,1979,587,587,587,587,587,587,587,587,587,587,2926,2927,587,587,587,587,2930,587,587,587,587,587,2701,587,587,587,587,2705,587,587,587,587,587,587,587,2378,2379,587,587,587,587,587,587,587,2406,587,587,2409,2410,587,587,2176,2348,0,2745,0,0,0,0,0,0,0,2751,2752,2753,0,0,0,0,0,0,0,69632,73728,172032,0,0,0,0,65536,0,2772,0,2774,0,0,0,0,2778,0,0,0,0,2783,0,0,2786,541,541,2828,541,541,541,541,541,541,541,541,541,541,541,541,541,1771,541,541,541,541,541,2838,541,541,541,541,541,541,541,541,541,541,541,541,541,3337,563,563,541,2847,541,541,2850,541,541,2853,541,0,0,2854,563,563,563,563,563,2277,563,563,2280,563,563,563,563,563,563,563,3081,563,563,563,563,563,563,563,563,3355,563,587,587,587,587,587,587,563,563,2875,563,563,563,563,563,563,563,563,563,563,563,563,563,2324,0,0,563,563,563,563,2886,563,563,563,563,563,563,563,563,563,563,563,2606,563,2608,563,563,563,563,563,2896,563,563,2899,563,563,2902,563,0,0,2903,587,587,587,587,587,3284,587,587,587,587,587,587,587,541,587,563,541,541,563,563,587,587,587,2921,587,587,2924,587,587,587,587,587,587,587,587,587,587,587,2666,587,587,587,587,0,0,0,0,0,2972,2973,0,0,0,0,2978,0,0,0,0,0,0,0,69632,73728,221184,0,0,0,0,65536,0,3021,0,0,3023,0,0,541,541,3028,541,541,541,541,541,541,541,541,2205,2206,541,541,541,541,541,541,0,0,3160,0,3162,0,0,0,3166,0,0,0,0,0,0,0,0,2518,0,0,0,0,0,0,541,541,541,541,3030,541,541,541,541,3034,3234,3235,563,563,563,563,3239,3240,563,563,563,563,563,3244,563,563,563,563,1445,563,563,563,563,26028,1360,988,587,1455,587,587,0,3632,0,0,0,0,541,541,541,541,541,3641,541,563,563,563,563,587,587,587,587,587,587,587,3263,3264,587,587,587,587,587,587,3435,587,587,587,587,587,587,587,541,563,3268,3269,587,587,587,587,587,3273,587,587,587,587,587,587,587,587,2393,587,587,587,587,587,587,587,3279,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2721,541,0,0,0,3312,0,0,0,0,0,0,0,0,0,0,0,0,1633,0,0,0,541,3404,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3419,563,563,563,563,563,563,563,587,587,587,587,587,3113,587,587,587,587,587,0,3443,0,0,3446,0,0,0,3180,0,0,0,0,0,0,0,1583,0,1585,0,0,0,0,0,0,0,1106,0,0,0,0,0,0,0,0,0,756,0,0,0,0,0,0,0,0,541,541,3458,541,541,541,541,3463,541,541,541,541,3468,541,541,541,541,872,541,541,541,541,541,541,541,541,541,541,541,541,1316,541,541,541,563,587,587,3489,587,587,587,587,3494,587,587,587,587,3499,587,587,587,587,587,3364,587,587,587,587,587,587,587,587,587,587,2664,587,587,2667,2668,587,587,563,563,3645,3646,563,563,563,587,587,587,3651,3652,587,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,2730,0,0,563,587,0,541,563,587,3691,3692,3693,3694,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,3453,342,343,344,345,346,0,0,0,0,0,0,0,0,0,0,0,713,0,0,0,0,0,0,0,391,0,0,0,0,0,0,0,0,0,0,0,0,1674,0,0,0,345,345,0,346,345,0,344,345,455,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,487,496,496,504,496,506,496,496,506,506,496,506,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,554,577,554,577,554,554,577,554,601,577,577,577,577,577,577,577,601,601,601,554,601,601,601,601,601,601,601,601,577,577,554,577,601,577,601,1,656,657,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1590,1591,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,0,0,0,2804,0,0,0,541,2808,541,541,541,0,0,0,0,692,0,0,0,0,0,0,699,365,365,365,0,0,0,0,0,1658,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,3308,0,719,0,721,0,723,0,0,0,0,0,0,0,0,0,733,0,0,0,0,646,752,753,754,0,0,0,0,0,760,761,0,0,0,0,0,1680,0,0,0,0,0,0,0,0,0,0,0,3180,0,3306,0,0,763,764,675,0,0,0,0,0,0,0,0,0,0,779,780,0,0,0,0,0,1696,1697,1698,1699,0,0,0,0,0,0,0,0,755,0,0,0,0,0,0,0,0,772,0,0,0,0,0,0,0,0,782,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1601,0,0,761,0,0,787,0,0,0,0,0,0,0,0,0,794,675,723,0,692,811,0,0,0,0,761,0,0,0,0,0,0,0,1591,0,0,0,0,0,0,0,0,0,1662,0,0,0,0,0,0,0,0,754,820,821,0,0,0,0,0,0,754,0,0,825,699,0,0,0,830,0,0,0,832,0,0,0,692,699,0,0,692,830,830,0,0,0,0,0,0,0,0,0,692,541,541,851,855,858,541,866,541,541,541,881,883,886,541,541,541,898,902,541,541,541,541,541,2541,541,541,541,541,541,541,541,541,541,541,541,541,3044,541,541,541,563,563,563,971,975,563,563,563,563,0,587,587,587,998,1002,1005,587,1013,587,587,587,1028,1030,1033,587,587,587,1045,1049,587,587,587,587,587,1995,587,587,587,587,587,2002,587,587,587,587,587,587,2946,587,587,587,587,587,587,541,587,563,1073,0,998,587,1045,1049,1078,78115,1079,0,0,0,0,0,0,0,0,2779,0,0,0,0,0,0,0,0,303,303,303,303,0,303,303,303,0,0,0,0,1168,0,0,0,0,0,0,0,0,0,0,0,729,0,0,0,0,0,0,1199,0,0,0,0,0,0,0,0,0,0,1209,0,0,0,0,0,0,2912256,0,3207168,2465792,0,0,2719744,0,0,0,0,0,0,541,541,541,3397,541,541,541,541,3401,541,0,0,1214,0,0,0,0,0,0,0,0,0,0,0,0,0,1634,0,0,0,0,1254,0,0,0,0,0,0,0,0,0,0,0,0,0,1665,0,0,1321,541,541,541,541,541,541,541,541,541,541,1331,541,541,1338,541,541,541,541,873,541,541,541,541,541,541,541,541,541,541,541,541,1332,541,541,541,563,563,1443,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3548,587,3550,587,587,3552,587,587,0,0,0,0,0,0,541,541,541,3639,3640,541,541,563,1501,587,587,1505,587,587,587,587,587,587,587,587,587,587,1515,587,0,0,0,541,587,563,541,541,899,541,541,563,563,972,563,0,1074,587,587,1052,587,78115,1079,0,0,0,0,0,0,0,0,2445312,0,2842624,0,0,0,2637824,0,587,1522,587,587,587,587,587,587,587,587,587,587,1535,587,587,587,587,587,2013,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,0,1666,0,1668,0,0,0,1670,0,748,0,0,0,0,0,0,0,0,3174,0,0,0,0,0,0,0,0,791,0,0,0,0,0,0,0,0,833,0,0,0,0,0,0,808,0,0,1693,0,0,0,0,0,0,1700,0,0,0,0,0,0,0,1660,1661,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,726,0,0,0,0,0,0,0,0,0,274432,274432,274432,0,274432,274432,274432,541,541,1762,541,541,541,541,541,541,541,541,1769,541,541,541,1773,541,541,1778,541,541,541,541,541,541,541,541,541,541,541,541,541,1788,541,541,0,563,1828,563,563,563,563,563,563,563,1835,563,563,563,563,563,563,3250,563,563,563,563,563,563,563,563,563,2321,563,563,563,563,0,0,563,1908,563,563,563,563,563,563,563,563,563,26028,0,587,1924,587,0,0,0,541,587,563,541,541,900,541,541,563,563,973,563,563,563,563,2262,563,563,563,563,563,563,563,563,563,563,563,1434,563,563,563,563,587,587,587,1960,587,587,587,1964,587,587,1969,587,587,587,587,587,587,2688,587,587,587,587,587,587,2695,587,587,563,563,587,587,587,587,0,0,0,2031,0,1082,0,0,0,2033,0,1086,0,0,0,2035,0,1090,0,0,0,2037,0,1094,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1620,2587,0,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2610,2650,563,563,563,0,0,0,2653,0,1921,587,587,587,587,587,587,587,3549,587,587,587,587,587,587,0,0,3672,0,541,541,541,541,563,563,0,0,2969,0,0,0,0,0,0,0,0,0,0,0,0,0,2102,0,0,0,0,0,3161,0,0,0,0,0,0,0,0,0,0,0,0,1703,0,0,0,0,0,3319,541,541,541,541,541,541,541,3324,541,541,541,541,541,541,541,2832,541,541,541,541,541,541,541,541,541,2573,541,541,541,541,541,541,587,587,3361,587,587,587,587,587,587,587,587,587,587,587,587,587,2709,587,587,3379,0,0,3382,0,0,0,0,3180,3387,0,0,0,0,0,0,0,1682,0,1684,0,0,0,0,0,0,0,1114,0,0,0,0,1118,0,0,1121,541,541,541,541,3407,541,541,541,563,563,563,3412,563,563,563,563,563,2289,563,563,563,563,563,563,563,563,563,563,2605,563,563,563,563,563,3416,563,563,563,563,563,3422,563,563,563,563,587,587,587,3428,587,0,0,0,541,587,563,850,541,1066,901,541,923,563,1071,974,587,587,587,3432,587,587,587,587,587,3438,587,587,587,587,541,563,563,563,563,2276,563,563,563,563,563,563,2282,563,2284,563,2287,563,587,587,587,587,587,3492,587,587,587,3496,587,587,587,587,587,587,2704,587,587,587,587,587,587,587,587,587,1470,587,587,587,587,587,587,0,0,3657,0,541,541,541,541,541,541,563,563,563,563,563,563,936,563,563,563,563,563,563,563,563,587,3687,3688,3689,3690,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,3450,3451,0,0,389,0,0,0,393,389,0,0,0,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,405,0,347,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1709,0,0,0,0,0,0,0,0,0,0,399,0,0,0,0,0,0,0,436,0,0,443,0,0,0,0,0,0,0,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,522,522,522,522,522,0,0,0,0,0,0,0,0,0,522,522,522,522,522,522,522,522,522,555,578,555,578,555,555,578,555,602,578,578,578,578,578,578,578,602,602,602,555,602,602,602,602,602,602,602,602,578,578,617,622,602,622,628,1,0,0,0,751,0,0,0,0,0,0,0,0,0,0,0,0,2061,0,0,0,962,563,563,563,563,980,563,563,563,0,587,587,992,587,587,587,587,587,2350,587,587,587,587,587,587,587,587,587,587,1936,587,587,587,587,587,1107,0,0,0,0,1112,0,0,0,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,1360,914,563,563,563,1366,563,563,563,563,563,563,563,563,563,1380,563,563,1404,563,563,563,563,563,563,563,563,563,563,563,563,563,2620,563,563,563,1441,563,563,563,563,563,563,563,26028,1360,988,587,587,587,1458,563,587,587,587,587,587,1079,0,1562,0,0,0,1568,0,0,0,0,0,0,1627,1628,1629,0,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,407,407,407,407,0,407,407,407,1574,0,0,0,1580,0,0,0,0,0,0,0,0,0,0,0,808,541,541,852,541,1605,0,0,0,0,0,0,0,0,0,0,0,0,0,1619,0,0,0,0,0,1723,0,0,0,0,0,0,0,0,0,0,0,2625536,0,2699264,2715648,0,1973,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2373,563,563,587,587,587,587,0,0,1563,0,0,0,0,0,1569,0,1575,0,1581,0,0,0,0,0,0,0,0,0,0,0,1262,0,0,0,0,0,0,0,0,1575,0,0,0,0,0,1581,0,0,0,0,0,0,0,2974,0,0,0,0,0,0,0,0,0,365,0,253952,0,0,0,0,541,541,541,2190,541,541,541,541,2194,541,2196,541,541,541,541,541,541,541,3039,541,541,541,541,541,541,541,541,541,887,541,541,541,541,541,541,563,563,2275,563,563,563,563,2279,563,2281,563,563,563,563,563,563,1896,563,563,563,563,563,563,563,563,563,1397,1399,563,563,563,563,563,587,587,2362,587,587,587,587,2366,587,2368,587,587,587,587,587,587,1465,587,587,587,587,587,587,1480,587,587,0,0,0,0,0,2489,0,0,0,0,0,0,0,0,0,0,0,196608,0,0,0,0,563,563,2625,563,563,563,563,563,563,563,563,563,563,563,563,563,2648,563,563,0,0,0,0,3024,0,541,541,541,541,541,541,541,541,541,541,541,1330,541,541,541,541,0,3380,0,0,0,0,0,0,3180,0,0,0,0,3391,0,0,0,0,0,328,0,69632,73728,0,0,0,0,0,65536,0,3393,0,0,0,0,0,541,3396,541,541,3398,541,541,541,541,541,541,541,3040,541,541,541,541,541,541,541,541,541,1783,541,541,541,541,1789,541,0,3455,541,541,541,541,541,541,541,541,541,541,541,541,541,541,563,563,563,541,862,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1319,541,541,912,563,563,563,563,563,563,935,563,563,563,563,563,563,563,2291,2292,563,563,563,563,563,563,563,2319,563,563,2322,2323,563,563,0,0,1009,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2697,1059,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2614,563,563,563,563,563,563,563,563,563,563,3649,587,587,587,587,587,587,587,0,1095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2513,0,0,1623,0,0,0,0,0,0,0,0,0,0,0,0,0,2130,0,2132,1826,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3258,541,3215,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1337,541,587,587,587,3271,587,587,587,587,587,587,587,587,587,587,587,587,2370,587,587,587,0,0,0,0,348,348,350,348,348,348,348,348,348,513,348,348,0,350,348,0,0,348,348,0,0,0,0,349,0,0,0,0,0,329,0,0,0,0,0,0,0,0,0,0,0,2509,0,0,0,0,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,556,579,556,579,556,556,579,556,603,579,579,579,579,579,579,579,603,603,603,556,603,603,603,603,603,603,603,603,579,579,556,579,603,579,603,1,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,0,299,0,0,0,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,0,0,0,836,541,541,541,541,0,0,0,766,0,0,0,771,0,0,0,0,0,0,0,0,0,1189,0,0,0,0,0,0,541,541,541,870,541,541,541,541,541,890,892,541,541,903,541,541,541,541,541,2569,541,541,541,541,541,541,541,541,541,541,541,541,2835,541,541,541,963,965,563,563,976,563,563,563,563,0,587,587,993,999,587,587,587,587,587,3374,587,541,541,563,563,587,587,0,0,0,0,0,0,3299,0,0,0,587,587,1017,587,587,587,587,587,1037,1039,587,587,1050,587,587,587,587,587,2364,587,587,2367,587,587,587,587,587,587,587,2677,587,587,587,587,587,587,2682,587,0,0,0,1151,0,1153,0,1155,0,0,0,0,0,0,0,0,0,1231,541,541,541,541,541,541,0,1181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1636,0,0,1198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1675,0,0,1266,0,0,0,0,0,0,0,1181,541,541,541,541,541,541,541,1326,541,541,541,541,541,541,541,1339,1305,1307,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1358,541,541,541,1343,541,541,541,541,541,541,541,541,1354,1355,541,541,541,541,541,541,2840,541,541,541,541,541,541,541,541,541,541,3056,541,3058,541,541,541,1360,914,563,563,563,563,1367,563,563,563,563,563,563,563,563,563,3242,563,563,563,563,563,563,563,563,563,1421,563,563,563,563,563,563,563,1435,563,563,563,563,563,2627,563,563,563,563,563,563,2635,563,563,563,1459,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2942,587,587,587,1489,1491,587,587,587,587,587,587,587,587,587,587,587,2707,2708,587,587,587,1554,587,1555,587,587,1558,1079,0,0,0,0,0,0,0,0,0,306,204800,204800,0,205106,204800,1,0,1677,0,0,1679,0,0,0,0,0,0,0,0,0,0,0,1159,0,0,0,0,541,541,541,541,1763,541,541,541,541,541,541,541,541,541,541,541,541,2208,541,541,541,0,563,563,563,563,563,563,563,1833,563,563,563,563,563,563,563,2879,563,563,563,563,563,563,563,563,2644,563,563,563,2647,563,563,563,1858,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1857,563,563,563,1909,563,563,563,563,1915,563,563,563,26028,0,587,587,587,587,587,2376,587,587,587,587,587,587,587,587,587,587,2717,541,587,563,541,541,587,587,587,587,1929,587,587,587,587,587,587,587,587,587,587,587,2938,587,587,587,587,587,1991,587,587,587,1996,587,587,587,587,587,587,587,587,2005,587,0,0,0,541,587,563,852,892,541,903,541,925,965,563,976,587,587,587,2011,587,587,587,541,587,563,541,541,541,541,563,563,916,563,563,563,932,563,563,563,563,563,563,563,1864,563,563,563,1868,563,563,1873,563,2077,0,0,0,0,0,0,0,0,2085,0,0,0,0,0,2089,0,0,2091,0,0,0,0,0,0,0,2099,0,0,0,0,0,0,0,3012,3013,0,0,0,0,3018,0,0,2133,2134,0,2136,0,0,0,0,0,0,0,0,0,0,2144,0,0,2149,2150,0,0,0,0,0,2154,0,0,0,0,0,0,0,2160,541,541,541,541,541,541,2167,541,541,541,541,541,541,1288,541,541,541,541,1298,541,541,541,541,541,541,1325,541,541,541,541,541,541,541,541,541,541,1801,541,541,541,541,541,2202,541,541,541,541,541,541,541,541,541,541,541,541,2209,541,541,541,541,541,2815,541,2818,541,541,541,541,2823,541,541,541,541,541,541,3409,541,563,563,563,563,563,563,563,563,3479,563,3481,3482,563,3484,563,541,541,541,2215,541,541,541,541,541,541,541,541,541,541,541,541,895,541,541,541,0,0,2244,563,563,563,563,563,563,563,2252,563,563,563,563,563,563,3534,563,3536,563,563,3538,563,563,587,587,563,563,2301,563,563,563,563,563,563,563,563,563,563,563,563,563,2893,563,563,0,0,2331,587,587,587,587,587,587,587,2339,587,587,587,587,587,587,2715,587,587,587,587,541,587,563,541,541,587,587,587,587,2363,587,587,587,587,587,587,2369,587,2371,587,2374,587,587,2388,587,587,587,587,587,587,587,587,587,587,587,587,587,2918,587,587,0,2474,0,0,0,0,0,0,0,0,0,2482,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,0,122880,0,2105632,0,0,2514,0,0,0,0,0,0,0,0,0,2522,0,0,541,541,541,541,541,3461,541,541,541,3465,541,541,541,541,541,541,1287,541,541,541,541,541,541,541,541,541,541,2546,541,541,541,541,541,541,541,541,541,2540,541,541,541,541,541,541,541,541,541,541,541,541,2222,541,541,541,563,563,563,2599,563,563,563,563,563,2604,563,563,563,563,563,563,2278,563,563,563,563,563,563,563,563,563,2632,563,563,563,563,563,563,2670,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3143,587,587,587,587,2686,587,587,587,587,587,587,587,587,587,587,587,3125,587,587,587,587,541,541,2723,563,563,563,2725,587,587,587,2727,2728,0,0,0,0,0,0,0,172032,172032,172032,172032,172032,172032,172032,172032,1,0,0,2746,0,2747,0,0,0,0,0,0,0,0,0,0,0,1175,0,0,0,0,0,0,0,0,2762,0,0,0,0,0,0,0,0,0,0,0,1192,0,1195,0,0,2811,541,2812,541,541,541,541,541,541,541,541,541,541,541,541,541,1804,541,541,541,541,541,2849,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,2255,563,2858,563,2859,563,563,563,563,563,563,563,563,563,563,563,563,563,3086,563,563,587,587,2907,587,2908,587,587,587,587,587,587,587,587,587,587,587,3139,587,3141,587,587,0,0,0,2983,0,0,0,0,0,0,0,0,0,0,0,0,2073,0,0,0,0,0,3381,0,0,0,0,0,3180,0,0,0,3390,0,0,0,0,0,0,1659,0,0,0,0,0,0,0,0,0,0,114688,0,241664,258048,0,0,3430,587,587,587,587,587,587,587,587,587,3439,587,587,587,541,563,563,563,563,2303,563,563,563,563,563,563,563,563,563,563,563,26028,0,587,587,587,541,541,541,541,3518,541,541,541,541,541,541,541,541,541,563,563,563,3232,563,563,563,563,563,563,3531,563,563,563,563,563,563,563,563,563,563,587,587,587,3357,587,587,587,587,587,3545,587,587,587,587,587,587,587,587,587,587,0,0,0,0,0,0,3637,541,541,541,541,541,541,3643,563,563,563,563,3647,563,563,587,587,587,587,587,3653,587,587,0,0,0,0,3635,0,541,541,541,541,541,541,541,563,2724,563,563,587,2726,587,587,0,0,0,0,0,0,0,0,3607,0,541,541,541,541,0,3656,0,3658,541,541,541,541,541,541,563,563,563,563,563,563,937,563,563,563,563,563,563,563,0,0,0,0,394,395,0,396,0,0,0,0,0,396,0,0,0,0,0,331,332,333,0,0,0,0,0,0,0,0,0,560,583,560,583,560,560,583,401,0,0,0,0,0,368,376,404,0,0,0,0,0,368,0,0,396,0,0,0,0,0,351,0,0,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2744,409,411,0,0,368,376,0,69632,73728,0,0,0,0,427,65536,0,0,0,0,0,2044,2045,0,0,0,0,0,0,0,0,0,361,0,0,0,0,0,361,427,427,437,0,427,0,411,427,456,0,0,0,0,0,0,0,0,106496,0,106496,0,0,0,0,106496,396,0,409,0,497,497,0,497,497,497,497,497,497,497,497,523,523,523,523,523,456,456,456,456,531,456,456,532,456,523,537,523,523,523,537,523,523,523,523,539,557,580,557,580,557,557,580,557,604,580,580,580,580,580,580,580,604,604,604,557,604,604,604,604,604,604,604,604,580,580,618,623,604,623,629,1,0,0,0,643,0,0,0,0,0,0,0,0,0,0,0,0,2101,0,0,0,783,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2757,0,0,0,802,0,0,0,0,0,0,0,0,0,0,0,0,2129,0,0,0,587,587,587,1023,1025,587,587,587,587,587,587,587,587,587,587,587,3275,587,587,587,587,0,0,0,0,1096,0,0,1098,0,0,0,0,0,0,0,0,0,1630,0,0,0,0,0,1636,0,0,0,0,1111,0,0,0,0,0,0,0,0,0,0,0,1207,0,0,0,0,1098,1227,0,0,0,0,0,0,1234,0,0,0,0,0,0,0,0,155648,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,0,0,0,0,1239,1248,0,0,0,0,0,0,1681,0,0,0,0,0,0,1687,0,1689,0,0,0,0,1239,1269,1270,0,1239,0,541,541,541,541,541,541,541,3207,3208,541,541,541,541,3212,3213,1278,541,541,541,1282,541,541,1293,541,541,1297,541,541,541,541,541,541,541,3054,541,541,541,541,541,541,541,541,541,1784,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,1370,563,563,563,1374,563,563,563,563,1847,563,563,563,563,563,563,563,563,563,563,563,2308,563,563,563,563,1385,563,563,1389,563,563,563,563,563,563,563,563,563,563,563,563,2295,563,563,563,563,563,563,1406,563,563,563,1410,563,563,563,563,563,563,563,563,2901,563,563,0,0,587,587,587,587,587,587,1462,587,587,587,1466,587,587,1477,587,587,1481,587,587,587,587,587,3434,587,3436,587,587,587,587,587,587,541,563,587,1502,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3128,587,0,1622,0,0,0,0,0,0,0,0,0,0,0,0,1635,0,0,0,0,0,2067,0,0,0,0,0,0,0,0,0,2076,1637,0,0,0,1641,0,0,0,1645,0,0,0,1649,0,0,0,0,0,0,2056,0,2057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1676,0,563,563,1844,563,563,563,563,563,563,563,563,563,563,563,563,563,3540,587,587,1958,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3127,587,3129,587,587,2010,587,587,587,587,1749,1940,1844,541,541,541,541,563,563,917,563,563,563,934,563,563,948,563,563,563,563,563,1895,563,563,563,1900,563,563,563,563,563,563,1914,563,563,563,563,26028,0,587,587,587,0,2118,0,0,0,0,0,0,2125,0,0,0,0,0,0,0,0,184726,184932,184932,184932,0,184932,184932,184932,0,0,2159,0,541,541,2162,541,541,541,541,541,541,541,541,541,541,2833,541,541,541,541,541,541,541,2227,541,541,541,541,541,541,541,541,541,541,541,0,0,563,2855,563,563,563,0,0,563,563,2246,563,563,563,563,563,563,563,563,563,563,563,3255,563,563,563,563,563,563,2314,563,563,563,563,563,563,563,563,563,563,563,0,0,587,2904,587,0,0,587,587,2333,587,587,587,587,587,587,587,587,587,587,587,3440,587,587,541,563,587,587,587,587,2390,587,587,587,587,587,587,587,587,587,587,587,2928,587,587,587,587,587,587,587,587,2401,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,1064,541,541,905,541,1069,563,563,978,541,541,541,2567,541,541,541,541,541,541,541,541,541,541,541,541,900,541,541,541,2698,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3277,587,587,0,2759,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1716,0,541,2827,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1758,541,563,2874,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2285,563,587,587,587,2923,587,587,587,587,587,587,587,587,587,587,587,587,2382,587,587,587,0,0,2993,0,0,0,0,0,0,0,0,0,0,0,0,0,2433,0,2435,3171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2771,3202,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2577,3225,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,2888,563,563,563,563,563,563,563,563,3241,563,563,563,563,563,563,563,587,587,587,3282,587,587,587,587,587,587,587,587,587,541,587,563,2018,541,541,541,2022,563,541,3289,563,3291,587,3293,3294,0,0,0,0,3298,0,0,0,0,0,0,0,1134592,0,365,0,0,0,1134592,0,0,0,1134592,1134592,0,0,1134592,0,0,1134592,0,0,0,3311,0,0,0,0,3315,0,0,0,0,0,0,0,0,0,1725,0,0,0,0,0,0,3318,0,541,541,541,3320,541,541,541,3323,541,541,541,541,541,541,541,1751,541,541,541,541,541,541,541,541,541,2586,0,563,563,563,563,563,3338,563,563,563,3341,563,563,563,563,563,563,563,563,563,563,563,26028,1921,587,587,587,587,3360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3554,0,0,3403,541,3405,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3075,563,563,3418,563,3420,563,563,563,563,563,563,587,587,587,587,587,587,587,3596,587,3598,587,587,0,0,0,0,3560,0,0,0,0,541,541,541,541,541,541,541,541,541,2169,541,541,541,541,541,3574,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1417,3586,563,563,563,587,587,587,587,587,587,587,587,587,587,3599,587,0,0,0,853,1e3,926,849,1065,894,541,541,922,1070,967,563,0,587,587,587,587,587,78115,0,0,0,0,0,0,0,0,0,365,0,305,0,0,0,0,3611,541,541,541,541,541,541,541,563,563,3617,563,3618,563,563,563,563,587,587,587,587,3594,587,587,587,587,587,587,587,541,541,563,563,587,587,3378,0,0,410,356,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,2122,0,0,0,0,0,0,0,0,0,0,304,304,0,0,0,0,0,0,354,0,0,0,356,0,0,473,473,473,473,473,473,473,478,473,473,473,473,473,473,473,473,473,473,473,478,473,484,473,0,0,473,0,0,0,0,0,0,0,0,524,528,528,528,528,473,473,473,473,473,473,473,478,473,528,524,528,528,528,524,528,528,528,528,540,558,581,558,581,558,558,581,558,605,581,581,581,581,581,581,581,605,605,605,558,605,605,605,605,605,605,605,605,581,581,619,624,605,624,630,1,0,0,0,0,644,0,0,0,0,0,0,0,0,0,0,0,1606,0,0,0,0,688,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,2138,0,0,0,0,0,0,0,0,0,0,0,2768,0,0,0,0,0,0,0,738,0,0,0,644,738,0,744,745,644,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,2058,0,0,0,0,0,0,0,0,799,0,804,0,0,0,0,0,0,804,0,0,0,0,0,644,0,0,0,799,0,804,0,790,0,819,0,0,0,665,0,0,0,0,819,0,0,0,0,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,2767,0,0,0,0,0,0,0,644,0,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,541,563,541,563,541,541,563,0,0,790,790,0,644,0,0,790,804,842,0,541,848,541,541,541,541,541,2839,541,541,541,2842,541,2844,541,541,541,541,541,541,879,541,884,541,891,541,894,541,541,908,541,541,867,871,877,541,882,541,541,541,541,541,899,541,541,541,541,541,541,2852,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,2256,563,563,563,972,563,563,563,563,563,0,587,587,995,587,587,587,587,587,2687,587,587,587,587,587,587,587,587,587,587,2937,587,587,587,587,587,587,587,1014,1018,1024,587,1029,587,587,587,587,587,1046,587,587,587,587,587,1026,587,1031,587,1038,587,1041,587,587,1055,587,1149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2799,0,0,0,1200,0,0,0,0,0,1205,0,0,0,0,0,0,0,1714,0,0,0,0,0,0,0,0,0,2140,2141,0,0,2143,0,0,1099,0,0,0,1230,0,1232,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,1240,0,0,0,0,0,0,0,0,0,0,1246,0,1249,1200,0,0,0,0,0,2427,0,0,0,0,0,0,0,0,0,0,336,337,0,0,0,0,1230,1252,0,1255,0,0,0,0,0,1130,0,0,0,0,1264,0,0,1149,1264,0,1271,541,541,541,541,1277,1360,914,1362,563,563,563,563,563,1369,563,563,563,563,1375,563,563,563,563,1862,563,563,563,563,563,563,563,563,563,563,563,3084,563,563,563,563,563,563,563,1407,563,563,563,563,1412,563,563,563,563,563,563,563,2900,563,563,563,0,0,587,587,587,563,1419,563,563,563,1426,1428,563,563,563,563,563,563,563,563,563,3346,563,563,563,563,563,563,587,587,1461,587,587,587,587,1467,587,587,587,587,587,587,587,587,2663,587,587,587,587,587,587,587,587,587,1488,587,587,587,587,587,587,587,587,587,587,1499,587,587,587,587,1463,587,587,587,587,587,1475,587,587,587,587,587,587,2014,541,587,563,1791,541,2020,541,1886,563,587,587,1504,587,587,587,587,587,587,587,587,1511,587,587,587,1518,1520,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2396,2397,2398,587,587,1542,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2862,563,2865,563,563,563,563,2870,563,563,563,563,587,587,587,587,587,1079,0,0,1563,0,0,0,1569,0,0,0,0,0,376,0,0,0,0,368,0,385,0,351,0,0,1575,0,0,0,1581,0,0,0,0,0,0,0,0,0,0,303,303,0,0,0,0,1592,1593,0,0,0,0,0,1599,0,0,0,0,0,0,0,0,0,2098,0,2100,0,0,0,0,0,1638,0,0,0,0,0,0,0,1646,1647,0,0,0,0,0,0,0,3197,0,0,0,0,0,0,3200,0,0,1654,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2038,0,1690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3005,0,1706,1707,0,0,0,1710,0,0,0,0,0,1714,0,0,1717,0,0,1730,0,1732,1706,541,541,541,541,541,541,541,541,541,541,541,2547,541,541,541,541,541,1744,541,541,541,541,1750,541,541,541,541,541,541,541,541,541,541,3220,541,541,541,541,541,541,1761,541,541,541,541,1765,541,541,541,541,541,541,541,541,541,541,3335,541,541,563,563,563,541,1776,541,541,541,1781,541,541,541,541,541,541,541,541,541,541,541,2559,541,541,541,541,1808,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,1376,563,0,587,587,1046,587,587,78115,1079,0,0,0,0,0,0,0,0,225890,225890,225890,225890,225741,225890,225890,225890,0,563,563,563,563,563,563,563,563,563,563,563,563,1839,563,563,563,563,1877,563,563,563,563,563,563,563,563,563,563,563,2869,563,563,563,563,563,563,1845,563,563,563,563,563,563,563,563,563,563,1856,563,563,563,563,1894,563,563,563,1898,563,563,563,563,563,563,563,1450,563,26028,1360,988,1454,587,587,587,563,563,1860,563,563,563,563,563,563,563,563,563,563,1871,563,563,563,563,1911,1913,563,563,563,563,563,26028,0,587,587,587,587,587,1506,587,587,1508,587,587,587,1512,587,587,587,0,1286,1470,1378,541,541,541,1549,541,563,563,563,1553,563,1876,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2297,2298,563,563,587,2027,587,587,0,0,0,0,0,0,0,0,0,0,3511,0,3513,0,541,0,0,0,2080,2081,0,0,2083,2084,0,0,0,0,0,0,0,0,286720,0,0,0,0,0,0,0,0,0,286720,286720,0,286720,286720,1,0,0,0,2106,0,0,0,0,2109,2110,0,0,0,0,0,0,0,2069,0,0,0,0,0,0,0,0,0,541,564,541,564,541,541,564,541,541,541,541,2175,541,541,2179,541,541,541,2183,541,541,541,541,541,541,1347,541,541,541,541,541,541,541,541,541,563,563,3231,563,563,563,563,2225,541,541,541,541,2230,541,541,541,541,541,541,541,541,0,0,0,0,0,386,0,69632,73728,0,0,0,0,0,65536,0,2242,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2325,0,563,563,563,2260,563,563,2264,563,563,563,2268,563,563,563,563,563,587,587,3625,587,3626,587,587,587,587,587,587,1493,587,587,587,587,587,587,587,587,587,2380,587,587,587,587,587,587,2312,563,563,563,563,2317,563,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,2655,587,587,587,2329,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2680,587,587,587,587,587,587,2347,587,587,2351,587,587,587,2355,587,587,587,587,587,587,2925,587,587,587,587,587,587,587,587,587,1471,587,587,587,587,587,587,2399,587,587,587,587,2404,587,587,587,587,587,587,587,587,541,587,0,0,0,854,1001,927,541,541,541,541,910,563,563,563,563,563,1848,563,563,563,563,563,563,563,563,563,563,3097,563,3099,563,563,563,0,0,0,0,2439,0,0,0,0,0,0,0,0,0,0,0,1616,0,0,0,0,0,0,2475,0,0,0,2479,0,0,0,0,0,0,0,0,0,365,0,0,0,0,0,0,541,2525,541,541,541,541,541,541,541,541,541,541,2533,541,541,541,541,541,541,3053,541,541,3055,541,541,541,541,541,541,541,1311,541,541,541,541,541,541,541,541,541,1753,541,541,541,541,541,541,541,2551,541,541,2553,541,2554,541,541,541,541,541,541,541,2561,541,541,541,541,876,878,541,541,541,541,541,541,541,541,541,541,541,1353,541,541,541,541,541,2565,541,541,541,541,541,541,541,541,541,541,541,541,2576,541,541,541,541,1283,541,541,541,541,541,541,541,541,541,541,1304,0,0,0,563,563,2589,563,563,563,563,563,563,563,563,563,563,3537,563,563,3539,563,587,587,563,2597,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2326,0,563,563,2612,563,563,563,2615,563,563,2617,563,2618,563,563,563,563,563,2877,2878,563,563,563,563,2881,563,563,563,563,563,1863,563,563,563,563,563,563,563,563,563,563,3356,587,587,587,587,587,563,563,563,563,2626,563,563,2630,563,563,563,563,563,563,563,563,3345,563,563,563,563,563,563,563,563,563,563,563,2641,2642,563,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,2683,587,2684,587,587,587,587,587,587,587,587,2692,587,587,2696,587,0,0,0,1061,1062,1063,851,541,898,902,1068,924,563,971,975,2733,2734,0,0,2737,2738,0,0,0,0,0,0,0,0,0,0,306,307,0,0,0,0,0,2788,0,2790,0,0,0,0,0,0,0,0,0,0,0,0,2457,0,0,0,0,0,0,0,2803,0,0,0,0,0,0,541,541,541,541,541,541,541,3033,541,541,2826,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2825,2873,563,563,563,563,563,563,563,563,563,563,563,563,2883,563,563,563,563,1912,563,563,563,563,563,563,26028,0,587,587,587,587,587,2934,587,587,587,587,587,587,587,2940,587,587,587,587,2922,587,587,587,587,587,587,587,587,587,587,587,587,2932,0,2982,0,0,2984,0,0,0,0,0,0,0,0,0,0,0,1632,0,0,0,0,0,0,0,0,2995,0,0,2998,0,2999,0,0,0,0,0,0,0,2096,0,0,0,0,0,0,0,0,0,562,585,562,585,562,562,585,541,3049,541,541,541,541,541,541,541,541,541,541,541,541,541,3061,3089,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2621,563,3103,563,563,563,563,563,587,587,587,3111,587,587,587,587,587,587,1507,587,587,587,587,587,587,587,587,587,1983,1984,587,587,587,587,587,587,3131,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2929,587,587,587,587,3145,587,587,587,587,587,541,587,563,541,541,563,563,587,587,0,2962,0,0,0,0,0,0,0,0,0,2507,0,0,0,0,0,0,0,0,0,0,0,3163,0,0,0,0,0,0,0,3169,0,0,0,0,0,438,0,0,0,0,0,0,0,0,0,0,0,2142,0,0,0,0,541,3226,541,541,541,541,541,541,541,563,563,563,563,563,563,563,3095,563,563,563,563,563,563,563,563,2306,563,563,563,563,563,563,563,563,563,3236,563,563,563,563,563,563,563,563,563,563,563,563,563,2309,2310,2311,563,563,3246,563,563,563,563,563,563,3252,563,3254,563,563,563,563,563,1392,563,563,563,563,563,563,563,563,563,563,1853,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,3265,587,587,587,587,587,2703,587,587,587,587,587,587,587,587,587,587,2950,587,587,541,587,563,587,587,3281,587,3283,587,587,587,587,587,587,587,587,541,587,563,3153,541,3155,563,3157,587,0,0,0,3301,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,3014656,3207168,0,2691072,0,0,3215360,0,0,3309,0,0,0,0,0,3314,0,0,0,0,0,0,0,0,0,365,0,0,0,0,131072,131072,563,563,3339,563,563,563,3343,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,1456,587,587,587,587,3362,587,587,587,587,587,587,587,587,587,587,587,587,3126,587,587,587,587,587,3371,587,587,587,587,541,541,563,563,587,587,0,0,0,3296,0,0,0,0,0,0,3557,3558,0,0,0,0,0,0,0,541,541,541,3568,541,541,541,541,541,1284,541,541,541,541,541,541,541,541,541,1303,563,563,3588,563,587,587,587,3593,587,587,587,587,587,587,587,587,2690,587,587,587,587,2694,587,587,3601,587,0,0,0,0,0,3604,3605,3606,0,3608,541,541,541,541,541,541,1813,541,541,541,541,1819,541,541,541,1360,563,3621,3622,563,563,587,587,587,587,587,587,587,587,587,3629,3630,563,563,587,587,587,587,3679,0,541,3680,563,3681,587,3682,0,541,541,541,541,1345,541,541,541,541,541,541,541,541,541,541,541,541,2560,541,541,541,358,359,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,1174,0,0,0,0,0,0,0,0,392,0,0,0,0,0,0,0,0,0,0,0,0,2495,0,0,0,474,474,474,488,0,0,488,359,359,359,510,359,359,359,359,474,559,606,582,582,582,582,582,582,582,606,606,606,559,606,606,606,606,606,606,606,606,582,582,559,582,606,582,606,1,541,541,868,541,541,541,541,541,541,541,541,541,541,904,541,541,541,541,541,2851,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,2254,563,563,563,587,1015,587,587,587,587,587,587,587,587,587,587,1051,587,587,587,587,587,2909,587,587,587,587,587,587,2917,587,587,587,587,587,1527,587,587,587,587,587,587,587,587,1538,1539,1197,0,0,0,0,0,0,0,1197,0,0,0,0,0,0,0,0,1134592,0,0,1134592,0,0,0,0,0,0,0,0,0,0,0,0,0,2980,0,0,541,541,1280,541,541,541,1289,541,541,541,541,541,541,541,541,541,541,3524,541,541,3526,563,563,1360,914,563,563,563,563,563,563,563,563,563,1372,563,563,563,1381,587,587,1543,0,1289,1473,1381,541,541,541,541,541,563,563,563,563,563,2898,563,563,563,563,563,0,0,587,587,587,587,587,587,2337,587,587,587,587,587,587,587,2352,587,587,587,587,2357,587,587,587,563,587,587,587,587,587,1079,0,0,0,1564,0,0,0,1570,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,2871296,0,0,2424832,0,0,0,1576,0,0,0,1582,0,0,0,0,0,0,0,0,0,365,0,0,0,0,155648,0,0,1606,0,0,0,0,0,0,0,1614,1615,0,0,0,0,0,0,0,3385,3180,0,0,0,0,0,0,0,0,2097,0,0,0,0,0,0,0,0,2070,0,0,0,0,2074,0,0,0,0,0,0,1625,0,0,0,0,0,0,0,0,0,0,0,1648,0,0,0,0,563,1891,563,563,563,563,563,563,563,563,1902,563,563,563,563,563,1408,563,563,563,563,563,563,563,563,563,563,1867,563,563,563,563,563,587,1975,587,587,587,587,587,587,587,587,587,587,587,1987,587,587,587,587,1490,587,587,587,587,587,587,587,587,587,587,587,2381,587,587,587,587,2008,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,918,563,563,563,563,563,563,563,563,563,563,563,2634,563,563,563,563,0,2243,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2637,563,0,2330,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3276,587,587,587,0,0,2451,0,0,0,0,0,0,0,0,0,0,0,0,0,2471,0,2472,0,0,0,563,563,563,563,563,563,563,2593,563,563,563,563,563,1424,563,563,563,563,563,563,563,563,563,563,2293,563,563,563,563,563,563,587,2659,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2912,587,587,2916,587,587,587,587,0,0,0,0,0,2776,0,0,0,0,0,0,0,0,0,0,372,0,0,373,0,0,563,2895,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,2335,587,587,587,587,587,587,587,587,587,2947,587,587,587,587,587,541,587,563,587,2906,587,587,587,587,587,587,2913,587,2915,587,587,587,587,587,587,2935,587,587,587,587,587,587,587,587,587,2408,587,587,587,587,2177,2349,587,587,587,2944,587,587,587,587,587,587,587,587,587,541,587,563,563,563,563,563,563,563,587,587,587,541,587,587,587,0,541,587,563,541,1547,541,541,1550,563,1551,563,563,0,0,0,0,0,3561,0,0,0,541,541,541,541,541,541,541,541,3464,541,3466,3467,541,3469,541,541,541,541,3575,541,563,563,563,563,563,563,563,563,563,563,3423,563,563,563,3426,587,587,587,587,563,3587,563,563,587,587,587,587,587,587,587,587,587,587,587,3600,587,587,587,587,3670,587,0,0,0,0,541,541,541,541,563,563,919,925,563,563,563,563,943,563,563,563,563,563,563,3353,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,3267,0,0,360,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,331,0,0,0,0,0,0,0,331,0,0,69632,73728,0,419,419,0,0,65536,419,0,0,0,0,375,0,0,0,0,0,0,0,0,0,0,0,1663,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,0,0,0,0,0,2511,0,0,0,0,0,370,0,0,370,0,0,0,0,0,0,0,0,0,0,0,0,0,2496,0,0,560,607,583,583,583,583,583,583,583,607,607,607,560,607,607,607,607,607,607,607,607,583,583,560,583,607,583,607,1,541,863,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1772,541,1010,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3123,587,587,587,587,587,587,587,563,1386,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2871,563,0,0,2760,0,0,0,0,0,0,0,0,0,0,0,0,0,2755,0,0,0,0,0,0,0,2985,0,0,0,0,0,0,0,0,0,0,406,0,0,0,0,0,0,0,0,0,3302,0,3303,0,0,0,0,3180,0,0,0,0,0,0,348,0,0,0,0,0,0,0,0,0,0,2801664,0,0,0,0,2142208,0,0,0,361,362,363,364,0,0,365,0,293,0,0,0,0,0,0,348,349,350,0,0,0,0,0,0,0,0,3180,0,3388,0,0,0,0,0,0,362,0,361,0,0,0,69632,73728,0,0,0,0,428,65536,0,0,0,0,0,2463,0,0,0,0,0,0,0,0,0,0,0,2807,541,541,541,541,428,428,0,0,428,0,362,428,457,0,0,0,0,0,0,0,0,1159168,0,1159168,0,0,0,0,1159168,0,0,0,0,498,498,0,505,505,505,505,511,512,505,505,525,525,525,525,525,457,457,457,457,457,457,457,457,457,525,525,525,525,525,525,525,525,525,561,584,561,584,561,561,584,561,608,584,584,584,584,584,584,584,608,608,608,561,608,608,608,608,608,608,608,608,584,584,620,625,608,625,631,1,563,563,563,973,563,563,563,563,563,0,587,587,587,587,587,587,1963,587,587,587,587,587,587,587,587,587,3137,587,587,587,587,587,587,587,0,2105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2052,0,0,0,0,0,541,2161,541,541,541,541,541,541,541,541,541,541,541,3336,541,563,563,563,0,0,563,2245,563,563,563,563,563,563,563,563,563,563,563,563,2882,563,563,563,0,0,587,2332,587,587,587,587,587,587,587,587,587,587,587,587,3286,587,587,587,587,541,587,563,2550,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2210,541,541,541,2579,541,541,541,541,541,541,541,541,541,541,0,0,0,0,0,0,2068,0,0,0,0,0,0,0,0,0,365,0,0,122880,122880,0,0,2711,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,541,2021,563,563,562,609,585,585,585,585,585,585,585,609,609,609,562,609,609,609,609,609,609,609,609,585,585,562,585,609,585,609,1,0,0,0,705,0,0,0,0,0,0,0,0,0,0,0,0,2742,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2075,0,541,864,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,0,1011,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2689,587,587,587,587,587,587,587,587,2716,587,587,587,541,587,563,541,541,1136,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,2095,0,0,0,0,0,0,0,0,0,0,2375680,0,0,0,0,0,587,1503,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2911,587,2914,587,587,587,587,2919,587,563,587,587,587,587,587,1079,1560,0,0,0,1566,0,0,0,1572,0,0,0,1578,0,0,0,0,0,0,0,0,0,0,0,0,2754,0,0,0,563,563,563,563,2600,563,563,563,563,563,563,563,563,563,563,563,26028,1922,587,587,587,0,0,0,0,647,0,0,0,0,0,0,743,541,541,541,541,541,541,2178,541,541,541,541,541,541,541,541,541,0,2242,563,563,563,563,563,0,0,1594,0,0,0,0,0,0,0,0,0,0,0,0,0,2770,0,0,563,563,563,1846,563,563,563,563,563,563,563,563,563,563,563,563,3085,563,3087,563,2187,541,2189,541,541,541,541,541,541,541,541,541,541,541,541,541,1821,541,1360,0,0,563,563,563,563,2248,563,563,563,563,563,563,563,563,563,2305,563,563,563,563,563,563,563,563,563,0,587,587,994,587,587,587,563,2274,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2894,563,587,2361,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3121,587,587,587,587,587,587,587,587,563,563,541,563,587,563,587,1,2623,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3101,563,563,563,563,2651,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,2340,587,587,587,587,0,0,3179,0,0,0,0,0,0,0,0,0,0,0,0,0,2798,0,0,3245,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3257,563,1134592,0,1134592,0,0,0,1134592,1135008,1135008,0,0,0,0,0,1135008,0,0,0,0,0,2478,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,3307,0,1134592,0,1134592,1134592,0,0,0,0,1135203,1135203,1135203,1135203,1134592,1135203,1135203,1135203,1135203,1135203,1135203,1135203,0,1134592,1134592,1134592,1134592,1135203,1134592,1135203,1,0,0,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,988,2125824,2125824,2125824,2125824,1147355,1147355,1147355,1147355,458,458,1147355,458,458,458,458,458,458,458,458,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,0,0,0,0,0,0,0,0,458,0,0,0,0,0,1147355,1147355,1147355,1147406,1147406,1147355,1147406,1147406,1,12290,3,0,0,0,0,249856,0,0,0,249856,0,0,0,0,0,0,0,69632,73728,0,0,0,0,425,65536,0,1159168,0,0,1159168,0,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,0,0,0,0,0,0,0,0,1159168,0,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1,12290,3,78115,293,0,0,0,0,0,0,0,0,0,0,0,0,131072,131072,0,0,1163264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3170,0,913,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,1453,2125824,2125824,2125824,2125824,106496,0,106496,106496,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,106496,0,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,0,0,0,0,0,0,0,0,2183168,0,0,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,0,0,541,541,541,1275,541,541,0,0,0,3117056,0,0,0,0,0,0,0,0,0,0,0,0,2979,0,0,0,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,0,2437120,0,0,0,0,0,0,2107,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,0,0,2875392,0,0,0,0,0,0,0,0,0,0,2834432],r.EXPECTED=[1039,1047,1048,1046,1042,1052,1056,1060,1064,1068,1446,1074,2948,2053,1092,1446,2490,1670,1213,1080,1084,1085,1446,1089,1446,1446,2818,1098,1103,1108,1187,1181,1181,1114,1118,1446,1933,1123,1446,1136,1098,1098,1204,1108,1108,1171,1181,1181,1130,1134,1446,1446,1140,1446,1147,1098,1152,1108,1108,1109,1181,1181,1182,1158,1446,1446,1238,1668,1098,1148,1108,1108,1206,1181,1181,1165,1446,3130,2162,1098,1099,1108,1177,1181,1215,1219,2143,1136,1098,1186,1110,1181,1191,3130,2153,1099,1108,1180,1217,2659,2819,1197,1173,1201,1104,1235,1210,1224,1154,1228,1232,1168,1243,1247,1251,1255,1259,1261,1266,1262,1270,1274,1278,1282,1286,1290,1220,1295,1890,1296,1446,1446,1446,1446,1375,2489,1446,1446,1446,2385,1446,1446,1446,1446,1446,1446,1446,1446,1076,1446,1446,1446,1446,2986,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1300,1304,1305,1309,1405,1315,1318,1322,1326,1330,1446,1446,1804,1334,2315,1338,2350,1142,1143,1342,1346,1446,1446,2834,1352,1362,1369,1446,1126,1446,2386,1379,1446,1384,1390,1446,2987,2588,1396,2688,1457,1446,1518,1446,1446,2269,1446,1446,1446,1402,1446,1441,1897,1409,1413,1446,1447,1419,1446,1447,1419,1446,1446,1193,1446,2988,3136,2482,1446,2617,1425,1446,1448,1431,1446,1918,1446,2648,1436,1457,1348,1457,1380,1440,1446,1445,3050,1452,1446,1456,1311,1446,1916,2325,1463,2125,1347,1472,2317,1909,1478,3010,2343,2076,2746,2758,1482,2765,2077,1799,1486,2744,1493,1358,1446,1446,2131,1446,2559,1386,1365,1497,1501,1505,1509,1515,2369,1569,2450,1522,2538,1526,1530,1536,2479,2088,1457,1971,1540,1544,1548,1552,1557,1446,2103,1446,1532,1446,2479,2082,1563,1568,2137,1573,1577,3026,1446,1446,2116,1446,1446,3027,1446,1586,1938,1584,2123,1647,1590,1432,1594,1446,2517,1600,1446,2517,1600,1446,2872,1606,1612,1616,1620,1626,1446,1239,1633,1446,1596,1640,3118,2782,1645,1651,1863,1446,1863,1446,1602,1446,2675,2173,1655,2685,1559,1866,2685,3124,1659,1665,2904,2903,3055,2673,1674,1678,3047,2266,2239,1682,1686,1690,1694,1698,2892,1702,1715,1719,1723,1727,1731,1446,2332,1773,1737,1744,1748,1751,1755,1758,1446,1772,2979,1777,1781,2506,1788,1792,1635,1636,1446,2668,2874,1796,1808,2784,1815,1819,1823,2304,1828,1446,2430,1446,1446,2334,1853,2583,1834,1843,1446,2069,1446,1446,1954,1446,1446,2070,1446,1446,1622,1608,1847,1851,1857,1641,1871,1446,2225,1956,1446,2225,1956,1446,2374,1885,1876,1811,1446,1883,1446,1947,1889,1446,1511,1446,1291,2287,1894,1901,1906,1446,1906,1446,1913,1446,1740,1922,1446,1932,1733,1446,1932,1830,1094,1732,1446,1937,2066,2439,2671,1945,1942,2455,1489,2323,1951,1709,1711,1629,1161,1962,1968,1977,1980,1984,1446,1119,1994,1999,2003,2007,2011,2015,2019,2023,1986,1872,2093,1928,2028,2032,2036,1802,2040,1446,1446,2044,1580,2050,2059,2063,2074,2046,1446,2024,2081,1446,2086,1446,1446,1988,2092,2097,2109,2113,1446,2120,1446,1446,2129,1446,1558,2135,1446,1446,2141,2535,2866,2147,1446,1990,1446,1446,3096,1446,1446,3096,1446,1446,1466,2151,2157,2204,1458,2161,1446,2914,1446,1446,1764,1446,3053,2166,2170,1446,2182,1446,2187,1446,2916,1957,2192,2202,2305,1446,2210,2496,1824,3112,2217,1761,1459,1558,2224,2229,2841,2969,2682,2815,2233,2248,2236,2243,1837,1839,2247,2252,2100,1446,1446,1446,1446,2918,1766,2256,2260,2273,2277,2281,2284,1446,2889,1902,2985,2524,2433,2299,2576,2212,2213,2303,1415,1457,2309,1958,2321,2329,1446,2976,1446,1398,1446,1553,2338,2342,2751,1446,2347,2503,2354,2358,1558,2363,1446,1995,2368,1446,1421,2364,2373,2733,2378,2383,2390,3044,1446,2715,1446,1446,1860,1446,1446,1860,2719,2733,2397,2176,2401,1946,2461,1446,1446,2405,1446,1473,2717,2413,2417,2427,2437,3061,1446,2105,1446,1973,2407,2443,2447,2454,2459,2379,1446,2465,2472,2476,2486,2511,2494,2701,2409,2500,2510,2516,2521,2528,2220,2532,2542,2546,2198,2312,2550,2554,2563,2567,2571,2575,1446,2580,2592,2596,2600,2604,2608,2612,2616,1446,2621,2393,1372,2628,2632,2636,2640,2652,3103,1446,2708,2468,2656,2665,2679,2692,1558,2699,1446,2705,1446,2998,2712,1446,2723,2624,1768,1879,3159,1446,2205,2727,1446,1468,2732,1446,2206,2982,1446,3004,2737,2741,3109,2750,1446,2755,1446,1446,2762,1446,1446,2762,2769,3037,2775,2420,2779,1446,2788,1446,1446,2795,1446,1427,2801,3020,2805,2646,1446,2812,1446,2809,1446,3067,2853,2823,2643,2183,2827,2863,2512,2832,2838,1707,1070,2359,2845,2851,2857,1964,1474,3084,2557,2878,2955,3090,2882,2293,2295,2886,2896,2900,2908,2912,1446,1446,1446,2922,2926,2930,2934,2938,2942,2946,1446,2055,2952,1355,2791,2178,2959,1867,2963,1784,2967,1446,2973,2423,2992,2996,3002,1446,2728,1446,1446,3008,1446,3014,3018,1446,3024,2188,3031,3147,1446,1446,2694,1446,1446,2847,1446,1446,2695,3035,1446,3041,3078,3141,3059,1446,1446,3065,1446,1446,3065,1446,1446,3071,1446,3075,1925,3153,1446,1446,3082,1446,1564,3088,1446,1661,3094,3100,2195,3116,1446,3122,1446,3128,1446,3134,1705,3140,2586,2797,1446,3145,2771,1392,3151,1446,3157,2290,2828,2661,2869,2422,3106,2860,2263,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1473,3163,3166,3170,3182,3186,3182,3189,3181,3182,3182,3182,3182,3177,3173,3193,3182,3197,3201,3204,3210,3214,3216,3206,3220,3224,3228,3232,3235,3239,3243,3729,3929,3929,3246,3929,3929,5383,3929,3929,3300,3929,3261,3562,3273,4078,3734,3929,3929,3929,3277,3287,3294,4847,3929,3250,3929,3929,3344,3929,4873,4873,4873,4873,3266,4873,4873,3564,3564,3567,3564,3564,3564,3564,3267,3256,3305,3562,3568,3335,4081,3929,3929,3929,3323,4919,3377,4693,3929,3252,3722,3750,3365,3315,3269,3334,4080,3732,3929,3929,3559,4873,5799,4692,3929,3929,3688,3929,3929,3560,4873,4873,4873,4195,4873,4873,4873,4874,3564,3267,3264,3331,3339,3929,3342,3929,3738,3256,3367,3317,3321,3560,4873,3564,3309,3256,3256,3365,3371,3564,3564,3564,3567,3256,3256,3256,3256,3327,4195,3564,3564,3564,3310,3365,3359,3929,3929,3813,3929,3564,3564,3564,3364,3929,5741,3559,4873,4194,3564,3564,3268,3256,4193,4873,3266,3564,3310,3256,3256,3256,3366,3348,3929,3929,3929,3505,3383,3256,3373,3766,3256,3384,3929,4872,4874,3564,3268,3256,3257,3373,4694,3929,3929,3929,3355,3566,3256,3321,4194,3565,3311,3560,3563,3384,3561,3319,3360,3388,3390,4109,3394,3401,3405,3429,3429,3429,3429,3424,3430,3412,3416,3420,3428,3434,3438,3442,3397,3446,3450,3453,3457,3460,3463,3465,3469,3473,3408,3477,3481,3485,3696,3498,4473,3929,3929,3929,3512,3511,3929,3929,3929,3517,4964,4966,3929,3523,3527,3929,3929,3929,3752,3534,3543,3929,3929,3850,3854,3578,3582,3586,3589,3590,3594,3597,3601,3604,3608,3611,3614,3618,3622,3626,4965,3648,3636,5178,3647,5820,3654,4257,3659,3929,3669,4219,3694,3703,3929,5714,3525,3929,3929,3929,3770,3790,3929,5539,3707,3929,3342,5695,3904,3929,3289,3290,3906,3929,4658,4464,5227,4306,3936,3718,3726,3743,3929,3375,3631,3929,3548,5050,5064,3749,3929,3929,3929,3836,3758,3298,3929,3929,3915,3927,4893,3528,3929,3929,3921,4548,5744,4281,3929,3929,3932,5019,3929,5587,5178,3929,3553,3557,3572,5826,3929,3929,4530,3789,3794,3929,3929,3972,4899,3798,3806,3929,3929,3972,5040,3817,3826,3929,3929,3972,5490,3785,3929,3929,3929,3869,4728,4203,3770,3790,4142,3929,3929,3929,3894,4001,3929,3929,3929,3929,3252,3798,4127,4203,3850,3854,4139,3744,3929,3929,3929,3844,5313,5832,4137,4141,3929,3650,3929,3929,4854,4858,4140,3929,3929,3929,3930,5557,3873,3929,3929,3883,3929,5107,3929,5107,4780,3929,4781,5020,3929,3929,3738,5109,3929,3290,3904,3940,3947,3946,3942,3951,3955,3956,3956,3960,3962,3963,3962,3967,3971,3929,3929,4017,4021,4708,3978,3988,3929,3683,3781,3802,3995,4392,3929,5597,5363,3530,3929,4135,4005,4013,3929,3929,4065,4070,4026,3929,3929,4026,3375,3929,3929,4049,4056,4576,3997,5403,5596,3929,3856,4795,3529,3929,3929,3929,3931,4061,3929,3929,3929,3972,4199,3911,3929,3929,3929,3974,5170,3929,3929,4704,3929,4075,5320,4248,5165,3855,4657,4085,3929,3690,4699,5178,3978,3251,3929,3929,4101,3929,5319,4247,5772,5010,4113,3981,3929,3929,4164,4148,4148,4120,3929,3929,4165,4115,4709,4132,3929,3929,4247,4459,5170,3929,3929,4706,3879,4572,4576,5321,4249,4655,3929,3929,4274,3929,3972,4146,4150,3929,3735,3929,3735,4154,4158,3929,3929,4396,3929,3929,3982,3929,3929,3929,4029,4107,3929,4706,3929,4366,4574,4181,5320,5850,4644,4180,5319,4886,4217,4208,4673,3929,3929,4424,5855,3279,5321,4215,3929,3766,4873,4873,3563,3564,4228,3929,4451,4182,4233,4305,4240,4273,4435,4246,4434,4245,4708,4241,3929,3699,4502,3698,4255,5609,4272,5609,4272,3699,5199,5610,4273,4253,3281,4246,4270,3929,3809,3929,4549,3737,3929,3896,3929,5021,3770,4271,3771,4182,5163,5161,3929,3283,5762,3710,4279,4279,4211,4127,4128,4405,3712,4286,3929,3929,3929,4052,3929,5548,3754,4301,3929,3842,3574,4534,4651,5125,3745,4537,4310,4314,4318,4319,4323,4327,4333,4334,4331,4338,4339,4339,4340,3929,3844,4827,3929,3846,3929,3929,4905,3929,3376,5780,4202,3929,3929,3929,4235,4524,5352,5187,4364,4473,3342,4273,3929,3888,5737,4840,4356,4374,4378,4842,5051,4864,3929,4387,4491,3929,4413,3929,3892,5107,3929,3665,3929,3929,4681,3640,4265,4472,3929,4802,3929,4518,3670,4266,4421,3929,4204,4203,3929,4718,4428,4432,3929,3929,3929,4451,4440,4445,3929,3929,4450,4541,4470,3929,3343,3929,3897,3929,4294,3929,4296,3929,5616,3929,5461,4463,3929,5347,4362,5468,4800,3929,3929,4457,4461,5243,3929,4484,3929,3931,5074,3929,3972,4166,4116,3929,3929,3929,4035,4737,3929,3929,3929,4505,3929,5347,4495,3929,3972,5410,5415,4015,4019,3929,3929,4457,4490,4499,3929,3929,3929,4624,5347,3929,4801,3929,3997,3929,5743,4160,3929,3929,3929,4628,3929,5704,4529,3929,3998,5353,5435,3929,5703,4528,3929,4e3,3929,3929,3999,3528,4505,5352,4800,3929,4007,4653,3929,4009,3929,4642,5697,3929,3929,3929,4695,4052,3929,3929,3929,4708,4545,3929,3929,3301,4450,3929,3929,3929,4734,3929,5303,3342,3929,4030,4480,3929,3929,3929,4516,4994,3894,3929,3895,3929,3929,3351,3892,3737,3735,3929,4039,3929,3929,4086,5090,3895,5020,3895,3737,5022,3736,3737,4554,4556,3929,3929,4638,4794,3929,3929,4668,4806,4689,3929,3929,3929,4752,4504,3929,3929,5097,4566,4022,5334,4383,5691,4570,4582,4586,4590,4594,4598,4602,4605,4608,4612,4614,4618,4634,4632,4634,4621,3929,3929,3929,4757,4725,4816,3929,4648,4662,4666,5081,4672,3929,5344,4398,4352,4678,3929,3929,4678,4687,5178,3929,3929,4745,4749,4210,3929,4965,4768,5739,3929,3929,3322,5689,3899,5181,4703,5110,5214,4713,4722,3929,4051,3558,3929,4028,4478,4500,3929,5400,4741,3929,3929,4780,3929,4780,4762,3929,3929,3929,4821,4756,4761,3929,3929,4818,4822,4505,3863,3867,3929,3341,3341,3929,4766,4294,3929,3899,3929,4066,3929,3929,4087,5091,3767,5433,4817,4683,4716,3929,5809,3929,4091,4095,3751,3972,4773,4777,3929,4107,3929,3929,4137,4141,4786,4775,3929,3929,4820,3910,4788,4777,3929,3929,4828,3972,3322,4792,3929,3929,4847,3929,5432,4816,4833,4799,3929,5147,3929,3929,4872,4873,4966,4295,4304,4814,4826,3929,3929,3929,4871,4674,3929,4708,3897,5180,5433,4832,3929,4159,3929,3377,3299,3929,4503,4708,3929,4837,3929,3929,3929,4913,5207,3929,3929,3929,4965,3929,5148,3929,4008,3929,4408,3929,4172,3929,4172,3900,5432,3628,3929,3929,3929,4856,4860,3844,5313,3929,3929,4982,3929,5086,3768,5434,3630,3929,4174,3929,4562,5312,3929,3929,3929,5003,4502,5148,4878,4885,4293,3929,3929,4296,3929,4296,3929,4229,5198,5520,3928,3929,3928,3897,4293,3929,3898,3929,5228,3899,3898,3929,4296,3929,5547,3519,4911,3929,5584,4917,3769,3929,3929,3929,4240,4273,3929,3779,3800,3744,4923,4927,4934,4935,4930,4939,4943,4949,4953,4945,4957,4957,4958,4962,3929,4247,4511,3929,3972,5871,3929,3983,3929,5572,5591,3929,4731,4359,5861,5581,4990,3929,3929,3929,5111,4846,5503,4707,5051,3929,4263,4465,3929,4282,3929,3929,3860,3929,5742,3929,3929,3737,3929,3894,5322,3929,5e3,5007,3507,3929,4290,3929,3929,4449,3929,5018,3929,3929,3642,5026,3929,3929,3929,5177,4628,3929,3300,3929,4346,3674,3681,3547,3929,3539,5030,5034,3929,3929,3929,5337,5040,3822,3929,3929,3641,5042,3929,3929,3929,5368,3643,3929,3929,3929,5405,5793,3929,3929,3929,5453,4626,3377,5052,3929,3929,3929,3721,4501,4368,3929,3546,3490,5496,5308,5793,3929,3929,5485,4370,3929,3929,5068,3972,5073,4863,3929,3513,4450,5122,3375,5406,3842,3929,3655,5793,3929,3739,4707,5781,3929,3990,3929,3929,4006,3299,4452,4369,3929,4439,4444,3929,3895,4547,3886,3929,5078,3929,3929,5048,5304,3929,5095,3929,5486,5051,4451,4368,3929,4474,4050,4057,4293,4450,3929,3929,5228,3929,5453,3929,3929,5072,4862,3929,5101,3929,3512,5742,3929,5241,5105,4986,3751,5323,3296,4502,4381,3929,4486,4034,3929,3684,3783,3744,5062,3929,3929,4209,3929,3929,3929,3560,3929,5118,3929,3929,5111,4852,4515,4382,5129,3929,4502,4176,3929,4350,5314,3549,3929,5797,3929,3929,3929,5526,5795,3929,3929,3929,5603,5136,5144,5227,4451,4236,3929,4975,3676,5063,4465,3744,4042,4464,5152,3929,4507,3865,3929,4121,5622,4297,4174,3342,5169,3342,5169,4514,3537,4561,4558,3929,4559,4453,3929,5213,4466,3929,4520,3929,3929,5170,4045,5196,5187,5174,4560,5185,4558,5193,5203,5211,5218,5221,5222,5226,3929,3929,3929,5725,3929,5232,4690,3929,4524,5352,3677,3929,3929,3929,5771,3929,5740,3929,4274,4848,5238,5247,5773,5254,5251,4704,3918,5260,5266,5262,5268,5272,5276,5280,5284,5287,5291,5294,5293,5298,5302,3929,3929,3929,5742,5425,3929,4694,5050,3546,3490,3494,3929,5318,3929,5327,3923,4464,4390,5227,3929,5816,5331,5341,3929,5782,3744,3929,4547,3770,3929,4547,3929,3736,5322,3929,5189,3929,3929,5189,5361,5367,3374,3929,4693,3929,3929,3829,3929,5372,3929,5411,3929,4704,4292,3929,3892,3929,3929,4517,5713,4819,4170,3929,5416,3991,3929,4708,4852,3929,4186,4190,3929,3765,3775,3800,5841,5084,3929,3929,5111,5157,3753,5377,5381,3929,3929,5117,3929,3929,5388,3821,3929,4708,5234,4550,3929,5393,5392,3929,4751,5041,3744,3929,3929,5048,5036,3929,5373,5397,4693,3501,3929,3929,3929,5766,4862,3929,3929,3929,5789,5048,4769,3378,3492,5429,4705,5779,3929,4781,4779,3929,4505,5110,3876,3929,3929,3929,5791,3972,5439,3839,3929,4815,3929,4778,5514,5443,3839,3929,4815,3929,5108,5841,5843,3929,3929,5139,3929,5050,5457,3492,4485,5465,3770,3878,3929,4821,3929,3929,4417,3929,3929,5472,5477,3929,4881,3929,5701,5473,5482,3929,3929,5140,3929,5478,3929,5420,3877,3546,5494,3714,3632,3929,5514,5508,3929,4907,5500,3929,4890,4880,3929,4193,4873,4873,4195,5742,3379,5773,3631,5525,3929,3929,3929,5870,5524,3760,3896,3929,5819,4519,5513,3488,5530,5351,3929,4708,4846,4159,3929,3929,3929,5155,5159,5336,5518,3761,3929,3929,5512,5536,4519,4522,3989,3929,3929,3929,4913,5518,3929,4964,4293,5179,5352,3929,3929,4125,3929,3929,4247,4402,4086,3353,3929,5556,5570,3929,5570,5578,3983,3929,5573,3929,4971,3751,3929,4253,3929,4261,5594,4522,3929,5601,3984,3929,5574,3929,4978,4224,3929,3929,5608,5571,5607,5351,5349,3929,3929,3929,5206,4827,3929,3929,4897,4901,5733,5834,3662,4782,5757,3879,5132,5614,5467,5620,5626,5630,5634,5638,5642,5646,5650,5654,5658,5662,5666,5670,5673,5677,5681,5685,3929,3929,5256,4275,5756,3929,3972,3929,4996,3929,5561,5708,5718,3929,5722,5729,3929,3888,3998,5749,3929,3929,3929,5311,3929,5731,5753,5459,3929,5014,4985,3929,4344,4461,3929,3875,5420,3929,3878,3929,3929,3929,3736,4071,4506,3929,3766,4521,4967,3929,3929,3929,5387,3820,5761,4485,3929,3929,5424,4691,5113,3998,3929,3929,5435,3873,3929,5112,5770,4234,5849,3929,3929,3929,5447,3929,5732,5805,3929,3972,4093,4097,3929,3905,3929,4408,3670,5786,3929,3929,3929,5447,4693,4517,5803,5807,3929,5046,5056,3929,4434,4245,3929,3770,5321,3929,3649,3929,3929,4977,4223,3929,5830,3929,3929,5450,5042,4423,5838,3929,3929,5507,4159,4423,5838,4248,5847,4578,5805,3929,4548,3929,3929,5813,4423,5854,3929,3929,5552,5542,5859,3929,3929,3929,5564,3929,5786,4235,3929,3929,5566,4810,4103,5807,3990,3929,5059,5357,3929,4549,3929,3929,4549,5416,3929,4674,3929,4868,5532,3929,3929,3929,5710,3929,3831,3998,3929,3929,5712,4818,3973,5866,3929,3929,5739,3929,3972,5865,3929,3929,5745,3929,4964,3929,5180,4523,5824,3832,3929,3929,3929,5777,5545,4965,3929,4409,3929,3675,3738,3973,3547,3929,3929,5841,3929,6277,6502,5875,6282,5878,6547,6266,5881,6546,5889,6232,5882,6232,5892,6221,6267,5888,5883,5884,6232,6232,6232,6232,6414,5887,5883,6232,5891,6232,6232,5894,6232,6232,5922,5937,5949,5938,5939,5949,5944,5950,5944,5944,5940,5944,5941,5952,5941,5944,5946,5945,5946,5946,5946,5946,5947,5941,5948,5952,5948,5944,5942,5954,5956,5958,5962,5960,5959,5964,5966,5967,5971,5967,5968,5967,5969,5974,5973,5976,5978,6293,5998,5875,6282,5896,6871,6437,6282,6321,6282,6282,6282,5917,6456,6456,6456,6456,5991,5906,6379,6455,5990,6019,5991,5904,5904,5904,6456,6456,5926,5899,6456,6456,5997,6282,6408,6410,6282,5932,6282,5933,6464,6024,6282,6282,6379,5924,6282,6282,5924,6282,6362,6010,5984,6282,6003,6282,6362,6282,6282,6282,6004,6456,5906,6455,5990,5904,5902,6456,6456,6456,5906,6457,6019,6019,5904,5904,6456,6456,6282,6282,6282,5980,5917,6456,6456,6456,6455,5905,6456,6445,5926,5926,5926,5926,6032,6032,6008,5932,6282,6282,6282,6434,6024,6282,6019,5904,6456,6282,5896,6873,6282,6282,6282,6474,5903,6457,6019,5904,6456,6229,5904,6456,6456,6456,6018,6457,6019,5991,5905,5906,6282,6282,6282,5984,6282,6282,6282,5925,6543,5905,6456,6456,6456,6282,5905,6229,5905,6229,5905,6282,6650,6437,6043,6515,6056,6672,6088,6052,6515,6520,6054,6060,6058,6515,6515,6083,6528,6101,6761,6518,6521,6516,6517,6063,6065,6068,6061,6057,6515,6515,6519,6515,6070,6072,6066,6515,6515,6515,6515,6125,6522,6074,6515,6515,6076,6515,6523,6079,6082,6515,6081,6055,6091,6089,6090,6093,6114,6092,6113,6114,6114,6114,6114,6115,6117,6116,6117,6117,6118,6119,6120,6121,6121,6095,6097,6099,6122,6123,6124,6524,5900,6515,6518,6103,6108,6110,6104,6105,6109,6106,6112,6121,6127,6129,6282,5899,6282,5925,6463,6321,6282,6294,6006,6378,6282,6508,6282,6449,6646,6218,6604,6282,6524,6291,6282,6774,6282,6270,6282,6282,6282,6e3,6e3,6027,6161,6282,6282,5895,6375,6282,6312,6230,6366,6265,5876,6282,6282,6282,6015,6406,6282,6284,6027,6027,6137,6282,6282,6379,6281,6372,6028,6159,6282,5899,6282,6282,6282,6573,6282,6282,6467,6282,6311,6312,6372,6282,6282,6282,6019,6019,5904,5904,5904,5904,5905,6456,6456,6031,6154,6158,6282,6149,6273,6282,6163,6282,6677,6280,6166,6279,6682,6685,6501,6173,6175,6178,6178,6178,6178,6176,6181,6180,6181,6181,6183,6181,6185,6187,6188,6188,6188,6194,6193,6194,6193,6193,6189,6191,6190,6190,6196,6196,6198,6203,6202,6204,6208,6203,6205,6199,6200,6210,6206,6212,6282,6282,5896,6282,6282,6282,6512,6282,6150,6135,6320,6500,6163,6282,6282,6282,6026,6282,6026,6166,6282,6282,6282,6027,6221,6282,6505,6282,6282,6282,6032,6238,6282,6241,6282,5899,6451,6282,5913,6669,6401,6238,6282,6282,6282,6037,6245,6282,6282,6282,6040,6282,6282,6225,6248,6282,6282,5916,6722,6377,6247,6249,6282,6282,5924,6370,6252,6253,6282,6282,5932,6282,6282,6530,5924,6254,6282,6282,6254,6282,6322,6228,6282,5933,6378,6282,6378,6282,6452,6282,6432,6317,6282,5917,6086,6725,6727,6216,6086,6726,6450,6231,5926,5933,6008,6008,6008,6282,6282,6282,5918,6282,6282,6282,5923,6309,6683,6282,6282,6282,6148,6216,6308,6310,6282,6282,6282,6149,6282,5903,6397,6605,6282,6282,5933,5933,5933,6780,6282,6282,6282,6229,6282,6282,6282,5933,5924,6316,5917,6723,6377,5916,6722,6323,6448,6454,6216,6332,6436,6683,6282,5917,6328,6465,6450,6217,6231,6160,6436,6683,6328,6448,6454,6216,6610,6436,6683,6282,6221,6602,6310,6282,5984,5899,5925,6229,6435,6500,6281,6722,6013,6465,6450,6160,6603,6683,6282,6282,6231,6218,6310,6282,5984,6282,6283,6043,5914,6282,5933,6328,6465,6450,6647,6604,6282,6e3,6282,6282,6283,6277,6707,6733,6282,6722,6465,6230,6396,6282,6282,6282,6235,6686,6282,6708,6281,6282,6e3,6437,6362,6338,6279,6282,6282,6283,6444,6145,6683,6282,6282,5933,6003,6282,6282,6282,6006,6375,6465,6708,6282,6005,6282,6282,6287,6289,6282,6548,6282,6282,5933,6282,6282,6282,6137,6282,6282,6020,6282,6375,6282,6282,6282,6281,6471,6218,6683,6282,6282,6282,6370,5984,6282,6010,6795,5984,5899,6282,6282,6661,6282,6e3,6137,6282,6282,6282,6282,5896,5914,6704,6273,5928,6340,6344,6503,6348,6349,6349,6350,6355,6352,6349,6349,6349,6349,6354,6355,6355,6355,6356,6357,6357,6357,6357,6357,6358,6359,6359,6359,6359,6383,6360,6382,6382,6382,6361,6282,6282,6282,6283,6043,5903,5897,6485,6376,6395,6425,6282,6282,6282,6293,6291,6338,6282,6282,6282,6284,6282,6282,6345,6282,6282,6291,6282,6282,6282,6230,5876,6282,6407,6282,6282,6282,6286,6282,6282,6037,6411,6417,6282,6282,5979,5903,6470,6313,6647,6281,6282,6282,6408,6416,6418,6282,6282,5979,6525,6458,6342,6422,6282,6282,6282,6288,6282,6664,6731,6282,6012,6e3,6282,6012,6335,6310,5985,6504,6282,6282,6273,6470,6372,6273,6504,6385,6282,6282,6412,6257,6598,6600,6282,6411,6413,6597,6599,6599,6282,6282,6282,6291,6410,6282,6322,6451,5926,5926,6008,6008,6008,5932,6236,6282,6282,6282,6292,5982,6282,6283,6442,6050,6013,6609,6259,6424,6310,6282,5919,5920,6282,6282,6011,5916,6282,6664,6282,6282,6023,6437,6459,5983,6013,6594,6700,6437,6282,6424,6437,6282,6282,6235,6480,6481,6282,6282,6133,6282,6282,6485,6376,6647,6282,6016,6282,6282,5933,6330,6454,6217,6683,6282,6282,6484,5917,5929,6011,6608,6259,6425,6282,6486,5983,6013,6594,6786,6437,6282,6282,6282,6294,6282,6283,6484,5917,5983,6013,6531,6471,6282,6282,6146,6683,6282,6282,6155,6282,6282,6385,6282,6322,6282,6282,6275,6493,5917,5983,6324,6259,6729,6282,6019,6019,6019,5991,5904,6277,5903,6531,6011,6148,6282,6282,6282,6234,6531,6282,6282,6282,6322,6282,6133,6372,6505,6282,6230,6282,6282,6171,6756,6531,6046,6834,6437,6282,6282,6285,6530,5924,6282,6684,6282,6149,6282,6282,6282,6325,6285,6530,6045,6159,6024,6046,6386,6282,6282,6282,6372,6282,6294,6282,6530,6464,6386,6282,6282,6215,6224,5933,5924,6410,6282,6040,6282,6482,6282,6282,6282,6531,6536,6024,6282,6282,6282,6370,5987,6282,6535,6282,6282,6227,6282,6282,6282,6378,6378,6378,6282,6452,5994,6282,6282,6282,6394,6282,6282,6282,6404,6539,6333,6683,6282,6020,6282,6282,6282,6341,6282,6570,6300,6569,6301,6370,6545,6300,6302,6303,6303,6303,6303,6303,6304,6551,6554,6552,6561,6552,6555,6563,6564,6563,6563,6563,6563,6564,6556,6557,6557,6557,6557,6558,6372,6273,6282,6282,6243,6282,6509,6566,6282,6282,6271,6213,6282,6283,6568,6282,6021,6041,6282,6027,6282,6321,6282,6006,6282,6282,6027,6462,6282,6282,6282,6572,6282,6168,6282,6575,6510,6282,6029,6282,6282,6282,6588,5907,5909,5911,6282,6036,6282,6282,6388,6407,5908,5910,6282,6282,6272,6282,6526,6282,5916,6322,6282,6378,6282,6020,6282,6278,6282,6282,6394,5924,6278,6282,6283,6502,6365,6282,6579,6282,6282,6275,6525,5914,5992,6371,6048,6365,6367,6369,6282,6282,6277,6531,6046,6275,6583,5993,6047,6256,6256,6366,6368,6282,6282,6452,6e3,6282,6282,6282,6408,6282,6027,6282,6372,6526,6282,5899,6539,6664,6682,6282,6282,6282,6146,6282,6482,6282,6006,6451,6282,6282,6282,5985,6458,6342,6313,6136,6152,6282,6037,6378,6282,6282,6282,6421,6584,6020,6437,6683,6282,6027,6321,6282,6451,6646,6152,6282,6282,6282,6410,6282,6282,6282,6375,6282,6e3,6526,6322,6533,6682,6282,6408,6282,6282,6282,6505,6282,6282,6278,6282,6282,6282,6143,6371,6472,6282,6282,6282,6423,6539,6437,6683,6282,6040,6148,6040,6149,6273,6229,6682,6282,6470,6282,6282,6283,6282,6282,6282,6524,6548,5933,6282,5933,6282,6434,6410,6282,6282,6434,6537,6282,6664,6491,6866,5876,6482,6491,6282,6282,6283,6410,6282,6427,6282,6282,5980,6011,6276,6037,6285,6038,6590,6783,6607,6612,6620,6619,6620,6620,6616,6620,6620,6618,6622,6620,6614,6613,6624,6627,6626,6627,6627,6628,6630,6630,6634,6630,6632,6631,6630,6630,6630,6636,6638,6638,6637,6637,6640,6641,6282,6132,6282,6282,5895,5924,5984,6282,6640,6637,6640,6640,6640,6640,6505,5903,6644,6331,6649,6282,6282,6229,5879,6282,6527,6653,6148,6282,6137,5924,6282,6282,6282,6230,6281,6282,6282,6306,6402,6433,6346,6656,6658,6549,6282,6282,6283,6475,6423,6282,6282,6282,6437,6682,5912,6668,6400,6282,6157,6282,6282,5896,6451,5980,5917,6029,6221,6281,6282,6282,6524,6282,6282,6282,5930,6664,6282,6264,6683,6694,6282,6282,6282,6452,6282,6282,6282,6285,5897,6453,6654,6282,6346,6295,6282,6282,6283,6582,6297,6282,6681,6282,6164,6024,6282,6133,6451,6282,5988,6281,6285,5980,6458,6371,6263,6647,6281,6282,6676,6282,6676,6514,5903,6680,6465,6489,5995,6282,6282,6283,6496,6085,6282,6513,6525,6679,6688,6688,6399,6713,6281,6282,6286,6282,6037,6282,6282,6282,5899,6691,6497,6724,6488,6734,6282,6282,6282,6498,6282,6282,6282,6255,6282,6283,6691,6696,6724,6488,6698,6331,6222,6282,6282,6282,6431,6296,6282,6282,6282,6499,6282,6282,5903,6464,6231,6734,6696,6134,6733,6281,6693,6282,6282,6434,6282,6282,6282,6277,6525,6531,6471,6218,6231,6490,6282,6282,6282,6504,6548,6282,6283,6278,6282,6275,6710,6733,6282,6169,6282,6282,6509,6003,6712,6282,6282,6282,6508,5899,6702,6490,6282,6282,6283,6861,6854,6033,6858,6646,6218,6604,6282,6282,6282,6577,6286,6282,6394,6282,6229,6019,6019,6019,6019,5904,6286,6282,6137,6282,6229,6282,6292,6229,6282,6282,6372,6505,6282,6437,6683,6282,6229,6146,6265,6282,6283,6525,5927,6539,6729,6683,6282,6282,6650,6282,6282,6283,6863,6364,6024,6282,6282,6283,6869,6282,6362,6282,6362,6363,6010,6592,5925,6719,6591,6593,6718,6721,5934,5934,5935,6469,6736,5934,5934,5934,6736,6738,6742,6740,6739,6744,6746,6751,6751,6752,6753,6747,6748,6748,6748,6749,6751,6751,6751,6753,6753,6753,6753,6758,6754,6755,6282,6282,6285,6282,6282,6282,6014,6760,5981,6007,6728,6282,6763,6282,6282,6285,6496,6531,6282,6283,6768,6770,6282,6282,6282,6539,6392,6282,6282,6392,6027,6156,6282,6282,6293,6586,6282,6373,6281,6285,6507,5903,6470,6326,6505,6659,6282,6234,6229,5879,6283,6496,6703,6776,6704,6777,6282,6282,6282,6548,6282,5918,6025,6282,6282,6026,6282,6286,6505,6394,6282,6291,6370,6282,6370,6282,6496,6085,6831,6147,6603,6683,6282,6380,6282,6282,6370,6282,6282,6282,6003,6282,6294,6336,6e3,6282,6239,6846,6282,6260,6282,6282,6282,6642,6379,6282,6505,6336,6283,6702,6782,6319,6218,6604,6282,6785,5999,6282,6269,6663,6282,6140,6282,6282,6393,6282,5982,6724,6319,6218,6604,6539,6310,6282,6282,6375,6370,6375,6788,6320,6310,6e3,6e3,6282,6282,6375,6548,6282,6282,6282,6275,6084,6447,6282,6788,6429,6683,6282,6282,6664,6683,6282,6273,6541,6148,6282,6394,6e3,6282,6274,6282,6003,6318,6429,6683,6282,6275,5898,5915,6282,6282,6370,6370,6370,6664,6282,6683,6282,6410,6282,6699,6282,6275,5901,5982,6724,6291,6282,6282,6531,6689,6282,6282,6220,6282,6537,6282,6282,6282,6664,6146,6282,6282,6434,6281,6282,6282,6282,6020,6282,6006,6410,6408,6282,6027,6282,6282,6250,6843,6434,6410,6282,6434,6410,6282,6408,6282,6322,6282,6410,6410,6027,6282,6275,6702,6231,6490,6146,6282,6146,6282,6282,6282,6671,6146,6410,6408,6408,6409,6409,6409,6409,6409,6282,6282,6282,6682,6282,6282,6285,6039,6216,6221,6281,6286,6282,6282,6790,6543,6282,6505,6003,6282,6559,6282,6282,6559,6508,6792,6282,6077,6139,6282,6282,6379,6374,6793,6806,6798,6798,6801,6799,6798,6799,6798,6797,6803,6808,6807,6808,6805,6808,6809,6810,6813,6814,6815,6816,6815,6818,6811,6813,6811,6813,6820,6822,6822,6821,6821,6824,6824,6824,6824,6821,6824,6824,6828,6825,6826,6282,6282,6282,6683,6282,6282,6689,6439,6282,6277,6715,6282,6282,6282,6510,6035,6282,6282,6282,6684,6282,6282,6282,6233,6282,6716,6282,6580,6419,6282,6836,6282,6281,6282,6282,6283,6293,6337,6282,6838,6840,6282,6282,6666,6282,6143,6292,6282,6282,6292,6282,6282,6282,6378,6845,6282,6282,6845,6282,6487,6282,6282,6391,6391,6651,6282,6282,6282,6730,6512,6282,6282,6282,6830,6853,5931,6141,6428,6602,6604,6282,6282,6409,6410,6282,6852,6854,6856,6450,6002,6282,6001,6003,6282,6645,6231,6281,6282,6282,6674,6282,6167,6282,6282,6e3,6282,6e3,6034,6282,6282,6282,6848,6282,6394,6683,6282,6282,5933,6003,5933,6003,6282,6830,6645,6231,6222,6487,6282,6024,6282,6282,6693,6282,6282,6282,6464,6861,6854,6009,6377,6525,5931,6011,6465,6282,6830,5885,6282,6282,6702,5931,6319,6436,6683,5916,6282,6282,5925,6282,6282,6448,6282,6282,6931,6282,6282,6451,6282,6282,6282,6860,6044,6011,6465,6449,6647,6310,6282,6282,6142,6436,6683,6282,6282,6732,5924,5984,6861,5983,6377,6454,5982,6321,6282,6294,6138,6282,6461,6151,6437,6282,6282,6732,6772,6860,5983,6465,6151,6437,6282,6865,6282,6282,6282,6860,6337,6437,6282,6282,6466,6282,6144,6436,6282,6282,6282,6868,6219,6282,6282,6282,6468,6282,6282,6732,6282,5916,6262,6299,6282,5918,5918,5918,6378,6282,6282,6526,6282,6148,6282,6283,6293,6586,6292,6502,6437,6282,6282,6282,6294,6282,6292,6294,6282,6282,6474,5980,6293,6291,6282,6282,6292,6502,6282,6278,6294,6282,6278,6282,6282,6765,6282,6229,6362,6282,6230,6320,6500,6282,6505,6282,6292,6502,6282,6505,6233,6282,6282,6293,6282,6282,6282,6474,6478,6291,6278,6282,6282,6292,6531,6536,6875,6255,6282,6282,6476,6282,6006,6255,6282,6006,6390,6282,6314,6049,6282,6877,6878,6881,6375,6880,5930,6282,6532,6542,6883,6596,6258,6885,6596,6595,6595,6886,6889,6595,6888,6890,6889,6892,6897,6893,6894,6895,6899,6900,6905,6905,6901,6902,6912,6903,6902,6906,6905,6906,6905,6906,6907,6909,6908,6910,6914,6908,6908,6922,6922,6921,6922,6923,6916,6917,6918,6920,6926,6925,6928,6460,6371,6282,6282,6482,5932,6321,6285,6282,6282,6494,6371,6930,6282,6282,6282,6505,6494,6371,6130,6282,6282,6282,6505,6506,6282,6282,6282,6312,6933,6282,6505,6935,6282,6282,6937,6282,6282,6767,6769,6290,6282,6282,6282,6505,6692,6011,6313,6291,6233,6282,6282,6508,6282,6282,6282,5916,6030,6282,6423,6170,6282,6282,6170,6011,6372,6282,5916,6282,6282,5915,6451,6440,6282,6282,5918,6322,6283,6939,6446,6705,6447,6291,6282,6282,6294,6282,6282,6282,6438,6282,6282,6511,6282,6282,6282,6842,6149,6282,6149,6282,6282,6779,6007,6728,6310,6282,6282,6319,6310,6282,6282,6363,6282,6692,6011,6372,5916,6282,5915,6282,6282,6511,6268,6286,6282,5924,6282,6282,6833,6282,6279,6398,6282,6282,6014,6282,6282,6282,6601,6282,6439,5933,6133,6282,6148,6282,6255,6282,5914,5931,6705,6282,6282,6850,6282,6850,6282,6372,6282,6372,6282,6149,6282,6505,5914,5931,6291,6282,6282,5982,6585,6282,6282,6660,6291,6043,5914,6291,6282,6282,6283,6043,5899,6282,6282,1048576,1073741824,2147483648,1075838976,2097152,2147483648,4194560,4196352,-2143289344,-2143289344,4194304,2147483648,37748736,541065216,541065216,-2143289344,4198144,4196352,276901888,8540160,4194304,1,4,16,64,0,48,64,32,64,64,96,0,59,140224,5505024,-1887436800,0,63,64,128,0,64,256,0,110,110,8425488,4194304,1024,0,128,128,512,512,1024,1024,2048,0,256,256,257,37748736,742391808,742391808,775946240,-1371537408,775946240,4718592,775946240,775946240,171966464,171966464,775946240,239075328,-1405091840,-1371537408,239075328,171966464,64,4718592,2097216,4720640,541589504,4194368,4194368,541065280,541589504,4194400,-2143289280,4194368,-2143285440,-2143285408,-2143285408,-2109730976,775946336,776470528,-2143285408,776470528,775946304,775946304,-1908404384,775946304,-1908404384,2,8,32,128,1024,4096,0,260,8392704,0,1856,64,524288,64,896,8192,67108864,2147483648,96,262144,262144,8192,0,288,8388608,0,384,0,512,2048,2048,4096,4096,8192,8192,16384,0,520,520,96,524288,524288,0,2432,2048,268435456,0,24576,0,32768,32768,65536,1048576,128,2048,12288,0,12289,0,16384,16384,32768,0,1864,2,16,1024,98304,131072,262144,1048576,512,5120,2,536936448,80,528,528,2097168,2097168,268435472,524304,1048592,2097168,24,560,48,2097680,1048592,3145744,1048592,20,560,48,3146256,2097552,3146256,28,16,8192,2,2098064,163577856,17,21,112,128,3584,8192,2228784,-161430188,-161430188,-161429680,-161430188,-161429676,-161430188,-161298576,-160299088,-161298576,-161298572,-160774288,-160299084,146804757,146812949,146862101,146863389,146863389,148960541,-161429740,-161429676,146863421,148960541,146863389,-161429676,-160905388,-161429676,-161429676,-161429675,-161349072,-161349072,-161347728,-161347728,-161298572,-161298572,-160774284,-161298572,16,262160,-18860267,-160774284,-18729163,0,58368,159383552,0,65536,2097152,8388608,33554432,0,66048,0,77824,524288,33554432,1024,262144,2097152,16777216,67108864,0,131072,524288,134217728,2147483648,1,32768,196608,0,131328,131072,16777216,100663296,-1073741824,164096,0,131584,2621440,0,139264,0,150528,0,235712,16777216,1073774592,1226014816,100665360,-2046818288,100665360,100665360,-2044196848,1091799136,1091799136,1091803360,1091799136,1158908e3,1158908001,1192462432,1192462448,1192462448,1870638912,1870655296,1870638912,1200851056,1200851056,1091799393,1870655296,1870655296,1870655312,1870655316,1870655312,1870655312,1870638928,1870655316,1870655316,1870655317,1870655316,1879043952,1870655348,1870655316,1879027568,1879043952,1879043956,0,284672,229440,1048576,2097152,67108864,134217728,8,4194304,16777216,2147483648,1224736768,0,503616,2048,100663296,0,524288,2097152,4194304,4194304,0,40,0,44,-2046820352,0,605503,231488,1090519040,1157627904,1191182336,9437184,231744,52e4,7864320,1862270976,0,867391,1862270976,1862270976,16252928,0,1048576,4194304,25165824,25165824,33554432,8192,98304,1048576,8388608,134217728,268435456,4194432,3145728,0,24,0,29,0,32,1,2,2,4,0,2147483648,2147483648,0,0,1,0,2,0,3,240,19456,262144,0,4,8,0,6,0,7,150994944,0,1049088,1049088,12845065,12845065,147193865,128,6144,4194304,251658240,536870912,1073741824,32768,131072,1048576,4096,83886080,117440512,0,3145728,16777216,134217728,0,2048,8192,229376,0,2304,1536,8192,1536,65536,4194304,67108864,536870912,9216,33554432,262144,134217728,1073741824,50331649,9476,512,8192,134218240,1050624,0,5242880,1275208192,4194312,4194312,4194344,4194312,541065224,4203820,-869654016,-869654016,1279402504,1279402504,2143549415,2143549415,2143549423,0,8388608,4096,4194304,8388608,16777216,33554432,-1946157056,0,8192,131072,0,1792,0,1024,8192,65536,0,1536,2147483648,2143549423,2143549423,2143549415,1,16777216,268435456,512,139264,2760704,-872415232,0,19947520,0,33554432,67108864,1073741824,1073741824,262144,7340032,-2030043136,0,331776,300,4203520,4333568,1275068416,0,16777216,16777216,0,999,259072,4194304,4194432,999,29619200,2113929216,0,58720256,1007,1007,0,67108864,402653184,536870912,2048,1048576,16777216,536870912,300,0,83886080,0,2097152,134217728,536870912,0,49152,0,57344,102,384,6,96,128,3072,16384,65536,524288,1048576,0,4096,262144,524288,96,96,64,384,512,4096,65536,131072,1024,65536,262144,131072,32768,256,384,8192,33554432,2147483648,1,6,8,8388608,96,384,104,104,0,134217728,6,32,256,512,65536,7340032,50331648,0,8396800,4,32,384,4,64,1024,2097152,268435456,1073741824,8,262144,512,0,8,8,16,0,9,0,12,0,15,16,16,17,20,16,20,48,16,28,0,16,32,0,21,53,4,256,1024,524288,536870912,256,65536,16777216,1073741824,2048,524288,32,4100,1024,134217728,1049088,270532608,2097152,2097152,0,23,5505537,5587457,5591557,147202057,5587457,13894153,-1881791493,-1881791493,0,134218752,5587465,5587457,13894153,13894153,81003049,4456448,8388608,5505024,0,134348800,134348800,82432,0,142606336,5,86528,41,75497472,81920,0,184549376,2,56,64,2048,262144,536870912,2048,134217728,-2113929216,16777216,1073743872,268435968,229376,25165824,92274688,25165824,100663296,402653184,1610612736,0,100663296,134217728,805306368,1073741824,8388608,268567040,16384,229376,4194304,117440512,2113544,68423701,-2079059883,-2079059947,85200917,68423701,68423765,68489237,68423701,68423701,72618005,68423701,68425749,68423703,85200919,69488664,69488664,70537244,70537245,70537245,-2076946339,-2076946403,70537245,70537309,70539293,-2022351745,-2022351617,-2022351745,-2022351617,-2022351617,0,243269632,256,32768,1048576,33554432,134217728,-2113929216,0,268435456,49152,266240,1048576,67108864,-2080374784,-2080374784,268288,0,301989888,0,318767104,282624,0,536870912,28,3145728,192,351232,7340032,5,16,1049104,12,3145728,13,0,1073741825,192,3072,20480,0,1073741824,0,262144,2621440,-1073741824,20480,65536,268435456,14,32,512,131072,268435456,192,1024,64,32768,33554432,268435456,4,128,3840,16384,262144,128,2097152,1073741824,4,2097152,4,50331648,67108864,128,50331648,1073741824,128,268435968,268435968,268436032,256,1536,2048,16384,98304,393216,524288,268435456,536870912,9216,0,4194304,50331648,2147483648,256,536871168,-1879046336,-1879046334,-1879046326,-1879046334,1073744256,-1879046334,-1879046326,-1845491902,-1878784182,268444480,268436288,268436288,268436289,268444480,268444480,2100318149,2100318149,2100326341,0,1090519040,2100326341,2100326341,1,16,536936448,576,0,832,8192,1,4036,19939328,2080374784,0,1,1024,768,8192,16384,19922944,2080374784,1,128,4096,3584,16384,524288,8,33554432,402653184,2048,3145728,128,131072,268500992,4243456,4096,1048588,0,1258292224,1124073472,1124073472,1124073488,1124073474,1124073472,1392574464,1124073472,1073754113,12289,1124073472,12289,12289,1098920193,1132474625,1098920209,1132474625,1132474625,1124085761,1124085761,1124085777,1258304513,1124085761,1400975617,2132360255,2132622399,2132360255,2132622399,2132622399,2141011263,0,2140749119,2141011263,2,16384,3145728,12545,25165824,268435456,12305,13313,12561,0,78081,327155712,605247,1058013184,1073741824,867647,1066401792,0,1,12288,256,8388608,1,30,32,1024,2048,339968,327680,524288,1,14,16,14,1024,16384,4194304,134217728,1,12,1024,8,134217728,8,536870912,9437184,0,68157440,137363456,0,137363456,66,66,100680704,25165824,26214400,92274688,25165952,93323264,92274688,92274688,92274720,93323264,25165890,100721928,100721928,100787464,100721664,100721664,100853e3,100721928,125977600,125846528,125846528,125846560,125977600,125977600,127026176,281843,281843,1330419,281843,126895104,125846528,1330419,1330419,72633587,5524723,72633587,92556531,93605107,93605107,5524723,5524723,39079155,97799411,127290611,127290611,131484915,0,17408,33554432,1073741824,58624,0,124160,189696,148480,50331648,2,112],r.TOKEN=["(0)","PragmaContents","DirCommentContents","DirPIContents","CDataSection","Wildcard","EQName","URILiteral","IntegerLiteral","DecimalLiteral","DoubleLiteral","StringLiteral","PredefinedEntityRef","'\"\"'","EscapeApos","ElementContentChar","QuotAttrContentChar","AposAttrContentChar","PITarget","NCName","QName","S","S","CharRef","CommentContents","EOF","'!'","'!='","'\"'","'#'","'#)'","'$'","'%'","''''","'('","'(#'","'(:'","')'","'*'","'*'","'+'","','","'-'","'-->'","'.'","'..'","'/'","'//'","'/>'","':'","':)'","'::'","':='","';'","'<'","'<!--'","'</'","'<<'","'<='","'<?'","'='","'>'","'>='","'>>'","'?'","'?>'","'@'","'NaN'","'['","']'","'after'","'all'","'allowing'","'ancestor'","'ancestor-or-self'","'and'","'any'","'append'","'array'","'as'","'ascending'","'at'","'attribute'","'base-uri'","'before'","'boundary-space'","'break'","'by'","'case'","'cast'","'castable'","'catch'","'check'","'child'","'collation'","'collection'","'comment'","'constraint'","'construction'","'contains'","'content'","'context'","'continue'","'copy'","'copy-namespaces'","'count'","'decimal-format'","'decimal-separator'","'declare'","'default'","'delete'","'descendant'","'descendant-or-self'","'descending'","'diacritics'","'different'","'digit'","'distance'","'div'","'document'","'document-node'","'element'","'else'","'empty'","'empty-sequence'","'encoding'","'end'","'entire'","'eq'","'every'","'exactly'","'except'","'exit'","'external'","'first'","'following'","'following-sibling'","'for'","'foreach'","'foreign'","'from'","'ft-option'","'ftand'","'ftnot'","'ftor'","'function'","'ge'","'greatest'","'group'","'grouping-separator'","'gt'","'idiv'","'if'","'import'","'in'","'index'","'infinity'","'inherit'","'insensitive'","'insert'","'instance'","'integrity'","'intersect'","'into'","'is'","'item'","'json'","'json-item'","'key'","'language'","'last'","'lax'","'le'","'least'","'let'","'levels'","'loop'","'lowercase'","'lt'","'minus-sign'","'mod'","'modify'","'module'","'most'","'namespace'","'namespace-node'","'ne'","'next'","'no'","'no-inherit'","'no-preserve'","'node'","'nodes'","'not'","'object'","'occurs'","'of'","'on'","'only'","'option'","'or'","'order'","'ordered'","'ordering'","'paragraph'","'paragraphs'","'parent'","'pattern-separator'","'per-mille'","'percent'","'phrase'","'position'","'preceding'","'preceding-sibling'","'preserve'","'previous'","'processing-instruction'","'relationship'","'rename'","'replace'","'return'","'returning'","'revalidation'","'same'","'satisfies'","'schema'","'schema-attribute'","'schema-element'","'score'","'self'","'sensitive'","'sentence'","'sentences'","'skip'","'sliding'","'some'","'stable'","'start'","'stemming'","'stop'","'strict'","'strip'","'structured-item'","'switch'","'text'","'then'","'thesaurus'","'times'","'to'","'treat'","'try'","'tumbling'","'type'","'typeswitch'","'union'","'unique'","'unordered'","'updating'","'uppercase'","'using'","'validate'","'value'","'variable'","'version'","'weight'","'when'","'where'","'while'","'wildcards'","'window'","'with'","'without'","'word'","'words'","'xquery'","'zero-digit'","'{'","'{{'","'{|'","'|'","'||'","'|}'","'}'","'}}'"]},{}],11:[function(e,t,n){"use strict";n.TreeOps={flatten:function(e){var t=this,n="";if(!e)throw new Error("Invalid node found");return e.value===undefined?e.children.forEach(function(e){n+=t.flatten(e)}):n+=e.value,n},concat:function(e,t,n){var r=n?{}:e;n&&Object.keys(e).forEach(function(t){r[t]=e[t]});var i=Object.keys(t);return i.forEach(function(e){r[e]=t[e]}),r},removeParentPtr:function(e){e.getParent!==undefined&&delete e.getParent;for(var t in e.children){var n=e.children[t];this.removeParentPtr(n)}},inRange:function(e,t,n){if(e&&e.sl<=t.line&&t.line<=e.el){if(e.sl<t.line&&t.line<e.el)return!0;if(e.sl===t.line&&t.line<e.el)return e.sc<=t.col;if(e.sl===t.line&&e.el===t.line)return e.sc<=t.col&&t.col<=e.ec+(n?1:0);if(e.sl<t.line&&e.el===t.line)return t.col<=e.ec+(n?1:0)}},findNode:function(e,t){if(!e)return;var n=e.pos;if(this.inRange(n,t)===!0){for(var r in e.children){var i=e.children[r],s=this.findNode(i,t);if(s!==undefined)return s}return e}return},astAsXML:function(e,t){var n="";t=t?t:"",e.value&&(n+=t+"<"+e.name+">"+e.value+"</"+e.name+">\n"),n+=t+"<"+e.name+">\n";var r=this;return e.children.forEach(function(e){n+=r.astAsXML(e,t+"  ")}),n+=t+"</"+e.name+">\n",n}}},{}],12:[function(e,t,n){"use strict";var r=e("./parsers/JSONiqParser").JSONiqParser,i=e("./parsers/XQueryParser").XQueryParser,s=e("./parsers/JSONParseTreeHandler").JSONParseTreeHandler,o=e("./compiler/translator").Translator,u=e("./formatter/style_checker").StyleChecker,a=e("../lib/completion/completer"),f=n.createStaticContext=function(){var t=e("./compiler/static_context").StaticContext;return new t},l=function(e,t){return e?(Object.keys(t).forEach(function(n){e[n]===undefined&&(e[n]=t[n])}),e):t},c=function(e,t,n){var r=e.substring(0,t),i=e.substring(0,n),s=r.split("\n").length,o=t-r.lastIndexOf("\n"),u=i.split("\n").length,a=n-i.lastIndexOf("\n"),f={sl:s-1,sc:o-1,el:u-1,ec:a-1};return f};n.XQLint=function(e,t){t=t?t:{},t=l(t,{styleCheck:!1});var n;this.getAST=function(){return n};var h=[];this.getMarkers=function(){return h},this.getMarkers=function(e){var t=[];return h.forEach(function(n){(n.type===e||e===undefined)&&t.push(n)}),t},this.getErrors=function(){return this.getMarkers("error")},this.getWarnings=function(){return this.getMarkers("warning")},this.getCompletions=function(t){return a.complete(e,n,d,t)};var p=!1;this.hasSyntaxError=function(){return p};var d=t.staticContext?t.staticContext:f(),v=t.fileName?t.fileName:"",m=v.substring(v.length-".jq".length).indexOf(".jq")!==-1&&e.indexOf("xquery version")!==0||e.indexOf("jsoniq version")===0,g=new s(e),y=m?new r(e,g):new i(e,g);try{y.parse_XQuery()}catch(b){if(!(b instanceof y.ParseException))throw b;p=!0,g.closeParseTree();var w=c(e,b.getBegin(),b.getEnd()),E=y.getErrorMessage(b);w.sc===w.ec&&w.ec++,h.push({pos:w,type:"error",level:"error",message:E})}n=g.getParseTree(),t.styleCheck&&(h=h.concat((new u(n,e)).getMarkers()));var S=new o(d,n);h=h.concat(S.getMarkers())}},{"../lib/completion/completer":6,"./compiler/static_context":4,"./compiler/translator":5,"./formatter/style_checker":7,"./parsers/JSONParseTreeHandler":8,"./parsers/JSONiqParser":9,"./parsers/XQueryParser":10}]},{},[12])(12)}),ace.define("ace/mode/xquery_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/xquery/xqlint"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./xquery/xqlint"),o=s.XQLint,u=function(e){return function(t){var n=e,r=n[t],i={},s={};return r.functions.forEach(function(e){s[t+"#"+e.name+"#"+e.arity]={params:[]},e.parameters.forEach(function(n){s[t+"#"+e.name+"#"+e.arity].params.push("$"+n.name)})}),r.variables.forEach(function(e){var n=e.name.substring(e.name.indexOf(":")+1);i[t+"#"+n]={type:"VarDecl",annotations:[]}}),{variables:i,functions:s}}},a=t.XQueryWorker=function(e){i.call(this,e),this.setTimeout(200),this.opts={styleCheck:!1};var t=this;this.sender.on("complete",function(e){if(t.xqlint){var n={line:e.data.pos.row,col:e.data.pos.column},r=t.xqlint.getCompletions(n);t.sender.emit("complete",r)}}),this.sender.on("setAvailableModuleNamespaces",function(e){t.availableModuleNamespaces=e.data}),this.sender.on("setModuleResolver",function(e){t.moduleResolver=u(e.data)})};r.inherits(a,i),function(){this.onUpdate=function(){this.sender.emit("start");var e=this.doc.getValue(),t=s.createStaticContext();this.moduleResolver&&t.setModuleResolver(this.moduleResolver),this.availableModuleNamespaces&&(t.availableModuleNamespaces=this.availableModuleNamespaces);var n={styleCheck:this.styleCheck,staticContext:t};this.xqlint=new o(e,n),this.sender.emit("markers",this.xqlint.getMarkers())}}.call(a.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/js/d3.v4.min.js b/js/d3.v4.min.js
new file mode 100644
index 0000000..8a0709b
--- /dev/null
+++ b/js/d3.v4.min.js
@@ -0,0 +1,8 @@
+// https://d3js.org Version 4.9.1. Copyright 2017 Mike Bostock.
+(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return js(t(n),e)}}function e(t,n){return[t,n]}function r(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=sf?10:o>=ff?5:o>=lf?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=sf?10:o>=ff?5:o>=lf?2:1)}function i(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=sf?i*=10:o>=ff?i*=5:o>=lf&&(i*=2),n<t?-i:i}function o(t){return t.length}function u(t){return"translate("+(t+.5)+",0)"}function a(t){return"translate(0,"+(t+.5)+")"}function c(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function s(){return!this.__axis}function f(t,n){function e(e){var u=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,a=null==o?n.tickFormat?n.tickFormat.apply(n,r):Cf:o,_=Math.max(f,0)+h,y=n.range(),g=y[0]+.5,m=y[y.length-1]+.5,x=(n.bandwidth?c:Cf)(n.copy()),b=e.selection?e.selection():e,w=b.selectAll(".domain").data([null]),M=b.selectAll(".tick").data(u,n).order(),T=M.exit(),k=M.enter().append("g").attr("class","tick"),N=M.select("line"),S=M.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),M=M.merge(k),N=N.merge(k.append("line").attr("stroke","#000").attr(d+"2",p*f)),S=S.merge(k.append("text").attr("fill","#000").attr(d,p*_).attr("dy",t===zf?"0em":t===Lf?"0.71em":"0.32em")),e!==b&&(w=w.transition(e),M=M.transition(e),N=N.transition(e),S=S.transition(e),T=T.transition(e).attr("opacity",qf).attr("transform",function(t){return isFinite(t=x(t))?v(t):this.getAttribute("transform")}),k.attr("opacity",qf).attr("transform",function(t){var n=this.parentNode.__axis;return v(n&&isFinite(n=n(t))?n:x(t))})),T.remove(),w.attr("d",t===Rf||t==Pf?"M"+p*l+","+g+"H0.5V"+m+"H"+p*l:"M"+g+","+p*l+"V0.5H"+m+"V"+p*l),M.attr("opacity",1).attr("transform",function(t){return v(x(t))}),N.attr(d+"2",p*f),S.attr(d,p*_).text(a),b.filter(s).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Pf?"start":t===Rf?"end":"middle"),b.each(function(){this.__axis=x})}var r=[],i=null,o=null,f=6,l=6,h=3,p=t===zf||t===Rf?-1:1,d=t===Rf||t===Pf?"x":"y",v=t===zf||t===Lf?u:a;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=Af.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:Af.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:Af.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(f=l=+t,e):f},e.tickSizeInner=function(t){return arguments.length?(f=+t,e):f},e.tickSizeOuter=function(t){return arguments.length?(l=+t,e):l},e.tickPadding=function(t){return arguments.length?(h=+t,e):h},e}function l(t){return f(zf,t)}function h(t){return f(Pf,t)}function p(t){return f(Lf,t)}function d(t){return f(Rf,t)}function v(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new _(r)}function _(t){this._=t}function y(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function g(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function m(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Uf,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function x(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Df&&n.documentElement.namespaceURI===Df?n.createElement(t):n.createElementNS(e,t)}}function b(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function w(){return new M}function M(){this._="@"+(++Yf).toString(36)}function T(t,n,e){return t=k(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function k(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function N(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function S(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function E(t,n,e){var r=$f.hasOwnProperty(t.type)?T:k;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function A(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function C(){}function z(){return[]}function P(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function L(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new P(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)}function R(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=ol+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)s=ol+u.call(t,o[a],a,o),(c=f[s])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new P(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}function q(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function U(t){return function(){this.removeAttribute(t)}}function D(t){return function(){this.removeAttributeNS(t.space,t.local)}}function O(t,n){return function(){this.setAttribute(t,n)}}function F(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function I(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function Y(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function B(t){return function(){this.style.removeProperty(t)}}function H(t,n,e){return function(){this.style.setProperty(t,n,e)}}function j(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function X(t,n){return t.style.getPropertyValue(n)||gl(t).getComputedStyle(t,null).getPropertyValue(n)}function $(t){return function(){delete this[t]}}function V(t,n){return function(){this[t]=n}}function W(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function Z(t){return t.trim().split(/^|\s+/)}function G(t){return t.classList||new J(t)}function J(t){this._node=t,this._names=Z(t.getAttribute("class")||"")}function Q(t,n){for(var e=G(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function K(t,n){for(var e=G(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function tt(t){return function(){Q(this,t)}}function nt(t){return function(){K(this,t)}}function et(t,n){return function(){(n.apply(this,arguments)?Q:K)(this,t)}}function rt(){this.textContent=""}function it(t){return function(){this.textContent=t}}function ot(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function ut(){this.innerHTML=""}function at(t){return function(){this.innerHTML=t}}function ct(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function st(){this.nextSibling&&this.parentNode.appendChild(this)}function ft(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function lt(){return null}function ht(){var t=this.parentNode;t&&t.removeChild(this)}function pt(t,n,e){var r=gl(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function dt(t,n){return function(){return pt(this,t,n)}}function vt(t,n){return function(){return pt(this,t,n.apply(this,arguments))}}function _t(t,n){this._groups=t,this._parents=n}function yt(){return new _t([[document.documentElement]],zl)}function gt(){t.event.stopImmediatePropagation()}function mt(t,n){var e=t.document.documentElement,r=Pl(t).on("dragstart.drag",null);n&&(r.on("click.drag",Ul,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function xt(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function bt(){return!t.event.button}function wt(){return this.parentNode}function Mt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Tt(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function kt(){}function Nt(t){var n;return t=(t+"").trim().toLowerCase(),(n=jl.exec(t))?(n=parseInt(n[1],16),new zt(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Xl.exec(t))?St(parseInt(n[1],16)):(n=$l.exec(t))?new zt(n[1],n[2],n[3],1):(n=Vl.exec(t))?new zt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Wl.exec(t))?Et(n[1],n[2],n[3],n[4]):(n=Zl.exec(t))?Et(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Gl.exec(t))?Pt(n[1],n[2]/100,n[3]/100,1):(n=Jl.exec(t))?Pt(n[1],n[2]/100,n[3]/100,n[4]):Ql.hasOwnProperty(t)?St(Ql[t]):"transparent"===t?new zt(NaN,NaN,NaN,0):null}function St(t){return new zt(t>>16&255,t>>8&255,255&t,1)}function Et(t,n,e,r){return r<=0&&(t=n=e=NaN),new zt(t,n,e,r)}function At(t){return t instanceof kt||(t=Nt(t)),t?(t=t.rgb(),new zt(t.r,t.g,t.b,t.opacity)):new zt}function Ct(t,n,e,r){return 1===arguments.length?At(t):new zt(t,n,e,null==r?1:r)}function zt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Pt(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new qt(t,n,e,r)}function Lt(t){if(t instanceof qt)return new qt(t.h,t.s,t.l,t.opacity);if(t instanceof kt||(t=Nt(t)),!t)return new qt;if(t instanceof qt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new qt(u,a,c,t.opacity)}function Rt(t,n,e,r){return 1===arguments.length?Lt(t):new qt(t,n,e,null==r?1:r)}function qt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Ut(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Dt(t){if(t instanceof Ft)return new Ft(t.l,t.a,t.b,t.opacity);if(t instanceof $t){var n=t.h*Kl;return new Ft(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof zt||(t=At(t));var e=Ht(t.r),r=Ht(t.g),i=Ht(t.b),o=It((.4124564*e+.3575761*r+.1804375*i)/nh),u=It((.2126729*e+.7151522*r+.072175*i)/eh);return new Ft(116*u-16,500*(o-u),200*(u-It((.0193339*e+.119192*r+.9503041*i)/rh)),t.opacity)}function Ot(t,n,e,r){return 1===arguments.length?Dt(t):new Ft(t,n,e,null==r?1:r)}function Ft(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function It(t){return t>ah?Math.pow(t,1/3):t/uh+ih}function Yt(t){return t>oh?t*t*t:uh*(t-ih)}function Bt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Ht(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function jt(t){if(t instanceof $t)return new $t(t.h,t.c,t.l,t.opacity);t instanceof Ft||(t=Dt(t));var n=Math.atan2(t.b,t.a)*th;return new $t(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Xt(t,n,e,r){return 1===arguments.length?jt(t):new $t(t,n,e,null==r?1:r)}function $t(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Vt(t){if(t instanceof Zt)return new Zt(t.h,t.s,t.l,t.opacity);t instanceof zt||(t=At(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(vh*r+ph*n-dh*e)/(vh+ph-dh),o=r-i,u=(hh*(e-i)-fh*o)/lh,a=Math.sqrt(u*u+o*o)/(hh*i*(1-i)),c=a?Math.atan2(u,o)*th-120:NaN;return new Zt(c<0?c+360:c,a,i,t.opacity)}function Wt(t,n,e,r){return 1===arguments.length?Vt(t):new Zt(t,n,e,null==r?1:r)}function Zt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Gt(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function Jt(t,n){return function(e){return t+e*n}}function Qt(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Kt(t,n){var e=n-t;return e?Jt(t,e>180||e<-180?e-360*Math.round(e/360):e):Th(isNaN(t)?n:t)}function tn(t){return 1==(t=+t)?nn:function(n,e){return e-n?Qt(n,e,t):Th(isNaN(n)?e:n)}}function nn(t,n){var e=n-t;return e?Jt(t,e):Th(isNaN(t)?n:t)}function en(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=Ct(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}function rn(t){return function(){return t}}function on(t){return function(n){return t(n)+""}}function un(t){return"none"===t?Oh:(_h||(_h=document.createElement("DIV"),yh=document.documentElement,gh=document.defaultView),_h.style.transform=t,t=gh.getComputedStyle(yh.appendChild(_h),null).getPropertyValue("transform"),yh.removeChild(_h),t=t.slice(7,-1).split(","),Fh(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function an(t){return null==t?Oh:(mh||(mh=document.createElementNS("http://www.w3.org/2000/svg","g")),mh.setAttribute("transform",t),(t=mh.transform.baseVal.consolidate())?(t=t.matrix,Fh(t.a,t.b,t.c,t.d,t.e,t.f)):Oh)}function cn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}function o(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push("translate(",null,n,null,e);a.push({i:c-4,x:Ch(t,i)},{i:c-2,x:Ch(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:Ch(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:Ch(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:Ch(t,e)},{i:a-2,x:Ch(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e<o;)r[(n=i[e]).i]=n.x(t);return r.join("")}}}function sn(t){return((t=Math.exp(t))+1/t)/2}function fn(t){return((t=Math.exp(t))-1/t)/2}function ln(t){return((t=Math.exp(2*t))-1)/(t+1)}function hn(t){return function(n,e){var r=t((n=Rt(n)).h,(e=Rt(e)).h),i=nn(n.s,e.s),o=nn(n.l,e.l),u=nn(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function pn(t,n){var e=nn((t=Ot(t)).l,(n=Ot(n)).l),r=nn(t.a,n.a),i=nn(t.b,n.b),o=nn(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}}function dn(t){return function(n,e){var r=t((n=Xt(n)).h,(e=Xt(e)).h),i=nn(n.c,e.c),o=nn(n.l,e.l),u=nn(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function vn(t){return function n(e){function r(n,r){var i=t((n=Wt(n)).h,(r=Wt(r)).h),o=nn(n.s,r.s),u=nn(n.l,r.l),a=nn(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+""}}return e=+e,r.gamma=n,r}(1)}function _n(){return ep||(op(yn),ep=ip.now()+rp)}function yn(){ep=0}function gn(){this._call=this._time=this._next=null}function mn(t,n,e){var r=new gn;return r.restart(t,n,e),r}function xn(){_n(),++Jh;for(var t,n=xh;n;)(t=ep-n._time)>=0&&n._call.call(null,t),n=n._next;--Jh}function bn(){ep=(np=ip.now())+rp,Jh=Qh=0;try{xn()}finally{Jh=0,Mn(),ep=0}}function wn(){var t=ip.now(),n=t-np;n>tp&&(rp-=n,np=t)}function Mn(){for(var t,n,e=xh,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:xh=n);bh=t,Tn(r)}function Tn(t){if(!Jh){Qh&&(Qh=clearTimeout(Qh));var n=t-ep;n>24?(t<1/0&&(Qh=setTimeout(bn,n)),Kh&&(Kh=clearInterval(Kh))):(Kh||(np=ep,Kh=setInterval(wn,tp)),Jh=1,op(bn))}}function kn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>fp)throw new Error("too late");return e}function Nn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>hp)throw new Error("too late");return e}function Sn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function En(t,n,e){function r(t){e.state=lp,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==lp)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===pp)return up(i);h.state===dp?(h.state=_p,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete c[s]):+s<n&&(h.state=_p,h.timer.stop(),delete c[s])}if(up(function(){e.state===pp&&(e.state=dp,e.timer.restart(o,e.delay,e.time),o(r))}),e.state=hp,e.on.call("start",t,t.__data__,e.index,e.group),e.state===hp){for(e.state=pp,a=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(a[++f]=h);a.length=f+1}}function o(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=vp,1),i=-1,o=a.length;++i<o;)a[i].call(null,r);e.state===vp&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){e.state=_p,e.timer.stop(),delete c[n];for(var r in c)return;delete t.__transition}var a,c=t.__transition;c[n]=e,e.timer=mn(r,0,e.time)}function An(t,n){var e,r;return function(){var i=Nn(this,t),o=i.tween;if(o!==e){r=e=o;for(var u=0,a=r.length;u<a;++u)if(r[u].name===n){r=r.slice(),r.splice(u,1);break}}i.tween=r}}function Cn(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Nn(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}}function zn(t,n,e){var r=t._id;return t.each(function(){var t=Nn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Sn(t,r).value[n]}}function Pn(t){return function(){this.removeAttribute(t)}}function Ln(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Rn(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}}function qn(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}function Un(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttribute(t):(u=this.getAttribute(t),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function Dn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttributeNS(t.space,t.local):(u=this.getAttributeNS(t.space,t.local),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function On(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}function Fn(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e}function In(t,n){return function(){kn(this,t).delay=+n.apply(this,arguments)}}function Yn(t,n){return n=+n,function(){kn(this,t).delay=n}}function Bn(t,n){return function(){Nn(this,t).duration=+n.apply(this,arguments)}}function Hn(t,n){return n=+n,function(){Nn(this,t).duration=n}}function jn(t,n){if("function"!=typeof n)throw new Error;return function(){Nn(this,t).ease=n}}function Xn(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}function $n(t,n,e){var r,i,o=Xn(n)?kn:Nn;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Vn(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Wn(t,n){var e,r,i;return function(){var o=X(this,t),u=(this.style.removeProperty(t),X(this,t));return o===u?null:o===e&&u===r?i:i=n(e=o,r=u)}}function Zn(t){return function(){this.style.removeProperty(t)}}function Gn(t,n,e){var r,i;return function(){var o=X(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}function Jn(t,n,e){var r,i,o;return function(){var u=X(this,t),a=e(this);return null==a&&(this.style.removeProperty(t),a=X(this,t)),u===a?null:u===r&&a===i?o:o=n(r=u,i=a)}}function Qn(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function Kn(t){return function(){this.textContent=t}}function te(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function ne(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function ee(t){return yt().transition(t)}function re(){return++Fp}function ie(t){return+t}function oe(t){return t*t}function ue(t){return t*(2-t)}function ae(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function ce(t){return t*t*t}function se(t){return--t*t*t+1}function fe(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function le(t){return 1-Math.cos(t*Xp)}function he(t){return Math.sin(t*Xp)}function pe(t){return(1-Math.cos(jp*t))/2}function de(t){return Math.pow(2,10*t-10)}function ve(t){return 1-Math.pow(2,-10*t)}function _e(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function ye(t){return 1-Math.sqrt(1-t*t)}function ge(t){return Math.sqrt(1- --t*t)}function me(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function xe(t){return 1-be(1-t)}function be(t){return(t=+t)<$p?nd*t*t:t<Wp?nd*(t-=Vp)*t+Zp:t<Jp?nd*(t-=Gp)*t+Qp:nd*(t-=Kp)*t+td}function we(t){return((t*=2)<=1?1-be(1-t):be(t-1)+1)/2}function Me(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return sd.time=_n(),sd;return e}function Te(){t.event.stopImmediatePropagation()}function ke(t){return{type:t}}function Ne(){return!t.event.button}function Se(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Ee(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Ae(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Ce(t){var n=t.__brush;return n?n.dim.output(n.selection):null}function ze(){return Le(xd)}function Pe(){return Le(bd)}function Le(n){function e(t){var e=t.property("__brush",a).selectAll(".overlay").data([ke("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Md.overlay).merge(e).each(function(){var t=Ee(this).extent;Pl(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([ke("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Md.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return Md[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function r(){var t=Pl(this),n=Ee(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=Gf(T);!U||w||M||(Math.abs(t[0]-O[0])>Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,vd(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],N){case yd:case _d:S&&(m=Math.max(P-l,Math.min(R-v,m)),h=l+m,_=v+m),E&&(x=Math.max(L-p,Math.min(q-y,x)),d=p+x,g=y+x);break;case gd:S<0?(m=Math.max(P-l,Math.min(R-l,m)),h=l+m,_=v):S>0&&(m=Math.max(P-v,Math.min(R-v,m)),h=l,_=v+m),E<0?(x=Math.max(L-p,Math.min(q-p,x)),d=p+x,g=y):E>0&&(x=Math.max(L-y,Math.min(q-y,x)),d=p,g=y+x);break;case md:S&&(h=Math.max(P,Math.min(R,l-m*S)),_=Math.max(P,Math.min(R,v+m*S))),E&&(d=Math.max(L,Math.min(q,p-x*E)),g=Math.max(L,Math.min(q,y+x*E)))}_<h&&(S*=-1,t=l,l=v,v=t,t=h,h=_,_=t,k in Td&&Y.attr("cursor",Md[k=Td[k]])),g<d&&(E*=-1,t=p,p=y,y=t,t=d,d=g,g=t,k in kd&&Y.attr("cursor",Md[k=kd[k]])),A.selection&&(z=A.selection),w&&(h=z[0][0],_=z[1][0]),M&&(d=z[0][1],g=z[1][1]),z[0][0]===h&&z[0][1]===d&&z[1][0]===_&&z[1][1]===g||(A.selection=[[h,d],[_,g]],r.call(T),F.brush())}function u(){if(Te(),t.event.touches){if(t.event.touches.length)return;c&&clearTimeout(c),c=setTimeout(function(){c=null},500),I.on("touchmove.brush touchend.brush touchcancel.brush",null)}else mt(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);I.attr("pointer-events","all"),Y.attr("cursor",Md.overlay),A.selection&&(z=A.selection),Ae(z)&&(A.selection=null,r.call(T)),F.end()}function a(){switch(t.event.keyCode){case 16:U=S&&E;break;case 18:N===gd&&(S&&(v=_-m*S,l=h+m*S),E&&(y=g-x*E,p=d+x*E),N=md,o());break;case 32:N!==gd&&N!==md||(S<0?v=_-m:S>0&&(l=h-m),E<0?y=g-x:E>0&&(p=d-x),N=yd,Y.attr("cursor",Md.selection),o());break;default:return}vd()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:N===md&&(S<0?v=_:S>0&&(l=h),E<0?y=g:E>0&&(p=d),N=gd,o());break;case 32:N===yd&&(t.event.altKey?(S&&(v=_-m*S,l=h+m*S),E&&(y=g-x*E,p=d+x*E),N=md):(S<0?v=_:S>0&&(l=h),E<0?y=g:E>0&&(p=d),N=gd),Y.attr("cursor",Md[k]),o());break;default:return}vd()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return vd()}else if(c)return;if(f.apply(this,arguments)){var l,h,p,d,v,_,y,g,m,x,b,w,M,T=this,k=t.event.target.__data__.type,N="selection"===(t.event.metaKey?k="overlay":k)?_d:t.event.altKey?md:gd,S=n===bd?null:Nd[k],E=n===xd?null:Sd[k],A=Ee(T),C=A.extent,z=A.selection,P=C[0][0],L=C[0][1],R=C[1][0],q=C[1][1],U=S&&E&&t.event.shiftKey,D=Gf(T),O=D,F=i(T,arguments).beforestart();"overlay"===k?A.selection=z=[[l=n===bd?P:D[0],p=n===xd?L:D[1]],[v=n===bd?R:l,y=n===xd?q:p]]:(l=z[0][0],p=z[0][1],v=z[1][0],y=z[1][1]),h=l,d=p,_=v,g=y;var I=Pl(T).attr("pointer-events","none"),Y=I.selectAll(".overlay").attr("cursor",Md[k]);if(t.event.touches)I.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",u,!0);else{var B=Pl(t.event.view).on("keydown.brush",a,!0).on("keyup.brush",s,!0).on("mousemove.brush",e,!0).on("mouseup.brush",u,!0);Dl(t.event.view)}Te(),gp(T),r.call(T),F.start()}}function a(){var t=this.__brush||{selection:null};return t.extent=s.apply(this,arguments),t.dim=n,t}var c,s=Se,f=Ne,l=v(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){u.selection=1===t&&Ae(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input("function"==typeof e?e.apply(this,arguments):e,u.extent),f=qh(c,s);return c&&s?t:t(1)}):t.each(function(){var t=this,o=arguments,u=t.__brush,a=n.input("function"==typeof e?e.apply(t,o):e,u.extent),c=i(t,o).beforestart();gp(t),u.selection=null==a||Ae(a)?null:a,r.call(t),c.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){A(new dd(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(s="function"==typeof t?t:pd([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):s},e.filter=function(t){return arguments.length?(f="function"==typeof t?t:pd(!!t),e):f},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function Re(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function qe(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Ue(){return new qe}function De(t){return t.source}function Oe(t){return t.target}function Fe(t){return t.radius}function Ie(t){return t.startAngle}function Ye(t){return t.endAngle}function Be(){}function He(t,n){var e=new Be;if(t instanceof Be)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function je(){return{}}function Xe(t,n,e){t[n]=e}function $e(){return He()}function Ve(t,n,e){t.set(n,e)}function We(){}function Ze(t,n){var e=new We;if(t instanceof We)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function Ge(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function Je(t,n){var e=Ge(t);return function(r,i){return n(e(r),i,t)}}function Qe(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function Ke(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,y=t._x1,g=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function tr(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)Ke(this,u[e],a[e],t[e]);return this}function nr(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function er(t){return t[0]}function rr(t){return t[1]}function ir(t,n,e){var r=new or(null==n?er:n,null==e?rr:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function or(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function ur(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function ar(t){return t.x+t.vx}function cr(t){return t.y+t.vy}function sr(t){return t.index}function fr(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function lr(t){return t.x}function hr(t){return t.y}function pr(t){return new dr(t)}function dr(t){if(!(n=Ov.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Dv[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,
+this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function vr(n){return Fv=Bv(n),t.format=Fv.format,t.formatPrefix=Fv.formatPrefix,Fv}function _r(){this.reset()}function yr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function gr(t){return t>1?0:t<-1?N_:Math.acos(t)}function mr(t){return t>1?S_:t<-1?-S_:Math.asin(t)}function xr(t){return(t=I_(t/2))*t}function br(){}function wr(t,n){t&&X_.hasOwnProperty(t.type)&&X_[t.type](t,n)}function Mr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Tr(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)Mr(t[e],n,1);n.polygonEnd()}function kr(){Z_.point=Sr}function Nr(){Er(Vv,Wv)}function Sr(t,n){Z_.point=Er,Vv=t,Wv=n,t*=z_,n*=z_,Zv=t,Gv=q_(n=n/2+E_),Jv=I_(n)}function Er(t,n){t*=z_,n*=z_,n=n/2+E_;var e=t-Zv,r=e>=0?1:-1,i=r*e,o=q_(n),u=I_(n),a=Jv*u,c=Gv*o+a*q_(i),s=a*r*I_(i);V_.add(R_(s,c)),Zv=t,Gv=o,Jv=u}function Ar(t){return[R_(t[1],t[0]),mr(t[2])]}function Cr(t){var n=t[0],e=t[1],r=q_(e);return[r*q_(n),r*I_(n),I_(e)]}function zr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Pr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Lr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Rr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function qr(t){var n=B_(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Ur(t,n){u_.push(a_=[Qv=t,t_=t]),n<Kv&&(Kv=n),n>n_&&(n_=n)}function Dr(t,n){var e=Cr([t*z_,n*z_]);if(o_){var r=Pr(o_,e),i=[r[1],-r[0],0],o=Pr(i,r);qr(o),o=Ar(o);var u,a=t-e_,c=a>0?1:-1,s=o[0]*C_*c,f=P_(a)>180;f^(c*e_<s&&s<c*t)?(u=o[1]*C_)>n_&&(n_=u):(s=(s+360)%360-180,f^(c*e_<s&&s<c*t)?(u=-o[1]*C_)<Kv&&(Kv=u):(n<Kv&&(Kv=n),n>n_&&(n_=n))),f?t<e_?Hr(Qv,t)>Hr(Qv,t_)&&(t_=t):Hr(t,t_)>Hr(Qv,t_)&&(Qv=t):t_>=Qv?(t<Qv&&(Qv=t),t>t_&&(t_=t)):t>e_?Hr(Qv,t)>Hr(Qv,t_)&&(t_=t):Hr(t,t_)>Hr(Qv,t_)&&(Qv=t)}else u_.push(a_=[Qv=t,t_=t]);n<Kv&&(Kv=n),n>n_&&(n_=n),o_=e,e_=t}function Or(){Q_.point=Dr}function Fr(){a_[0]=Qv,a_[1]=t_,Q_.point=Ur,o_=null}function Ir(t,n){if(o_){var e=t-e_;J_.add(P_(e)>180?e+(e>0?360:-360):e)}else r_=t,i_=n;Z_.point(t,n),Dr(t,n)}function Yr(){Z_.lineStart()}function Br(){Ir(r_,i_),Z_.lineEnd(),P_(J_)>k_&&(Qv=-(t_=180)),a_[0]=Qv,a_[1]=t_,o_=null}function Hr(t,n){return(n-=t)<0?n+360:n}function jr(t,n){return t[0]-n[0]}function Xr(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function $r(t,n){t*=z_,n*=z_;var e=q_(n);Vr(e*q_(t),e*I_(t),I_(n))}function Vr(t,n,e){++c_,f_+=(t-f_)/c_,l_+=(n-l_)/c_,h_+=(e-h_)/c_}function Wr(){ty.point=Zr}function Zr(t,n){t*=z_,n*=z_;var e=q_(n);b_=e*q_(t),w_=e*I_(t),M_=I_(n),ty.point=Gr,Vr(b_,w_,M_)}function Gr(t,n){t*=z_,n*=z_;var e=q_(n),r=e*q_(t),i=e*I_(t),o=I_(n),u=R_(B_((u=w_*o-M_*i)*u+(u=M_*r-b_*o)*u+(u=b_*i-w_*r)*u),b_*r+w_*i+M_*o);s_+=u,p_+=u*(b_+(b_=r)),d_+=u*(w_+(w_=i)),v_+=u*(M_+(M_=o)),Vr(b_,w_,M_)}function Jr(){ty.point=$r}function Qr(){ty.point=ti}function Kr(){ni(m_,x_),ty.point=$r}function ti(t,n){m_=t,x_=n,t*=z_,n*=z_,ty.point=ni;var e=q_(n);b_=e*q_(t),w_=e*I_(t),M_=I_(n),Vr(b_,w_,M_)}function ni(t,n){t*=z_,n*=z_;var e=q_(n),r=e*q_(t),i=e*I_(t),o=I_(n),u=w_*o-M_*i,a=M_*r-b_*o,c=b_*i-w_*r,s=B_(u*u+a*a+c*c),f=mr(s),l=s&&-f/s;__+=l*u,y_+=l*a,g_+=l*c,s_+=f,p_+=f*(b_+(b_=r)),d_+=f*(w_+(w_=i)),v_+=f*(M_+(M_=o)),Vr(b_,w_,M_)}function ei(t,n){return[t>N_?t-A_:t<-N_?t+A_:t,n]}function ri(t,n,e){return(t%=A_)?n||e?ry(oi(t),ui(n,e)):oi(t):n||e?ui(n,e):ei}function ii(t){return function(n,e){return n+=t,[n>N_?n-A_:n<-N_?n+A_:n,e]}}function oi(t){var n=ii(t);return n.invert=ii(-t),n}function ui(t,n){function e(t,n){var e=q_(n),a=q_(t)*e,c=I_(t)*e,s=I_(n),f=s*r+a*i;return[R_(c*o-f*u,a*r-s*i),mr(f*o+c*u)]}var r=q_(t),i=I_(t),o=q_(n),u=I_(n);return e.invert=function(t,n){var e=q_(n),a=q_(t)*e,c=I_(t)*e,s=I_(n),f=s*o-c*u;return[R_(c*o+s*u,a*r+f*i),mr(f*r-a*i)]},e}function ai(t,n,e,r,i,o){if(e){var u=q_(n),a=I_(n),c=r*e;null==i?(i=n+r*A_,o=n-c/2):(i=ci(u,i),o=ci(u,o),(r>0?i<o:i>o)&&(i+=r*A_));for(var s,f=i;r>0?f>o:f<o;f-=c)s=Ar([u,-a*q_(f),-a*I_(f)]),t.point(s[0],s[1])}}function ci(t,n){n=Cr(n),n[0]-=t,qr(n);var e=gr(-n[1]);return((-n[2]<0?-e:e)+A_-k_)%A_}function si(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function fi(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function li(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0)do{s.point(0===f||3===f?t:e,f>1?r:n)}while((f=(f+a+4)%4)!==l);else s.point(o[0],o[1])}function u(r,i){return P_(r[0]-t)<k_?i>0?0:3:P_(r[0]-e)<k_?i>0?2:1:P_(r[1]-n)<k_?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&N.point(t,n)}function s(){for(var n=0,e=0,i=_.length;e<i;++e)for(var o,u,a=_[e],c=1,s=a.length,f=a[0],l=f[0],h=f[1];c<s;++c)o=l,u=h,f=a[c],l=f[0],h=f[1],u<=r?h>r&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){N=S,v=[],_=[],k=!0}function l(){var t=s(),n=k&&t,e=(v=bf(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&xy(v,a,t,o,u),u.polygonEnd()),N=u,v=_=y=null}function h(){E.point=d,_&&_.push(y=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(g,m),x&&M&&S.rejoin(),v.push(S.result())),E.point=c,M&&N.lineEnd()}function d(o,u){var a=i(o,u);if(_&&y.push([o,u]),T)g=o,m=u,x=a,T=!1,a&&(N.lineStart(),N.point(o,u));else if(a&&M)N.point(o,u);else{var c=[b=Math.max(wy,Math.min(by,b)),w=Math.max(wy,Math.min(by,w))],s=[o=Math.max(wy,Math.min(by,o)),u=Math.max(wy,Math.min(by,u))];gy(c,s,t,n,e,r)?(M||(N.lineStart(),N.point(c[0],c[1])),N.point(s[0],s[1]),a||N.lineEnd(),k=!1):a&&(N.lineStart(),N.point(o,u),k=!1)}b=o,w=u,M=a}var v,_,y,g,m,x,b,w,M,T,k,N=u,S=yy(),E={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return E}}function hi(){Sy.point=di,Sy.lineEnd=pi}function pi(){Sy.point=Sy.lineEnd=br}function di(t,n){t*=z_,n*=z_,iy=t,oy=I_(n),uy=q_(n),Sy.point=vi}function vi(t,n){t*=z_,n*=z_;var e=I_(n),r=q_(n),i=P_(t-iy),o=q_(i),u=I_(i),a=r*u,c=uy*e-oy*r*o,s=oy*e+uy*r*o;Ny.add(R_(B_(a*a+c*c),s)),iy=t,oy=e,uy=r}function _i(t,n){return!(!t||!Ly.hasOwnProperty(t.type))&&Ly[t.type](t,n)}function yi(t,n){return 0===zy(t,n)}function gi(t,n){var e=zy(t[0],t[1]);return zy(t[0],n)+zy(n,t[1])<=e+k_}function mi(t,n){return!!ky(t.map(xi),bi(n))}function xi(t){return t=t.map(bi),t.pop(),t}function bi(t){return[t[0]*z_,t[1]*z_]}function wi(t,n,e){var r=cf(t,n-k_,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function Mi(t,n,e){var r=cf(t,n-k_,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Ti(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return cf(U_(o/_)*_,i,_).map(h).concat(cf(U_(s/y)*y,c,y).map(p)).concat(cf(U_(r/d)*d,e,d).filter(function(t){return P_(t%_)>k_}).map(f)).concat(cf(U_(a/v)*v,u,v).filter(function(t){return P_(t%y)>k_}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,y=360,g=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(g)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(g)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],y=+n[1],t):[_,y]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(g=+n,f=wi(a,u,90),l=Mi(r,e,g),h=wi(s,c,90),p=Mi(o,i,g),t):g},t.extentMajor([[-180,-90+k_],[180,90-k_]]).extentMinor([[-180,-80-k_],[180,80+k_]])}function ki(){return Ti()()}function Ni(){Fy.point=Si}function Si(t,n){Fy.point=Ei,ay=sy=t,cy=fy=n}function Ei(t,n){Oy.add(fy*t-sy*n),sy=t,fy=n}function Ai(){Ei(ay,cy)}function Ci(t,n){t<Iy&&(Iy=t),t>By&&(By=t),n<Yy&&(Yy=n),n>Hy&&(Hy=n)}function zi(t,n){Xy+=t,$y+=n,++Vy}function Pi(){tg.point=Li}function Li(t,n){tg.point=Ri,zi(py=t,dy=n)}function Ri(t,n){var e=t-py,r=n-dy,i=B_(e*e+r*r);Wy+=i*(py+t)/2,Zy+=i*(dy+n)/2,Gy+=i,zi(py=t,dy=n)}function qi(){tg.point=zi}function Ui(){tg.point=Oi}function Di(){Fi(ly,hy)}function Oi(t,n){tg.point=Fi,zi(ly=py=t,hy=dy=n)}function Fi(t,n){var e=t-py,r=n-dy,i=B_(e*e+r*r);Wy+=i*(py+t)/2,Zy+=i*(dy+n)/2,Gy+=i,i=dy*t-py*n,Jy+=i*(py+t),Qy+=i*(dy+n),Ky+=3*i,zi(py=t,dy=n)}function Ii(t){this._context=t}function Yi(t,n){ag.point=Bi,eg=ig=t,rg=og=n}function Bi(t,n){ig-=t,og-=n,ug.add(B_(ig*ig+og*og)),ig=t,og=n}function Hi(){this._string=[]}function ji(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Xi(t){return t.length>1}function $i(t,n){return((t=t.x)[0]<0?t[1]-S_-k_:S_-t[1])-((n=n.x)[0]<0?n[1]-S_-k_:S_-n[1])}function Vi(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?N_:-N_,c=P_(o-e);P_(c-N_)<k_?(t.point(e,r=(r+u)/2>0?S_:-S_),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=N_&&(P_(e-i)<k_&&(e-=i*k_),P_(o-a)<k_&&(o-=a*k_),r=Wi(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}function Wi(t,n,e,r){var i,o,u=I_(t-e);return P_(u)>k_?L_((I_(n)*(o=q_(r))*I_(e)-I_(r)*(i=q_(n))*I_(t))/(i*o*u)):(n+r)/2}function Zi(t,n,e,r){var i;if(null==t)i=e*S_,r.point(-N_,i),r.point(0,i),r.point(N_,i),r.point(N_,0),r.point(N_,-i),r.point(0,-i),r.point(-N_,-i),r.point(-N_,0),r.point(-N_,i);else if(P_(t[0]-n[0])>k_){var o=t[0]<n[0]?N_:-N_;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}function Gi(t){return function(n){var e=new Ji;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ji(){}function Qi(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),$_(e,t.stream(jy));var u=jy.result(),a=Math.min(r/(u[1][0]-u[0][0]),i/(u[1][1]-u[0][1])),c=+n[0][0]+(r-a*(u[1][0]+u[0][0]))/2,s=+n[0][1]+(i-a*(u[1][1]+u[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([c,s])}function Ki(t,n,e){return Qi(t,[[0,0],n],e)}function to(t){return Gi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function no(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,_){var y=s-r,g=f-i,m=y*y+g*g;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=B_(x*x+b*b+w*w),T=mr(w/=M),k=P_(P_(w)-1)<k_||P_(o-l)<k_?(o+l)/2:R_(b,x),N=t(k,T),S=N[0],E=N[1],A=S-r,C=E-i,z=g*A-y*C;(z*z/m>n||P_((y*A+g*C)/m-.5)>.3||u*h+a*p+c*d<dg)&&(e(r,i,o,u,a,c,S,E,k,x/=M,b/=M,w,v,_),_.point(S,E),e(S,E,k,x,b,w,s,f,l,h,p,d,v,_))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){y=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Cr([r,i]),u=t(r,i);e(y,g,_,m,x,b,y=u[0],g=u[1],_=r,m=o[0],x=o[1],b=o[2],pg,n),n.point(y,g)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=y,h=g,p=m,d=x,v=b,w.point=o}function s(){e(y,g,_,m,x,b,l,h,f,p,d,v,pg,n),w.lineEnd=u,u()}var f,l,h,p,d,v,_,y,g,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}function eo(t){return ro(function(){return t})()}function ro(t){function n(t){return t=f(t[0]*z_,t[1]*z_),[t[0]*_+a,c-t[1]*_]}function e(t){return(t=f.invert((t[0]-a)/_,(c-t[1])/_))&&[t[0]*C_,t[1]*C_]}function r(t,n){return t=u(t,n),[t[0]*_+a,c-t[1]*_]}function i(){f=ry(s=ri(b,w,M),u);var t=u(m,x);return a=y-t[0]*_,c=g+t[1]*_,o()}function o(){return d=v=null,n}var u,a,c,s,f,l,h,p,d,v,_=150,y=480,g=250,m=0,x=0,b=0,w=0,M=0,T=null,k=fg,N=null,S=Uy,E=.5,A=vg(r,E);return n.stream=function(t){return d&&v===t?d:d=_g(k(s,A(S(v=t))))},n.clipAngle=function(t){return arguments.length?(k=+t?lg(T=t*z_,6*z_):(T=null,fg),o()):T*C_},n.clipExtent=function(t){return arguments.length?(S=null==t?(N=l=h=p=null,Uy):li(N=+t[0][0],l=+t[0][1],h=+t[1][0],p=+t[1][1]),o()):null==N?null:[[N,l],[h,p]]},n.scale=function(t){return arguments.length?(_=+t,i()):_},n.translate=function(t){return arguments.length?(y=+t[0],g=+t[1],i()):[y,g]},n.center=function(t){return arguments.length?(m=t[0]%360*z_,x=t[1]%360*z_,i()):[m*C_,x*C_]},n.rotate=function(t){return arguments.length?(b=t[0]%360*z_,w=t[1]%360*z_,M=t.length>2?t[2]%360*z_:0,i()):[b*C_,w*C_,M*C_]},n.precision=function(t){return arguments.length?(A=vg(r,E=t*t),o()):B_(E)},n.fitExtent=function(t,e){return Qi(n,t,e)},n.fitSize=function(t,e){return Ki(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function io(t){var n=0,e=N_/3,r=ro(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*z_,e=t[1]*z_):[n*C_,e*C_]},i}function oo(t){function n(t,n){return[t*e,I_(n)/e]}var e=q_(t);return n.invert=function(t,n){return[t/e,mr(n*e)]},n}function uo(t,n){function e(t,n){var e=B_(o-2*i*I_(n))/i;return[e*I_(t*=i),u-e*q_(t)]}var r=I_(t),i=(r+I_(n))/2;if(P_(i)<k_)return oo(t);var o=1+r*(2*i-r),u=B_(o)/i;return e.invert=function(t,n){var e=u-n;return[R_(t,P_(e))/i*Y_(e),mr((o-(t*t+e*e)*i*i)/(2*i))]},e}function ao(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function co(t){return function(n,e){var r=q_(n),i=q_(e),o=t(r*i);return[o*i*I_(n),o*I_(e)]}}function so(t){return function(n,e){var r=B_(n*n+e*e),i=t(r),o=I_(i),u=q_(i);return[R_(n*o,r*u),mr(r&&e*o/r)]}}function fo(t,n){return[t,O_(H_((S_+n)/2))]}function lo(t){function n(){var n=N_*a(),u=o(vy(o.rotate()).invert([0,0]));return s(null==f?[[u[0]-n,u[1]-n],[u[0]+n,u[1]+n]]:t===fo?[[Math.max(u[0]-n,f),e],[Math.min(u[0]+n,r),i]]:[[f,Math.max(u[1]-n,e)],[r,Math.min(u[1]+n,i)]])}var e,r,i,o=eo(t),u=o.center,a=o.scale,c=o.translate,s=o.clipExtent,f=null;return o.scale=function(t){return arguments.length?(a(t),n()):a()},o.translate=function(t){return arguments.length?(c(t),n()):c()},o.center=function(t){return arguments.length?(u(t),n()):u()},o.clipExtent=function(t){return arguments.length?(null==t?f=e=r=i=null:(f=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==f?null:[[f,e],[r,i]]},n()}function ho(t){return H_((S_+t)/2)}function po(t,n){function e(t,n){o>0?n<-S_+k_&&(n=-S_+k_):n>S_-k_&&(n=S_-k_);var e=o/F_(ho(n),i);return[e*I_(i*t),o-e*q_(i*t)]}var r=q_(t),i=t===n?I_(t):O_(r/q_(n))/O_(ho(n)/ho(t)),o=r*F_(ho(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=Y_(i)*B_(t*t+e*e);return[R_(t,P_(e))/i*Y_(e),2*L_(F_(o/r,1/i))-S_]},e):fo}function vo(t,n){return[t,n]}function _o(t,n){function e(t,n){var e=o-n,r=i*t;return[e*I_(r),o-e*q_(r)]}var r=q_(t),i=t===n?I_(t):(r-q_(n))/(n-t),o=r/i+t;return P_(i)<k_?vo:(e.invert=function(t,n){var e=o-n;return[R_(t,P_(e))/i*Y_(e),o-Y_(i)*B_(t*t+e*e)]},e)}function yo(t,n){var e=q_(n),r=q_(t)*e;return[e*I_(t)/r,I_(n)/r]}function go(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?Uy:Gi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function mo(t,n){return[q_(n)*I_(t),I_(n)]}function xo(t,n){var e=q_(n),r=1+q_(t)*e;return[e*I_(t)/r,I_(n)/r]}function bo(t,n){return[O_(H_((S_+n)/2)),-t]}function wo(t,n){return t.parent===n.parent?1:2}function Mo(t){return t.reduce(To,0)/t.length}function To(t,n){return t+n.x}function ko(t){return 1+t.reduce(No,0)}function No(t,n){return Math.max(t,n.y)}function So(t){for(var n;n=t.children;)t=n[0];return t}function Eo(t){for(var n;n=t.children;)t=n[n.length-1];return t}function Ao(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Co(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function zo(t,n){var e,r,i,o,u,a=new Uo(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=Lo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new Uo(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(qo)}function Po(){return zo(this).eachBefore(Ro)}function Lo(t){return t.children}function Ro(t){t.data=t.data.data}function qo(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Uo(t){this.data=t,this.depth=this.height=0,this.parent=null}function Do(t){this._=t,this.next=null}function Oo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Fo(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Io(n[0]);break;case 2:e=Yo(n[0],n[1]);break;case 3:e=Bo(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&Oo(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Fo(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Io(t){return{x:t.x,y:t.y,r:t.r}}function Yo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Bo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),y=2*(i-f),g=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*y,b=(p*m-y*v)/x-r,w=(y*d-p*g)/x,M=(_*v-h*m)/x-i,T=(h*g-_*d)/x,k=w*w+T*T-1,N=2*(b*w+M*T+o),S=b*b+M*M-o*o,E=(-N-Math.sqrt(N*N-4*k*S))/(2*k);return{x:b+w*E+r,y:M+T*E+i,r:E}}function Ho(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function jo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function Xo(t,n,e){var r=t._,i=t.next._,o=r.r+i.r,u=(r.x*i.r+i.x*r.r)/o-n,a=(r.y*i.r+i.y*r.r)/o-e;return u*u+a*a}function $o(t){this._=t,this.next=null,this.previous=null}function Vo(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Ho(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,y=h*n.y+p*e.y+d*r.y;n=new $o(n),e=new $o(e),r=new $o(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){Ho(n._,e._,r=t[a]),r=new $o(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do{if(f<=l){if(jo(c._,r._)){e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(jo(s._,r._)){n=s,n.next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,v+=d=r._.r*r._.r,_+=d*r._.x,y+=d*r._.y,h=Xo(n,o=_/v,u=y/v);(r=r.next)!==e;)(d=Xo(r,o,u))<h&&(n=r,h=d);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=$g(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function Wo(t){return null==t?null:Zo(t)}function Zo(t){if("function"!=typeof t)throw new Error;return t}function Go(){return 0}function Jo(t){return Math.sqrt(t.value)}function Qo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Ko(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Vo(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function tu(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function nu(t){return t.id}function eu(t){return t.parentId}function ru(t,n){return t.parent===n.parent?1:2}function iu(t){var n=t.children;return n?n[0]:t.t}function ou(t){var n=t.children;return n?n[n.length-1]:t.t}function uu(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function au(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function cu(t,n,e){return t.a.parent===n.parent?t.a:e}function su(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function fu(t){for(var n,e,r,i,o,u=new su(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new su(r[i],i)),e.parent=n;return(u.parent=new su(null,0)).children=[u],u}function lu(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,y=[],g=n.children,m=0,x=0,b=g.length,w=n.value;m<b;){c=i-e,s=o-r;do{f=g[x++].value}while(!f&&x<b);for(l=h=f,v=Math.max(s/c,c/s)/(w*t),_=f*f*v,d=Math.max(h/_,_/l);x<b;++x){if(f+=a=g[x].value,a<l&&(l=a),a>h&&(h=a),_=f*f*v,(p=Math.max(h/_,_/l))>d){f-=a;break}d=p}y.push(u={value:f,dice:c<s,children:g.slice(m,x)}),u.dice?Jg(u,e,r,i,w?r+=s*f/w:o):im(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return y}function hu(t,n){return t[0]-n[0]||t[1]-n[1]}function pu(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&pm(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function du(t){this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function vu(t){if(!t._start)try{_u(t)}catch(n){if(t._tasks[t._ended+t._active-1])gu(t,n);else if(!t._data)throw n}}function _u(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=yu(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||gm)}}function yu(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?gu(t,e):(t._data[n]=r,t._waiting?vu(t):mu(t))))}}function gu(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(n){}t._active=NaN,mu(t)}function mu(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function xu(t){if(null==t)t=1/0;else if(!((t=+t)>=1))throw new Error("invalid concurrency");return new du(t)}function bu(t){return function(n,e){t(null==n?e:null)}}function wu(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}function Mu(t,n){return function(e){return t(e.responseText,n)}}function Tu(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==Om)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=He(),r=[],i=Om;return t=null==t?[]:Dm.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=He();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Dm.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return Tu().domain(r).range(t).unknown(i)},n}function ku(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=cf(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=Tu().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return ku().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function Nu(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Nu(n())},t}function Su(){return Nu(ku().paddingInner(1))}function Eu(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:Fm(n)}function Au(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}function Cu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function zu(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}}function Pu(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=Vs(t,n,1,i)-1;return u[e](o[e](n))}}function Lu(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Ru(t,n){function e(){return i=Math.min(a.length,c.length)>2?Pu:zu,o=u=null,r}function r(n){return(o||(o=i(a,c,f?Au(t):t,s)))(+n)}var i,o,u,a=Ym,c=Ym,s=qh,f=!1;return r.invert=function(t){return(u||(u=i(c,a,Eu,f?Cu(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Um.call(t,Im),e()):a.slice()},r.range=function(t){return arguments.length?(c=Dm.call(t),e()):c.slice()},r.rangeRound=function(t){return c=Dm.call(t),s=Uh,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function qu(t){var n=t.domain;return t.ticks=function(t){var e=n();return hf(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Bm(n(),t,e)},t.nice=function(e){null==e&&(e=10);var i,o=n(),u=0,a=o.length-1,c=o[u],s=o[a];return s<c&&(i=c,c=s,s=i,i=u,u=a,a=i),i=r(c,s,e),i>0?(c=Math.floor(c/i)*i,s=Math.ceil(s/i)*i,i=r(c,s,e)):i<0&&(c=Math.ceil(c*i)/i,s=Math.floor(s*i)/i,i=r(c,s,e)),i>0?(o[u]=Math.floor(c/i)*i,o[a]=Math.ceil(s/i)*i,n(o)):i<0&&(o[u]=Math.ceil(c*i)/i,o[a]=Math.floor(s*i)/i,n(o)),t},t}function Uu(){var t=Ru(Eu,Ch);return t.copy=function(){return Lu(t,Uu())},qu(t)}function Du(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Um.call(e,Im),t):n.slice()},t.copy=function(){return Du().domain(n)},qu(t)}function Ou(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:Fm(n)}function Fu(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function Iu(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Yu(t){return 10===t?Iu:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function Bu(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Hu(t){return function(n){return-t(-n)}}function ju(){function n(){return o=Bu(i),u=Yu(i),r()[0]<0&&(o=Hu(o),u=Hu(u)),e}var e=Ru(Ou,Fu).domain([1,10]),r=e.domain,i=10,o=Bu(10),u=Yu(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else v=hf(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):""}},e.nice=function(){return r(Hm(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return Lu(e,ju().base(i))},e}function Xu(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function $u(){function t(t,n){return(n=Xu(n,e)-(t=Xu(t,e)))?function(r){return(Xu(r,e)-t)/n}:Fm(n)}function n(t,n){return n=Xu(n,e)-(t=Xu(t,e)),function(r){return Xu(t+n*r,1/e)}}var e=1,r=Ru(t,n),i=r.domain;return r.exponent=function(t){return arguments.length?(e=+t,i(i())):e},r.copy=function(){return Lu(r,$u().exponent(e))},qu(r)}function Vu(){return $u().exponent(.5)}function Wu(){function t(){var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=vf(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[Vs(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)null==(r=n[i])||isNaN(r=+r)||e.push(r);return e.sort(js),t()},n.range=function(n){return arguments.length?(r=Dm.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return Wu().domain(e).range(r)},n}function Zu(){function t(t){if(t<=t)return u[Vs(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=Dm.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Zu().domain([e,r]).range(u)},qu(t)}function Gu(){function t(t){if(t<=t)return e[Vs(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Dm.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Dm.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Gu().domain(n).range(e)},t}function Ju(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(new Date(+e))}while(n(e,o),t(e),e<r);return u},i.filter=function(e){return Ju(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return jm.setTime(+n),Xm.setTime(+r),t(jm),t(Xm),Math.floor(e(jm,Xm))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function Qu(t){return Ju(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Wm)/Zm})}function Ku(t){return Ju(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Zm})}function ta(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function na(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ea(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function ra(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=Vx[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),
+u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join("")}}function e(t,n){return function(e){var i=ea(1900);if(r(i,t,e+="",0)!=e.length)return null;if("p"in i&&(i.H=i.H%12+12*i.p),"W"in i||"U"in i){"w"in i||(i.w="W"in i?1:0);var o="Z"in i?na(ea(i.y)).getUTCDay():n(ea(i.y)).getDay();i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7}return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,na(i)):n(i)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(o=B[i in Vx?n.charAt(u++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=R.exec(n.slice(e));return r?(t.w=q[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=L[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return S[t.getDay()]}function p(t){return N[t.getDay()]}function d(t){return A[t.getMonth()]}function v(t){return E[t.getMonth()]}function _(t){return k[+(t.getHours()>=12)]}function y(t){return S[t.getUTCDay()]}function g(t){return N[t.getUTCDay()]}function m(t){return A[t.getUTCMonth()]}function x(t){return E[t.getUTCMonth()]}function b(t){return k[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,k=t.periods,N=t.days,S=t.shortDays,E=t.months,A=t.shortMonths,C=ua(k),z=aa(k),P=ua(N),L=aa(N),R=ua(S),q=aa(S),U=ua(E),D=aa(E),O=ua(A),F=aa(A),I={a:h,A:p,b:d,B:v,c:null,d:wa,e:wa,H:Ma,I:Ta,j:ka,L:Na,m:Sa,M:Ea,p:_,S:Aa,U:Ca,w:za,W:Pa,x:null,X:null,y:La,Y:Ra,Z:qa,"%":Ga},Y={a:y,A:g,b:m,B:x,c:null,d:Ua,e:Ua,H:Da,I:Oa,j:Fa,L:Ia,m:Ya,M:Ba,p:b,S:Ha,U:ja,w:Xa,W:$a,x:null,X:null,y:Va,Y:Wa,Z:Za,"%":Ga},B={a:o,A:u,b:a,B:c,c:s,d:va,e:va,H:ya,I:ya,j:_a,L:xa,m:da,M:ga,p:i,S:ma,U:sa,w:ca,W:fa,x:f,X:l,y:ha,Y:la,Z:pa,"%":ba};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+="",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",ta);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,na);return n.toString=function(){return t},n}}}function ia(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function oa(t){return t.replace(Gx,"\\$&")}function ua(t){return new RegExp("^(?:"+t.map(oa).join("|")+")","i")}function aa(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function ca(t,n,e){var r=Wx.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function sa(t,n,e){var r=Wx.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function fa(t,n,e){var r=Wx.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function la(t,n,e){var r=Wx.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ha(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function pa(t,n,e){var r=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function da(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function va(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function _a(t,n,e){var r=Wx.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function ya(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function ga(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function ma(t,n,e){var r=Wx.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function xa(t,n,e){var r=Wx.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ba(t,n,e){var r=Zx.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function wa(t,n){return ia(t.getDate(),n,2)}function Ma(t,n){return ia(t.getHours(),n,2)}function Ta(t,n){return ia(t.getHours()%12||12,n,2)}function ka(t,n){return ia(1+ex.count(xx(t),t),n,3)}function Na(t,n){return ia(t.getMilliseconds(),n,3)}function Sa(t,n){return ia(t.getMonth()+1,n,2)}function Ea(t,n){return ia(t.getMinutes(),n,2)}function Aa(t,n){return ia(t.getSeconds(),n,2)}function Ca(t,n){return ia(ix.count(xx(t),t),n,2)}function za(t){return t.getDay()}function Pa(t,n){return ia(ox.count(xx(t),t),n,2)}function La(t,n){return ia(t.getFullYear()%100,n,2)}function Ra(t,n){return ia(t.getFullYear()%1e4,n,4)}function qa(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+ia(n/60|0,"0",2)+ia(n%60,"0",2)}function Ua(t,n){return ia(t.getUTCDate(),n,2)}function Da(t,n){return ia(t.getUTCHours(),n,2)}function Oa(t,n){return ia(t.getUTCHours()%12||12,n,2)}function Fa(t,n){return ia(1+Nx.count(jx(t),t),n,3)}function Ia(t,n){return ia(t.getUTCMilliseconds(),n,3)}function Ya(t,n){return ia(t.getUTCMonth()+1,n,2)}function Ba(t,n){return ia(t.getUTCMinutes(),n,2)}function Ha(t,n){return ia(t.getUTCSeconds(),n,2)}function ja(t,n){return ia(Ex.count(jx(t),t),n,2)}function Xa(t){return t.getUTCDay()}function $a(t,n){return ia(Ax.count(jx(t),t),n,2)}function Va(t,n){return ia(t.getUTCFullYear()%100,n,2)}function Wa(t,n){return ia(t.getUTCFullYear()%1e4,n,4)}function Za(){return"+0000"}function Ga(){return"%"}function Ja(n){return Xx=ra(n),t.timeFormat=Xx.format,t.timeParse=Xx.parse,t.utcFormat=Xx.utcFormat,t.utcParse=Xx.utcParse,Xx}function Qa(t){return t.toISOString()}function Ka(t){var n=new Date(t);return isNaN(n)?null:n}function tc(t){return new Date(t)}function nc(t){return t instanceof Date?+t:+new Date(+t)}function ec(t,n,e,r,o,u,a,c,s){function f(i){return(a(i)<i?v:u(i)<i?_:o(i)<i?y:r(i)<i?g:n(i)<i?e(i)<i?m:x:t(i)<i?b:w)(i)}function l(n,e,r,o){if(null==n&&(n=10),"number"==typeof n){var u=Math.abs(r-e)/n,a=Xs(function(t){return t[2]}).right(M,u);a===M.length?(o=i(e/ob,r/ob,n),n=t):a?(a=M[u/M[a-1][2]<M[a][2]/u?a-1:a],o=a[1],n=a[0]):(o=i(e,r,n),n=c)}return null==o?n:n.every(o)}var h=Ru(Eu,Ch),p=h.invert,d=h.domain,v=s(".%L"),_=s(":%S"),y=s("%I:%M"),g=s("%I %p"),m=s("%a %d"),x=s("%b %d"),b=s("%B"),w=s("%Y"),M=[[a,1,Kx],[a,5,5*Kx],[a,15,15*Kx],[a,30,30*Kx],[u,1,tb],[u,5,5*tb],[u,15,15*tb],[u,30,30*tb],[o,1,nb],[o,3,3*nb],[o,6,6*nb],[o,12,12*nb],[r,1,eb],[r,2,2*eb],[e,1,rb],[n,1,ib],[n,3,3*ib],[t,1,ob]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?d(Um.call(t,nc)):d().map(tc)},h.ticks=function(t,n){var e,r=d(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},h.tickFormat=function(t,n){return null==n?f:s(n)},h.nice=function(t,n){var e=d();return(t=l(t,e[0],e[e.length-1],n))?d(Hm(e,t)):h},h.copy=function(){return Lu(h,ec(t,n,e,r,o,u,a,c,s))},h}function rc(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function ic(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return ic(t).domain([e,r]).clamp(i)},qu(n)}function oc(t){return t>1?0:t<-1?zb:Math.acos(t)}function uc(t){return t>=1?Pb:t<=-1?-Pb:Math.asin(t)}function ac(t){return t.innerRadius}function cc(t){return t.outerRadius}function sc(t){return t.startAngle}function fc(t){return t.endAngle}function lc(t){return t&&t.padAngle}function hc(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function pc(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/Ab(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,y=(p+v)/2,g=d-h,m=v-p,x=g*g+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*Ab(Nb(0,b*b*x-w*w)),T=(w*m-g*M)/x,k=(-w*g-m*M)/x,N=(w*m+g*M)/x,S=(-w*g+m*M)/x,E=T-_,A=k-y,C=N-_,z=S-y;return E*E+A*A>C*C+z*z&&(T=N,k=S),{cx:T,cy:k,x01:-f,y01:-l,x11:T*(i/b-1),y11:k*(i/b-1)}}function dc(t){this._context=t}function vc(t){return t[0]}function _c(t){return t[1]}function yc(t){this._curve=t}function gc(t){function n(n){return new yc(t(n))}return n._curve=t,n}function mc(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(gc(t)):n()._curve},t}function xc(t){return t.source}function bc(t){return t.target}function wc(t){function n(){var n,a=jb.call(arguments),c=e.apply(this,a),s=r.apply(this,a);if(u||(u=n=Ue()),t(u,+i.apply(this,(a[0]=c,a)),+o.apply(this,a),+i.apply(this,(a[0]=s,a)),+o.apply(this,a)),n)return u=null,n+""||null}var e=xc,r=bc,i=vc,o=_c,u=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:wb(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:wb(+t),n):o},n.context=function(t){return arguments.length?(u=null==t?null:t,n):u},n}function Mc(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Tc(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function kc(t,n,e,r,i){var o=Xb(n,e),u=Xb(n,e=(e+i)/2),a=Xb(r,e),c=Xb(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(u[0],u[1],a[0],a[1],c[0],c[1])}function Nc(){return wc(Mc)}function Sc(){return wc(Tc)}function Ec(){var t=wc(kc);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}function Ac(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Cc(t){this._context=t}function zc(t){this._context=t}function Pc(t){this._context=t}function Lc(t,n){this._basis=new Cc(t),this._beta=n}function Rc(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function qc(t,n){this._context=t,this._k=(1-n)/6}function Uc(t,n){this._context=t,this._k=(1-n)/6}function Dc(t,n){this._context=t,this._k=(1-n)/6}function Oc(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>Cb){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Cb){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function Fc(t,n){this._context=t,this._alpha=n}function Ic(t,n){this._context=t,this._alpha=n}function Yc(t,n){this._context=t,this._alpha=n}function Bc(t){this._context=t}function Hc(t){return t<0?-1:1}function jc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Hc(o)+Hc(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function Xc(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function $c(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function Vc(t){this._context=t}function Wc(t){this._context=new Zc(t)}function Zc(t){this._context=t}function Gc(t){return new Vc(t)}function Jc(t){return new Wc(t)}function Qc(t){this._context=t}function Kc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function ts(t,n){this._context=t,this._t=n}function ns(t){return new ts(t,0)}function es(t){return new ts(t,1)}function rs(t,n){return t[n]}function is(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function os(t){return t[0]}function us(t){return t[1]}function as(){this._=null}function cs(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function ss(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function fs(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function ls(t){for(;t.L;)t=t.L;return t}function hs(t,n,e,r){var i=[null,null],o=Yw.push(i)-1;return i.left=t,i.right=n,e&&ds(i,t,n,e),r&&ds(i,n,t,r),Fw[t.index].halfedges.push(o),Fw[n.index].halfedges.push(o),i}function ps(t,n,e){var r=[n,e];return r.left=t,r}function ds(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function vs(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=a[0],l=a[1],h=0,p=1,d=f-c,v=l-s;if(o=n-c,d||!(o>0)){if(o/=d,d<0){if(o<h)return;o<p&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o<h)return;o<p&&(p=o)}if(o=e-s,v||!(o>0)){if(o/=v,v<0){if(o<h)return;o<p&&(p=o)}else if(v>0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o<h)return;o<p&&(p=o)}return!(h>0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function _s(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=_-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function ys(t,n,e,r){for(var i,o=Yw.length;o--;)_s(i=Yw[o],t,n,e,r)&&vs(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>jw||Math.abs(i[0][1]-i[1][1])>jw)||delete Yw[o]}function gs(t){return Fw[t.index]={site:t,halfedges:[]}}function ms(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function xs(t,n){return n[+(n.left!==t.site)]}function bs(t,n){return n[+(n.left===t.site)]}function ws(){for(var t,n,e,r,i=0,o=Fw.length;i<o;++i)if((t=Fw[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=ms(t,Yw[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}function Ms(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,_=Fw.length,y=!0;for(i=0;i<_;++i)if(o=Fw[i]){for(u=o.site,c=o.halfedges,a=c.length;a--;)Yw[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)p=bs(o,Yw[c[a]]),d=p[0],v=p[1],f=xs(o,Yw[c[++a%s]]),l=f[0],h=f[1],(Math.abs(d-l)>jw||Math.abs(v-h)>jw)&&(c.splice(a,0,Yw.push(ps(u,p,Math.abs(d-t)<jw&&r-v>jw?[t,Math.abs(l-t)<jw?h:r]:Math.abs(v-r)<jw&&e-d>jw?[Math.abs(h-r)<jw?l:e,r]:Math.abs(d-e)<jw&&v-n>jw?[e,Math.abs(l-e)<jw?h:n]:Math.abs(v-n)<jw&&d-t>jw?[Math.abs(h-n)<jw?l:t,n]:null))-1),++s);s&&(y=!1)}if(y){var g,m,x,b=1/0;for(i=0,y=null;i<_;++i)(o=Fw[i])&&(u=o.site,g=u[0]-t,m=u[1]-n,(x=g*g+m*m)<b&&(b=x,y=o));if(y){var w=[t,n],M=[t,r],T=[e,r],k=[e,n];y.halfedges.push(Yw.push(ps(u=y.site,w,M))-1,Yw.push(ps(u,M,T))-1,Yw.push(ps(u,T,k))-1,Yw.push(ps(u,k,w))-1)}}for(i=0;i<_;++i)(o=Fw[i])&&(o.halfedges.length||delete Fw[i])}function Ts(){cs(this),this.x=this.y=this.arc=this.site=this.cy=null}function ks(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-Xw)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,y=Bw.pop()||new Ts;y.arc=t,y.site=i,y.x=v+u,y.y=(y.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=y;for(var g=null,m=Iw._;m;)if(y.y<m.y||y.y===m.y&&y.x<=m.x){if(!m.L){g=m.P;break}m=m.L}else{if(!m.R){g=m;break}m=m.R}Iw.insert(g,y),g||(Dw=y)}}}}function Ns(t){var n=t.circle;n&&(n.P||(Dw=n.N),Iw.remove(n),Bw.push(n),cs(n),t.circle=null)}function Ss(){cs(this),this.edge=this.site=this.circle=null}function Es(t){var n=Hw.pop()||new Ss;return n.site=t,n}function As(t){Ns(t),Ow.remove(t),Hw.push(t),cs(t)}function Cs(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];As(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<jw&&Math.abs(r-c.circle.cy)<jw;)o=c.P,a.unshift(c),As(c),c=o;a.unshift(c),Ns(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<jw&&Math.abs(r-s.circle.cy)<jw;)u=s.N,a.push(s),As(s),s=u;a.push(s),Ns(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],ds(s.edge,c.site,s.site,i);c=a[0],s=a[l-1],s.edge=hs(c.site,s.site,null,i),ks(c),ks(s)}function zs(t){for(var n,e,r,i,o=t[0],u=t[1],a=Ow._;a;)if((r=Ps(a,u)-o)>jw)a=a.L;else{if(!((i=o-Ls(a,u))>jw)){r>-jw?(n=a.P,e=a):i>-jw?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}gs(t);var c=Es(t);if(Ow.insert(n,c),n||e){if(n===e)return Ns(n),e=Es(n.site),Ow.insert(c,e),c.edge=e.edge=hs(n.site,c.site),ks(n),void ks(e);if(!e)return void(c.edge=hs(n.site,c.site));Ns(n),Ns(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,y=2*(h*_-p*v),g=h*h+p*p,m=v*v+_*_,x=[(_*g-p*m)/y+f,(h*m-v*g)/y+l];ds(e.edge,s,d,x),c.edge=hs(s,t,null,x),e.edge=hs(t,d,null,x),ks(n),ks(e)}}function Ps(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-1/0;e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function Ls(t,n){var e=t.N;if(e)return Ps(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Rs(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function qs(t,n){return n[1]-t[1]||n[0]-t[0]}function Us(t,n){var e,r,i,o=t.sort(qs).pop();for(Yw=[],Fw=new Array(t.length),Ow=new as,Iw=new as;;)if(i=Dw,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(zs(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;Cs(i.arc)}if(ws(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];ys(u,a,c,s),Ms(u,a,c,s)}this.edges=Yw,this.cells=Fw,Ow=Iw=Yw=Fw=null}function Ds(t,n,e){this.target=t,this.type=n,this.transform=e}function Os(t,n,e){this.k=t,this.x=n,this.y=e}function Fs(t){return t.__zoom||Ww}function Is(){t.event.stopImmediatePropagation()}function Ys(){return!t.event.button}function Bs(){var t,n,e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,t=e.width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function Hs(){return this.__zoom||Ww}var js=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},Xs=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},$s=Xs(js),Vs=$s.right,Ws=$s.left,Zs=function(t,n){null==n&&(n=e);for(var r=0,i=t.length-1,o=t[0],u=new Array(i<0?0:i);r<i;)u[r]=n(o,o=t[++r]);return u},Gs=function(t,n,r){var i,o,u,a,c=t.length,s=n.length,f=new Array(c*s);for(null==r&&(r=e),i=u=0;i<c;++i)for(a=t[i],o=0;o<s;++o,++u)f[u]=r(a,n[o]);return f},Js=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Qs=function(t){return null===t?NaN:+t},Ks=function(t,n){var e,r,i=t.length,o=0,u=-1,a=0,c=0;if(null==n)for(;++u<i;)isNaN(e=Qs(t[u]))||(r=e-a,a+=r/++o,c+=r*(e-a));else for(;++u<i;)isNaN(e=Qs(n(t[u],u,t)))||(r=e-a,a+=r/++o,c+=r*(e-a));if(o>1)return c/(o-1)},tf=function(t,n){var e=Ks(t,n);return e?Math.sqrt(e):e},nf=function(t,n){var e,r,i,o=t.length,u=-1;if(null==n){for(;++u<o;)if(null!=(e=t[u])&&e>=e)for(r=i=e;++u<o;)null!=(e=t[u])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++u<o;)if(null!=(e=n(t[u],u,t))&&e>=e)for(r=i=e;++u<o;)null!=(e=n(t[u],u,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]},ef=Array.prototype,rf=ef.slice,of=ef.map,uf=function(t){return function(){return t}},af=function(t){return t},cf=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},sf=Math.sqrt(50),ff=Math.sqrt(10),lf=Math.sqrt(2),hf=function(t,n,e){var i,o,u,a=n<t,c=-1;if(a&&(i=t,t=n,n=i),0===(u=r(t,n,e))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),n=Math.floor(n/u),o=new Array(i=Math.ceil(n-t+1));++c<i;)o[c]=(t+c)*u;else for(t=Math.floor(t*u),n=Math.ceil(n*u),o=new Array(i=Math.ceil(t-n+1));++c<i;)o[c]=(t-c)/u;return a&&o.reverse(),o},pf=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},df=function(){function t(t){var o,u,a=t.length,c=new Array(a);for(o=0;o<a;++o)c[o]=n(t[o],o,t);var s=e(c),f=s[0],l=s[1],h=r(c,f,l);Array.isArray(h)||(h=i(f,l,h),h=cf(Math.ceil(f/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=f;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var d,v=new Array(p+1);for(o=0;o<=p;++o)d=v[o]=[],d.x0=o>0?h[o-1]:f,d.x1=o<p?h[o]:l;for(o=0;o<a;++o)u=c[o],f<=u&&u<=l&&v[Vs(h,u,0,p)].push(t[o]);return v}var n=af,e=nf,r=pf;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:uf(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:uf([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:uf(Array.isArray(n)?rf.call(n):n),t):r},t},vf=function(t,n,e){if(null==e&&(e=Qs),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t);return u+(+e(t[o+1],o+1,t)-u)*(i-o)}},_f=function(t,n,e){return t=of.call(t,Qs).sort(js),Math.ceil((e-n)/(2*(vf(t,.75)-vf(t,.25))*Math.pow(t.length,-1/3)))},yf=function(t,n,e){return Math.ceil((e-n)/(3.5*tf(t)*Math.pow(t.length,-1/3)))},gf=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r},mf=function(t,n){var e,r=t.length,i=r,o=-1,u=0;if(null==n)for(;++o<r;)isNaN(e=Qs(t[o]))?--i:u+=e;else for(;++o<r;)isNaN(e=Qs(n(t[o],o,t)))?--i:u+=e;if(i)return u/i},xf=function(t,n){var e,r=t.length,i=-1,o=[];if(null==n)for(;++i<r;)isNaN(e=Qs(t[i]))||o.push(e);else for(;++i<r;)isNaN(e=Qs(n(t[i],i,t)))||o.push(e);return vf(o.sort(js),.5)},bf=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},wf=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r},Mf=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},Tf=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(null==n&&(n=js);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},kf=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},Nf=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},Sf=function(t){if(!(i=t.length))return[];for(var n=-1,e=wf(t,o),r=new Array(e);++n<e;)for(var i,u=-1,a=r[n]=new Array(i);++u<i;)a[u]=t[u][n];return r},Ef=function(){return Sf(arguments)},Af=Array.prototype.slice,Cf=function(t){return t},zf=1,Pf=2,Lf=3,Rf=4,qf=1e-6,Uf={value:function(){}};_.prototype=v.prototype={constructor:_,on:function(t,n){var e,r=this._,i=y(t+"",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=m(r[e],t.name,n);else if(null==n)for(e in r)r[e]=m(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=g(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new _(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var Df="http://www.w3.org/1999/xhtml",Of={svg:"http://www.w3.org/2000/svg",xhtml:Df,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Ff=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Of.hasOwnProperty(n)?{space:Of[n],local:t}:t},If=function(t){var n=Ff(t);return(n.local?b:x)(n)},Yf=0;M.prototype=w.prototype={constructor:M,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var Bf=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var Hf=document.documentElement;if(!Hf.matches){var jf=Hf.webkitMatchesSelector||Hf.msMatchesSelector||Hf.mozMatchesSelector||Hf.oMatchesSelector;Bf=function(t){return function(){return jf.call(this,t)}}}}var Xf=Bf,$f={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||($f={mouseenter:"mouseover",mouseleave:"mouseout"})}var Vf=function(t,n,e){var r,i,o=N(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?E:S,null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},Wf=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},Zf=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},Gf=function(t){var n=Wf();return n.changedTouches&&(n=n.changedTouches[0]),Zf(t,n)},Jf=function(t){return null==t?C:function(){return this.querySelector(t)}},Qf=function(t){"function"!=typeof t&&(t=Jf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&("__data__"in o&&(u.__data__=o.__data__),s[f]=u);return new _t(r,this._parents)},Kf=function(t){return null==t?z:function(){return this.querySelectorAll(t)}},tl=function(t){"function"!=typeof t&&(t=Kf(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new _t(r,i)},nl=function(t){"function"!=typeof t&&(t=Xf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new _t(r,this._parents)},el=function(t){return new Array(t.length)},rl=function(){return new _t(this._enter||this._groups.map(el),this._parents)};P.prototype={constructor:P,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var il=function(t){return function(){return t}},ol="$",ul=function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?R:L,r=this._parents,i=this._groups;"function"!=typeof t&&(t=il(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,v=a[s]=new Array(d),_=u[s]=new Array(d);e(f,l,v,_,c[s]=new Array(h),p,n);for(var y,g,m=0,x=0;m<d;++m)if(y=v[m]){for(m>=x&&(x=m+1);!(g=_[x])&&++x<d;);y._next=g||null}}return u=new _t(u,r),u._enter=a,u._exit=c,u},al=function(){return new _t(this._exit||this._groups.map(el),this._parents)},cl=function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new _t(u,this._parents)},sl=function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},fl=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=q);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],c=a.length,s=i[o]=new Array(c),f=0;f<c;++f)(u=a[f])&&(s[f]=u);s.sort(n)}return new _t(i,this._parents).order()},ll=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},hl=function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},pl=function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},dl=function(){var t=0;return this.each(function(){++t}),t},vl=function(){return!this.node()},_l=function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},yl=function(t,n){var e=Ff(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?D:U:"function"==typeof n?e.local?Y:I:e.local?F:O)(e,n))},gl=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView},ml=function(t,n,e){return arguments.length>1?this.each((null==n?B:"function"==typeof n?j:H)(t,n,null==e?"":e)):X(this.node(),t)},xl=function(t,n){return arguments.length>1?this.each((null==n?$:"function"==typeof n?W:V)(t,n)):this.node()[t]};J.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var bl=function(t,n){var e=Z(t+"");if(arguments.length<2){for(var r=G(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?et:n?tt:nt)(e,n))},wl=function(t){return arguments.length?this.each(null==t?rt:("function"==typeof t?ot:it)(t)):this.node().textContent},Ml=function(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?ct:at)(t)):this.node().innerHTML},Tl=function(){return this.each(st)},kl=function(){return this.each(ft)},Nl=function(t){var n="function"==typeof t?t:If(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},Sl=function(t,n){var e="function"==typeof t?t:If(t),r=null==n?lt:"function"==typeof n?n:Jf(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},El=function(){return this.each(ht)},Al=function(t){return arguments.length?this.property("__data__",t):this.node().__data__},Cl=function(t,n){return this.each(("function"==typeof n?vt:dt)(t,n))},zl=[null];_t.prototype=yt.prototype={constructor:_t,select:Qf,selectAll:tl,filter:nl,data:ul,enter:rl,exit:al,merge:cl,order:sl,sort:fl,call:ll,nodes:hl,node:pl,size:dl,empty:vl,each:_l,attr:yl,style:ml,property:xl,classed:bl,text:wl,html:Ml,raise:Tl,lower:kl,append:Nl,insert:Sl,remove:El,datum:Al,on:Vf,dispatch:Cl};var Pl=function(t){return"string"==typeof t?new _t([[document.querySelector(t)]],[document.documentElement]):new _t([[t]],zl)},Ll=function(t){return"string"==typeof t?new _t([document.querySelectorAll(t)],[document.documentElement]):new _t([null==t?[]:t],zl)
+},Rl=function(t,n,e){arguments.length<3&&(e=n,n=Wf().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return Zf(t,r);return null},ql=function(t,n){null==n&&(n=Wf().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=Zf(t,n[e]);return i},Ul=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Dl=function(t){var n=t.document.documentElement,e=Pl(t).on("dragstart.drag",Ul,!0);"onselectstart"in n?e.on("selectstart.drag",Ul,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")},Ol=function(t){return function(){return t}};xt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Fl=function(){function n(t){t.on("mousedown.drag",e).on("touchstart.drag",o).on("touchmove.drag",u).on("touchend.drag touchcancel.drag",a).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!h&&p.apply(this,arguments)){var n=c("mouse",d.apply(this,arguments),Gf,this,arguments);n&&(Pl(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),Dl(t.event.view),gt(),l=!1,s=t.event.clientX,f=t.event.clientY,n("start"))}}function r(){if(Ul(),!l){var n=t.event.clientX-s,e=t.event.clientY-f;l=n*n+e*e>x}y.mouse("drag")}function i(){Pl(t.event.view).on("mousemove.drag mouseup.drag",null),mt(t.event.view,l),Ul(),y.mouse("end")}function o(){if(p.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=d.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=c(r[n].identifier,i,Rl,this,arguments))&&(gt(),e("start"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=y[r[n].identifier])&&(Ul(),e("drag"))}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),n=0;n<i;++n)(e=y[r[n].identifier])&&(gt(),e("end"))}function c(e,r,i,o,u){var a,c,s,f=i(r,e),l=g.copy();if(A(new xt(n,"beforestart",a,e,m,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=_.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,d=f;switch(h){case"start":y[e]=t,p=m++;break;case"end":delete y[e],--m;case"drag":f=i(r,e),p=m}A(new xt(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-d[0],f[1]-d[1],l),l.apply,l,[h,o,u])}}var s,f,l,h,p=bt,d=wt,_=Mt,y={},g=v("start","drag","end"),m=0,x=0;return n.filter=function(t){return arguments.length?(p="function"==typeof t?t:Ol(!!t),n):p},n.container=function(t){return arguments.length?(d="function"==typeof t?t:Ol(t),n):d},n.subject=function(t){return arguments.length?(_="function"==typeof t?t:Ol(t),n):_},n.on=function(){var t=g.on.apply(g,arguments);return t===g?n:t},n.clickDistance=function(t){return arguments.length?(x=(t=+t)*t,n):Math.sqrt(x)},n},Il=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},Yl="\\s*([+-]?\\d+)\\s*",Bl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Hl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",jl=/^#([0-9a-f]{3})$/,Xl=/^#([0-9a-f]{6})$/,$l=new RegExp("^rgb\\("+[Yl,Yl,Yl]+"\\)$"),Vl=new RegExp("^rgb\\("+[Hl,Hl,Hl]+"\\)$"),Wl=new RegExp("^rgba\\("+[Yl,Yl,Yl,Bl]+"\\)$"),Zl=new RegExp("^rgba\\("+[Hl,Hl,Hl,Bl]+"\\)$"),Gl=new RegExp("^hsl\\("+[Bl,Hl,Hl]+"\\)$"),Jl=new RegExp("^hsla\\("+[Bl,Hl,Hl,Bl]+"\\)$"),Ql={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Il(kt,Nt,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),Il(zt,Ct,Tt(kt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new zt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Il(qt,Rt,Tt(kt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new qt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new qt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new zt(Ut(t>=240?t-240:t+120,i,r),Ut(t,i,r),Ut(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Kl=Math.PI/180,th=180/Math.PI,nh=.95047,eh=1,rh=1.08883,ih=4/29,oh=6/29,uh=3*oh*oh,ah=oh*oh*oh;Il(Ft,Ot,Tt(kt,{brighter:function(t){return new Ft(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Ft(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=eh*Yt(t),n=nh*Yt(n),e=rh*Yt(e),new zt(Bt(3.2404542*n-1.5371385*t-.4985314*e),Bt(-.969266*n+1.8760108*t+.041556*e),Bt(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),Il($t,Xt,Tt(kt,{brighter:function(t){return new $t(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new $t(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Dt(this).rgb()}}));var ch=-.14861,sh=1.78277,fh=-.29227,lh=-.90649,hh=1.97294,ph=hh*lh,dh=hh*sh,vh=sh*fh-lh*ch;Il(Zt,Wt,Tt(kt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Zt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Zt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Kl,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new zt(255*(n+e*(ch*r+sh*i)),255*(n+e*(fh*r+lh*i)),255*(n+e*(hh*r)),this.opacity)}}));var _h,yh,gh,mh,xh,bh,wh=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return Gt((e-r/n)*n,u,i,o,a)}},Mh=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return Gt((e-r/n)*n,i,o,u,a)}},Th=function(t){return function(){return t}},kh=function t(n){function e(t,n){var e=r((t=Ct(t)).r,(n=Ct(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=nn(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}var r=tn(n);return e.gamma=t,e}(1),Nh=en(wh),Sh=en(Mh),Eh=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(r),u=new Array(r);for(e=0;e<i;++e)o[e]=qh(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},Ah=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},Ch=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},zh=function(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=qh(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},Ph=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Lh=new RegExp(Ph.source,"g"),Rh=function(t,n){var e,r,i,o=Ph.lastIndex=Lh.lastIndex=0,u=-1,a=[],c=[];for(t+="",n+="";(e=Ph.exec(t))&&(r=Lh.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:Ch(e,r)})),o=Lh.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?on(c[0].x):rn(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join("")})},qh=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?Th(n):("number"===r?Ch:"string"===r?(e=Nt(n))?(n=e,kh):Rh:n instanceof Nt?kh:n instanceof Date?Ah:Array.isArray(n)?Eh:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?zh:Ch)(t,n)},Uh=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},Dh=180/Math.PI,Oh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Fh=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Dh,skewX:Math.atan(c)*Dh,scaleX:u,scaleY:a}},Ih=cn(un,"px, ","px)","deg)"),Yh=cn(an,", ",")",")"),Bh=Math.SQRT2,Hh=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<1e-12)r=Math.log(s/u)/Bh,e=function(t){return[i+t*f,o+t*l,u*Math.exp(Bh*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+4*h)/(2*u*2*p),v=(s*s-u*u-4*h)/(2*s*2*p),_=Math.log(Math.sqrt(d*d+1)-d),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-_)/Bh,e=function(t){var n=t*r,e=sn(_),a=u/(2*p)*(e*ln(Bh*n+_)-fn(_));return[i+a*f,o+a*l,u*e/sn(Bh*n+_)]}}return e.duration=1e3*r,e},jh=hn(Kt),Xh=hn(nn),$h=dn(Kt),Vh=dn(nn),Wh=vn(Kt),Zh=vn(nn),Gh=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},Jh=0,Qh=0,Kh=0,tp=1e3,np=0,ep=0,rp=0,ip="object"==typeof performance&&performance.now?performance:Date,op="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};gn.prototype=mn.prototype={constructor:gn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?_n():+e)+(null==n?0:+n),this._next||bh===this||(bh?bh._next=this:xh=this,bh=this),this._call=t,this._time=e,Tn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Tn())}};var up=function(t,n,e){var r=new gn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},ap=function(t,n,e){var r=new gn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?_n():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},cp=v("start","end","interrupt"),sp=[],fp=0,lp=1,hp=2,pp=3,dp=4,vp=5,_p=6,yp=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};En(t,e,{name:n,index:r,group:i,on:cp,tween:sp,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:fp})},gp=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>hp&&e.state<vp,e.state=_p,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},mp=function(t){return this.each(function(){gp(this,t)})},xp=function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Sn(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?An:Cn)(e,t,n))},bp=function(t,n){var e;return("number"==typeof n?Ch:n instanceof Nt?kh:(e=Nt(n))?(n=e,kh):Rh)(t,n)},wp=function(t,n){var e=Ff(t),r="transform"===e?Yh:bp;return this.attrTween(t,"function"==typeof n?(e.local?Dn:Un)(e,r,zn(this,"attr."+t,n)):null==n?(e.local?Ln:Pn)(e):(e.local?qn:Rn)(e,r,n+""))},Mp=function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Ff(t);return this.tween(e,(r.local?On:Fn)(r,n))},Tp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?In:Yn)(n,t)):Sn(this.node(),n).delay},kp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?Bn:Hn)(n,t)):Sn(this.node(),n).duration},Np=function(t){var n=this._id;return arguments.length?this.each(jn(n,t)):Sn(this.node(),n).ease},Sp=function(t){"function"!=typeof t&&(t=Xf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new ne(r,this._parents,this._name,this._id)},Ep=function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new ne(u,this._parents,this._name,this._id)},Ap=function(t,n){var e=this._id;return arguments.length<2?Sn(this.node(),e).on.on(t):this.each($n(e,t,n))},Cp=function(){return this.on("end.remove",Vn(this._id))},zp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Jf(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&("__data__"in a&&(c.__data__=a.__data__),l[h]=c,yp(l[h],n,e,h,l,Sn(a,e)));return new ne(o,this._parents,n,e)},Pp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Kf(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=Sn(c,e),v=0,_=p.length;v<_;++v)(h=p[v])&&yp(h,n,e,v,p,d);o.push(p),u.push(c)}return new ne(o,u,n,e)},Lp=yt.prototype.constructor,Rp=function(){return new Lp(this._groups,this._parents)},qp=function(t,n,e){var r="transform"==(t+="")?Ih:bp;return null==n?this.styleTween(t,Wn(t,r)).on("end.style."+t,Zn(t)):this.styleTween(t,"function"==typeof n?Jn(t,r,zn(this,"style."+t,n)):Gn(t,r,n+""),e)},Up=function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Qn(t,n,null==e?"":e))},Dp=function(t){return this.tween("text","function"==typeof t?te(zn(this,"text",t)):Kn(null==t?"":t+""))},Op=function(){for(var t=this._name,n=this._id,e=re(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=Sn(u,n);yp(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new ne(r,this._parents,t,e)},Fp=0,Ip=yt.prototype;ne.prototype=ee.prototype={constructor:ne,select:zp,selectAll:Pp,filter:Sp,merge:Ep,selection:Rp,transition:Op,call:Ip.call,nodes:Ip.nodes,node:Ip.node,size:Ip.size,empty:Ip.empty,each:Ip.each,on:Ap,attr:wp,attrTween:Mp,style:qp,styleTween:Up,text:Dp,remove:Cp,tween:xp,delay:Tp,duration:kp,ease:Np};var Yp=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Bp=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Hp=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),jp=Math.PI,Xp=jp/2,$p=4/11,Vp=6/11,Wp=8/11,Zp=.75,Gp=9/11,Jp=10/11,Qp=.9375,Kp=21/22,td=63/64,nd=1/$p/$p,ed=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),rd=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),id=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),od=2*Math.PI,ud=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=od);return r.amplitude=function(n){return t(n,e*od)},r.period=function(e){return t(n,e)},r}(1,.3),ad=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=od);return r.amplitude=function(n){return t(n,e*od)},r.period=function(e){return t(n,e)},r}(1,.3),cd=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=od);return r.amplitude=function(n){return t(n,e*od)},r.period=function(e){return t(n,e)},r}(1,.3),sd={time:null,delay:0,duration:250,ease:fe},fd=function(t){var n,e;t instanceof ne?(n=t._id,t=t._name):(n=re(),(e=sd).time=_n(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&yp(u,t,n,s,a,e||Me(u,n));return new ne(r,this._parents,t,n)};yt.prototype.interrupt=mp,yt.prototype.transition=fd;var ld=[null],hd=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>lp&&e.name===n)return new ne([[t]],ld,n,+r)}return null},pd=function(t){return function(){return t}},dd=function(t,n,e){this.target=t,this.type=n,this.selection=e},vd=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},_d={name:"drag"},yd={name:"space"},gd={name:"handle"},md={name:"center"},xd={name:"x",handles:["e","w"].map(ke),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},bd={name:"y",handles:["n","s"].map(ke),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},wd={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(ke),input:function(t){return t},output:function(t){return t}},Md={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Td={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},kd={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Nd={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Sd={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},Ed=function(){return Le(wd)},Ad=Math.cos,Cd=Math.sin,zd=Math.PI,Pd=zd/2,Ld=2*zd,Rd=Math.max,qd=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=cf(l),d=[],v=[],_=v.groups=new Array(l),y=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(cf(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),o=Rd(0,Ld-n*l)/o,c=o?n:Ld/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var g=p[s],m=d[g][f],x=t[g][m],b=u,w=u+=x*o;y[m*l+g]={index:g,subindex:m,startAngle:b,endAngle:w,value:x}}_[g]={index:g,startAngle:a,endAngle:u,value:h[g]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=y[f*l+s],T=y[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Rd(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=Re(n))._=n,t):i&&i._},t},Ud=Array.prototype.slice,Dd=function(t){return function(){return t}},Od=Math.PI,Fd=2*Od,Id=Fd-1e-6;qe.prototype=Ue.prototype={constructor:qe,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(f*a-c*s)>1e-6&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),y=Math.sqrt(l),g=i*Math.tan((Od-Math.acos((d+l-v)/(2*_*y)))/2),m=g/y,x=g/_;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(n+m*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>s*p)+","+(this._x1=t+x*a)+","+(this._y1=n+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+s:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+="L"+c+","+s),e&&(l<0&&(l=l%Fd+Fd),l>Id?this._+="A"+e+","+e+",0,1,"+f+","+(t-u)+","+(n-a)+"A"+e+","+e+",0,1,"+f+","+(this._x1=c)+","+(this._y1=s):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=Od)+","+f+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var Yd=function(){function t(){var t,a=Ud.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-Pd,h=o.apply(this,a)-Pd,p=f*Ad(l),d=f*Cd(l),v=+r.apply(this,(a[0]=s,a)),_=i.apply(this,a)-Pd,y=o.apply(this,a)-Pd;if(u||(u=t=Ue()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===_&&h===y||(u.quadraticCurveTo(0,0,v*Ad(_),v*Cd(_)),u.arc(0,0,v,_,y)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+""||null}var n=De,e=Oe,r=Fe,i=Ie,o=Ye,u=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:Dd(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:Dd(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:Dd(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t};Be.prototype=He.prototype={constructor:Be,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Bd=function(){function t(n,i,u,a){if(i>=o.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=He(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+""))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,je,Xe)},map:function(n){return t(n,0,$e,Ve)},entries:function(e){return n(t(e,0,$e,Ve),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},Hd=He.prototype;We.prototype=Ze.prototype={constructor:We,has:Hd.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Hd.remove,clear:Hd.clear,values:Hd.keys,size:Hd.size,empty:Hd.empty,each:Hd.each};var jd=function(t){var n=[];for(var e in t)n.push(e);return n},Xd=function(t){var n=[];for(var e in t)n.push(t[e]);return n},$d=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Vd=function(t){function n(t,n){var r,i,o=e(t,function(t,e){if(r)return r(t,e-1);i=t,r=n?Je(t,n):Ge(t)});return o.columns=i,o}function e(t,n){function e(){if(f>=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++<s;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return f=r+2,n=t.charCodeAt(r+1),13===n?(i=!0,10===t.charCodeAt(r+2)&&++f):10===n&&(i=!0),t.slice(e+1,r).replace(/""/g,'"')}for(;f<s;){var a=1;if(10===(n=t.charCodeAt(f++)))i=!0;else if(13===n)i=!0,10===t.charCodeAt(f)&&(++f,++a);else if(n!==c)continue;return t.slice(e,f-a)}return t.slice(e)}for(var r,i,o={},u={},a=[],s=t.length,f=0,l=0;(r=e())!==u;){for(var h=[];r!==o&&r!==u;)h.push(r),r=e();n&&null==(h=n(h,l++))||a.push(h)}return a}function r(n,e){return null==e&&(e=Qe(n)),[e.map(u).join(t)].concat(n.map(function(n){return e.map(function(t){return u(n[t])}).join(t)})).join("\n")}function i(t){return t.map(o).join("\n")}function o(n){return n.map(u).join(t)}function u(t){return null==t?"":a.test(t+="")?'"'+t.replace(/\"/g,'""')+'"':t}var a=new RegExp('["'+t+"\n\r]"),c=t.charCodeAt(0);return{parse:n,parseRows:e,format:r,formatRows:i}},Wd=Vd(","),Zd=Wd.parse,Gd=Wd.parseRows,Jd=Wd.format,Qd=Wd.formatRows,Kd=Vd("\t"),tv=Kd.parse,nv=Kd.parseRows,ev=Kd.format,rv=Kd.formatRows,iv=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)i=r[e],u+=i.x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)i=r[e],i.x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},ov=function(t){return function(){return t}},uv=function(){return 1e-6*(Math.random()-.5)},av=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ke(this.cover(n,e),n,e,t)},cv=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},sv=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},fv=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},lv=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},hv=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new lv(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var _=(i+u)/2,y=(o+a)/2;d.push(new lv(v[3],_,y,u,a),new lv(v[2],i,y,_,a),new lv(v[1],_,o,u,y),new lv(v[0],i,o,_,y)),(s=(n>=y)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var g=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=g*g+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},pv=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,_=this._x1,y=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+y)/2))?v=c:y=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},dv=function(){return this._root},vv=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},_v=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new lv(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new lv(e,s,f,o,u)),(e=c[2])&&a.push(new lv(e,r,f,s,u)),(e=c[1])&&a.push(new lv(e,s,i,o,f)),(e=c[0])&&a.push(new lv(e,r,i,s,f))}return this},yv=function(t){var n,e=[],r=[];for(this._root&&e.push(new lv(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new lv(o,u,a,f,l)),(o=i[1])&&e.push(new lv(o,f,a,c,l)),(o=i[2])&&e.push(new lv(o,u,l,f,s)),(o=i[3])&&e.push(new lv(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},gv=function(t){return arguments.length?(this._x=t,this):this._x},mv=function(t){return arguments.length?(this._y=t,this):this._y},xv=ir.prototype=or.prototype;xv.copy=function(){var t,n,e=new or(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=ur(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=ur(n));return e},xv.add=av,xv.addAll=tr,xv.cover=cv,xv.data=sv,xv.extent=fv,xv.find=hv,xv.remove=pv,xv.removeAll=nr,xv.root=dv,xv.size=vv,xv.visit=_v,xv.visitAfter=yv,xv.x=gv,xv.y=mv;var bv,wv=function(t){function n(){function t(t,n,e,r,i){var o=t.data,a=t.r,p=l+a;{if(!o)return n>s+p||r<s-p||e>f+p||i<f-p;if(o.index>c.index){var d=s-o.x-o.vx,v=f-o.y-o.vy,_=d*d+v*v;_<p*p&&(0===d&&(d=uv(),_+=d*d),0===v&&(v=uv(),_+=v*v),_=(p-(_=Math.sqrt(_)))/_*u,c.vx+=(d*=_)*(p=(a*=a)/(h+a)),c.vy+=(v*=_)*p,o.vx-=d*(p=1-p),o.vy-=v*p)}}}for(var n,r,c,s,f,l,h,p=i.length,d=0;d<a;++d)for(r=ir(i,ar,cr).visitAfter(e),n=0;n<p;++n)c=i[n],l=o[c.index],h=l*l,s=c.x+c.vx,f=c.y+c.vy,r.visit(t)}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1
+;return"function"!=typeof t&&(t=ov(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:ov(+e),r(),n):t},n},Mv=function(t){function n(t){return 1/Math.min(s[t.source.index],s[t.target.index])}function e(n){for(var e=0,r=t.length;e<d;++e)for(var i,o,c,s,l,h,p,v=0;v<r;++v)i=t[v],o=i.source,c=i.target,s=c.x+c.vx-o.x-o.vx||uv(),l=c.y+c.vy-o.y-o.vy||uv(),h=Math.sqrt(s*s+l*l),h=(h-a[v])/h*n*u[v],s*=h,l*=h,c.vx-=s*(p=f[v]),c.vy-=l*p,o.vx+=s*(p=1-p),o.vy+=l*p}function r(){if(c){var n,e,r=c.length,h=t.length,p=He(c,l);for(n=0,s=new Array(r);n<h;++n)e=t[n],e.index=n,"object"!=typeof e.source&&(e.source=fr(p,e.source)),"object"!=typeof e.target&&(e.target=fr(p,e.target)),s[e.source.index]=(s[e.source.index]||0)+1,s[e.target.index]=(s[e.target.index]||0)+1;for(n=0,f=new Array(h);n<h;++n)e=t[n],f[n]=s[e.source.index]/(s[e.source.index]+s[e.target.index]);u=new Array(h),i(),a=new Array(h),o()}}function i(){if(c)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}function o(){if(c)for(var n=0,e=t.length;n<e;++n)a[n]=+p(t[n],n,t)}var u,a,c,s,f,l=sr,h=n,p=ov(30),d=1;return null==t&&(t=[]),e.initialize=function(t){c=t,r()},e.links=function(n){return arguments.length?(t=n,r(),e):t},e.id=function(t){return arguments.length?(l=t,e):l},e.iterations=function(t){return arguments.length?(d=+t,e):d},e.strength=function(t){return arguments.length?(h="function"==typeof t?t:ov(+t),i(),e):h},e.distance=function(t){return arguments.length?(p="function"==typeof t?t:ov(+t),o(),e):p},e},Tv=10,kv=Math.PI*(3-Math.sqrt(5)),Nv=function(t){function n(){e(),p.call("tick",o),u<a&&(h.stop(),p.call("end",o))}function e(){var n,e,r=t.length;for(u+=(s-u)*c,l.each(function(t){t(u)}),n=0;n<r;++n)e=t[n],null==e.fx?e.x+=e.vx*=f:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=f:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=Tv*Math.sqrt(e),o=e*kv;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,a=.001,c=1-Math.pow(a,1/300),s=0,f=.6,l=He(),h=mn(n),p=v("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(a=+t,o):a},alphaDecay:function(t){return arguments.length?(c=+t,o):+c},alphaTarget:function(t){return arguments.length?(s=+t,o):s},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)a=t[s],i=n-a.x,o=e-a.y,(u=i*i+o*o)<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(p.on(t,n),o):p.on(t)}}},Sv=function(){function t(t){var n,a=i.length,c=ir(i,lr,hr).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=n.value)&&(u+=e,r+=e*n.x,i+=e*n.y);t.x=r/u,t.y=i/u}else{n=t,n.x=n.data.x,n.y=n.data.y;do{u+=a[n.data.index]}while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=uv(),p+=i*i),0===c&&(c=uv(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=uv(),p+=i*i),0===c&&(c=uv(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do{t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h)}while(t=t.next)}}var i,o,u,a,c=ov(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c="function"==typeof e?e:ov(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},Ev=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=ov(.1);return"function"!=typeof t&&(t=ov(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:ov(+t),e(),n):u},n.x=function(r){return arguments.length?(t="function"==typeof r?r:ov(+r),e(),n):t},n},Av=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=ov(.1);return"function"!=typeof t&&(t=ov(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:ov(+t),e(),n):u},n.y=function(r){return arguments.length?(t="function"==typeof r?r:ov(+r),e(),n):t},n},Cv=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},zv=function(t){return t=Cv(Math.abs(t)),t?t[1]:NaN},Pv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},Lv=function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}},Rv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case".":o=e=i;break;case"0":0===o&&(o=i),e=i;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},qv=function(t,n){var e=Cv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(bv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Cv(t,Math.max(0,n+o-1))[0]},Uv=function(t,n){var e=Cv(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Dv={"":Rv,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return Uv(100*t,n)},r:Uv,s:qv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Ov=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;pr.prototype=dr.prototype,dr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Fv,Iv=function(t){return t},Yv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Bv=function(t){function n(t){function n(t){var n,i,a,f=_,x=y;if("c"===v)x=g(t)+x,t="";else{t=+t;var b=t<0;if(t=g(Math.abs(t),d),b&&0==+t&&(b=!1),f=(b?"("===s?s:"-":"-"===s||"("===s?"":s)+f,x=x+("s"===v?Yv[8+bv/3]:"")+(b&&"("===s?")":""),m)for(n=-1,i=t.length;++n<i;)if(48>(a=t.charCodeAt(n))||a>57){x=(46===a?o+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}p&&!l&&(t=r(t,1/0));var w=f.length+t.length+x.length,M=w<h?new Array(h-w+1).join(e):"";switch(p&&l&&(t=r(M+t,M.length?h-x.length:1/0),M=""),c){case"<":t=f+t+x+M;break;case"=":t=f+M+t+x;break;case"^":t=M.slice(0,w=M.length>>1)+f+t+x+M.slice(w);break;default:t=M+f+t+x}return u(t)}t=pr(t);var e=t.fill,c=t.align,s=t.sign,f=t.symbol,l=t.zero,h=t.width,p=t.comma,d=t.precision,v=t.type,_="$"===f?i[0]:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",y="$"===f?i[1]:/[%p]/.test(v)?a:"",g=Dv[v],m=!v||/[defgprs%]/.test(v);return d=null==d?v?6:12:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=pr(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(zv(e)/3))),o=Math.pow(10,-i),u=Yv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?Pv(t.grouping,t.thousands):Iv,i=t.currency,o=t.decimal,u=t.numerals?Lv(t.numerals):Iv,a=t.percent||"%";return{format:n,formatPrefix:e}};vr({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Hv=function(t){return Math.max(0,-zv(Math.abs(t)))},jv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(zv(n)/3)))-zv(Math.abs(t)))},Xv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,zv(n)-zv(t))+1},$v=function(){return new _r};_r.prototype={constructor:_r,reset:function(){this.s=this.t=0},add:function(t){yr(T_,t,this.t),yr(this,T_.s,this.s),this.s?this.t+=T_.t:this.s=T_.t},valueOf:function(){return this.s}};var Vv,Wv,Zv,Gv,Jv,Qv,Kv,t_,n_,e_,r_,i_,o_,u_,a_,c_,s_,f_,l_,h_,p_,d_,v_,__,y_,g_,m_,x_,b_,w_,M_,T_=new _r,k_=1e-6,N_=Math.PI,S_=N_/2,E_=N_/4,A_=2*N_,C_=180/N_,z_=N_/180,P_=Math.abs,L_=Math.atan,R_=Math.atan2,q_=Math.cos,U_=Math.ceil,D_=Math.exp,O_=Math.log,F_=Math.pow,I_=Math.sin,Y_=Math.sign||function(t){return t>0?1:t<0?-1:0},B_=Math.sqrt,H_=Math.tan,j_={Feature:function(t,n){wr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)wr(e[r].geometry,n)}},X_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){Mr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Mr(e[r],n,0)},Polygon:function(t,n){Tr(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Tr(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)wr(e[r],n)}},$_=function(t,n){t&&j_.hasOwnProperty(t.type)?j_[t.type](t,n):wr(t,n)},V_=$v(),W_=$v(),Z_={point:br,lineStart:br,lineEnd:br,polygonStart:function(){V_.reset(),Z_.lineStart=kr,Z_.lineEnd=Nr},polygonEnd:function(){var t=+V_;W_.add(t<0?A_+t:t),this.lineStart=this.lineEnd=this.point=br},sphere:function(){W_.add(A_)}},G_=function(t){return W_.reset(),$_(t,Z_),2*W_},J_=$v(),Q_={point:Ur,lineStart:Or,lineEnd:Fr,polygonStart:function(){Q_.point=Ir,Q_.lineStart=Yr,Q_.lineEnd=Br,J_.reset(),Z_.polygonStart()},polygonEnd:function(){Z_.polygonEnd(),Q_.point=Ur,Q_.lineStart=Or,Q_.lineEnd=Fr,V_<0?(Qv=-(t_=180),Kv=-(n_=90)):J_>k_?n_=90:J_<-k_&&(Kv=-90),a_[0]=Qv,a_[1]=t_}},K_=function(t){var n,e,r,i,o,u,a;if(n_=t_=-(Qv=Kv=1/0),u_=[],$_(t,Q_),e=u_.length){for(u_.sort(jr),n=1,r=u_[0],o=[r];n<e;++n)i=u_[n],Xr(r,i[0])||Xr(r,i[1])?(Hr(r[0],i[1])>Hr(r[0],r[1])&&(r[1]=i[1]),Hr(i[0],r[1])>Hr(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-1/0,e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Hr(r[1],i[0]))>u&&(u=a,Qv=i[0],t_=r[1])}return u_=a_=null,Qv===1/0||Kv===1/0?[[NaN,NaN],[NaN,NaN]]:[[Qv,Kv],[t_,n_]]},ty={sphere:br,point:$r,lineStart:Wr,lineEnd:Jr,polygonStart:function(){ty.lineStart=Qr,ty.lineEnd=Kr},polygonEnd:function(){ty.lineStart=Wr,ty.lineEnd=Jr}},ny=function(t){c_=s_=f_=l_=h_=p_=d_=v_=__=y_=g_=0,$_(t,ty);var n=__,e=y_,r=g_,i=n*n+e*e+r*r;return i<1e-12&&(n=p_,e=d_,r=v_,s_<k_&&(n=f_,e=l_,r=h_),(i=n*n+e*e+r*r)<1e-12)?[NaN,NaN]:[R_(e,n)*C_,mr(r/B_(i))*C_]},ey=function(t){return function(){return t}},ry=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e};ei.invert=ei;var iy,oy,uy,ay,cy,sy,fy,ly,hy,py,dy,vy=function(t){function n(n){return n=t(n[0]*z_,n[1]*z_),n[0]*=C_,n[1]*=C_,n}return t=ri(t[0]*z_,t[1]*z_,t.length>2?t[2]*z_:0),n.invert=function(n){return n=t.invert(n[0]*z_,n[1]*z_),n[0]*=C_,n[1]*=C_,n},n},_y=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=C_,t[1]*=C_}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*z_,c=u.apply(this,arguments)*z_;return e=[],r=ri(-t[0]*z_,-t[1]*z_,0).invert,ai(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=ey([0,0]),o=ey(90),u=ey(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:ey([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:ey(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:ey(+t),n):u},n},yy=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:br,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},gy=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u<l)return;u<h&&(h=u)}else if(p>0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u<l)return;u<h&&(h=u)}if(u=r-c,d||!(u>0)){if(u/=d,d<0){if(u<l)return;u<h&&(h=u)}else if(d>0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u<l)return;u<h&&(h=u)}return l>0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},my=function(t,n){return P_(t[0]-n[0])<k_&&P_(t[1]-n[1])<k_},xy=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(my(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a.push(e=new si(r,t,null,!0)),c.push(e.o=new si(r,null,e,!1)),a.push(e=new si(u,t,null,!1)),c.push(e.o=new si(u,null,e,!0))}}),a.length){for(c.sort(n),fi(a),fi(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},by=1e9,wy=-by,My=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=li(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},Ty=$v(),ky=function(t,n){var e=n[0],r=n[1],i=[I_(e),-q_(e),0],o=0,u=0;Ty.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+E_,d=I_(p),v=q_(p),_=0;_<f;++_,h=g,d=x,v=b,l=y){var y=s[_],g=y[0],m=y[1]/2+E_,x=I_(m),b=q_(m),w=g-h,M=w>=0?1:-1,T=M*w,k=T>N_,N=d*x;if(Ty.add(R_(N*M*I_(T),v*b+N*q_(T))),o+=k?w+M*A_:w,k^h>=e^g>=e){var S=Pr(Cr(l),Cr(y));qr(S);var E=Pr(i,S);qr(E);var A=(k^w>=0?-1:1)*mr(E[2]);(r>A||r===A&&(S[0]||S[1]))&&(u+=k^w>=0?1:-1)}}return(o<-k_||o<k_&&Ty<-k_)^1&u},Ny=$v(),Sy={sphere:br,point:br,lineStart:hi,lineEnd:br,polygonStart:br,polygonEnd:br},Ey=function(t){return Ny.reset(),$_(t,Sy),+Ny},Ay=[null,null],Cy={type:"LineString",coordinates:Ay},zy=function(t,n){return Ay[0]=t,Ay[1]=n,Ey(Cy)},Py={Feature:function(t,n){return _i(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(_i(e[r].geometry,n))return!0;return!1}},Ly={Sphere:function(){return!0},Point:function(t,n){return yi(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(yi(e[r],n))return!0;return!1},LineString:function(t,n){return gi(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(gi(e[r],n))return!0;return!1},Polygon:function(t,n){return mi(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(mi(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(_i(e[r],n))return!0;return!1}},Ry=function(t,n){return(t&&Py.hasOwnProperty(t.type)?Py[t.type]:_i)(t,n)},qy=function(t,n){var e=t[0]*z_,r=t[1]*z_,i=n[0]*z_,o=n[1]*z_,u=q_(r),a=I_(r),c=q_(o),s=I_(o),f=u*q_(e),l=u*I_(e),h=c*q_(i),p=c*I_(i),d=2*mr(B_(xr(o-r)+u*c*xr(i-e))),v=I_(d),_=d?function(t){var n=I_(t*=d)/v,e=I_(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[R_(i,r)*C_,R_(o,B_(r*r+i*i))*C_]}:function(){return[e*C_,r*C_]};return _.distance=d,_},Uy=function(t){return t},Dy=$v(),Oy=$v(),Fy={point:br,lineStart:br,lineEnd:br,polygonStart:function(){Fy.lineStart=Ni,Fy.lineEnd=Ai},polygonEnd:function(){Fy.lineStart=Fy.lineEnd=Fy.point=br,Dy.add(P_(Oy)),Oy.reset()},result:function(){var t=Dy/2;return Dy.reset(),t}},Iy=1/0,Yy=Iy,By=-Iy,Hy=By,jy={point:Ci,lineStart:br,lineEnd:br,polygonStart:br,polygonEnd:br,result:function(){var t=[[Iy,Yy],[By,Hy]];return By=Hy=-(Yy=Iy=1/0),t}},Xy=0,$y=0,Vy=0,Wy=0,Zy=0,Gy=0,Jy=0,Qy=0,Ky=0,tg={point:zi,lineStart:Pi,lineEnd:qi,polygonStart:function(){tg.lineStart=Ui,tg.lineEnd=Di},polygonEnd:function(){tg.point=zi,tg.lineStart=Pi,tg.lineEnd=qi},result:function(){var t=Ky?[Jy/Ky,Qy/Ky]:Gy?[Wy/Gy,Zy/Gy]:Vy?[Xy/Vy,$y/Vy]:[NaN,NaN];return Xy=$y=Vy=Wy=Zy=Gy=Jy=Qy=Ky=0,t}};Ii.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,A_)}},result:br};var ng,eg,rg,ig,og,ug=$v(),ag={point:br,lineStart:function(){ag.point=Yi},lineEnd:function(){ng&&Bi(eg,rg),ag.point=br},polygonStart:function(){ng=!0},polygonEnd:function(){ng=null},result:function(){var t=+ug;return ug.reset(),t}};Hi.prototype={_radius:4.5,_circle:ji(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=ji(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var cg=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),$_(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return $_(t,r(Fy)),Fy.result()},e.measure=function(t){return $_(t,r(ag)),ag.result()},e.bounds=function(t){return $_(t,r(jy)),jy.result()},e.centroid=function(t){return $_(t,r(tg)),tg.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,Uy):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Hi):new Ii(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},sg=function(t,n,e,r){return function(i,o){function u(n,e){var r=i(n,e);t(n=r[0],e=r[1])&&o.point(n,e)}function a(t,n){var e=i(t,n);_.point(e[0],e[1])}function c(){b.point=a,_.lineStart()}function s(){b.point=u,_.lineEnd()}function f(t,n){v.push([t,n]);var e=i(t,n);m.point(e[0],e[1])}function l(){m.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),m.lineEnd();var t,n,e,r,i=m.clean(),u=g.result(),a=u.length;if(v.pop(),p.push(v),v=null,a)if(1&i){if(e=u[0],(n=e.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t<n;++t)o.point((r=e[t])[0],r[1]);o.lineEnd()}}else a>1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(Xi))}var p,d,v,_=n(o),y=i.invert(r[0],r[1]),g=yy(),m=n(g),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=bf(d);var t=ky(p,y);d.length?(x||(o.polygonStart(),x=!0),xy(d,$i,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},fg=sg(function(){return!0},Vi,Zi,[-N_,-S_]),lg=function(t,n){function e(e,r,i,o){ai(o,t,n,i,e,r)}function r(t,n){return q_(t)*q_(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?N_:-N_),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(!(p=o(n,d))||my(n,p)||my(d,p))&&(d[0]+=k_,d[1]+=k_,v=r(d[0],d[1])),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var y;_&e||!(y=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&my(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Cr(t),i=Cr(n),o=[1,0,0],u=Pr(r,i),c=zr(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Pr(o,u),d=Rr(o,l);Lr(d,Rr(u,h));var v=p,_=zr(d,v),y=zr(v,v),g=_*_-y*(zr(d,d)-1);if(!(g<0)){var m=B_(g),x=Rr(v,(-_-m)/y);if(Lr(x,d),x=Ar(x),!e)return x;var b,w=t[0],M=n[0],T=t[1],k=n[1];M<w&&(b=w,w=M,M=b);var N=M-w,S=P_(N-N_)<k_,E=S||N<k_;if(!S&&k<T&&(b=T,T=k,k=b),E?S?T+k>0^x[1]<(P_(x[0]-w)<k_?T:k):T<=x[1]&&x[1]<=k:N>N_^(w<=x[0]&&x[0]<=M)){var A=Rr(v,(-_+m)/y);return Lr(A,d),[x,Ar(A)]}}}function u(n,e){var r=c?t:N_-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=q_(t),c=a>0,s=P_(a)>k_;return sg(r,i,e,c?[0,-t]:[-N_,t-N_])},hg=function(t){return{stream:Gi(t)}};Ji.prototype={constructor:Ji,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var pg=16,dg=q_(30*z_),vg=function(t,n){return+n?no(t,n):to(t)},_g=Gi({point:function(t,n){this.stream.point(t*z_,n*z_)}}),yg=function(){return io(uo).scale(155.424).center([0,33.6442])},gg=function(){return yg().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},mg=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=gg(),s=yg().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=yg().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=ao([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+k_,a+.12*e+k_],[r-.214*e-k_,a+.234*e-k_]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+k_,a+.166*e+k_],[r-.115*e-k_,a+.234*e-k_]]).stream(l),n()},t.fitExtent=function(n,e){return Qi(t,n,e)},t.fitSize=function(n,e){return Ki(t,n,e)},t.scale(1070)},xg=co(function(t){return B_(2/(1+t))});xg.invert=so(function(t){return 2*mr(t/2)});var bg=function(){return eo(xg).scale(124.75).clipAngle(179.999)},wg=co(function(t){return(t=gr(t))&&t/I_(t)});wg.invert=so(function(t){return t});var Mg=function(){return eo(wg).scale(79.4188).clipAngle(179.999)};fo.invert=function(t,n){return[t,2*L_(D_(n))-S_]};var Tg=function(){return lo(fo).scale(961/A_)},kg=function(){return io(po).scale(109.5).parallels([30,30])};vo.invert=vo;var Ng=function(){return eo(vo).scale(152.63)},Sg=function(){return io(_o).scale(131.154).center([0,13.9389])};yo.invert=so(L_);var Eg=function(){return eo(yo).scale(144.049).clipAngle(60)},Ag=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=Uy,p=null,d=Uy;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,Uy):li(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=go((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=go(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=go(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=go(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Qi(u,t,n)},fitSize:function(t,n){return Ki(u,t,n)}}};mo.invert=so(mr);var Cg=function(){return eo(mo).scale(249.5).clipAngle(90+k_)};xo.invert=so(function(t){return 2*L_(t)});var zg=function(){return eo(xo).scale(250).clipAngle(142)};bo.invert=function(t,n){return[-n,2*L_(D_(t))-S_]};var Pg=function(){var t=lo(bo),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},Lg=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=Mo(e),t.y=ko(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=So(t),c=Eo(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=wo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},Rg=function(){return this.eachAfter(Ao)},qg=function(t){var n,e,r,i,o=this,u=[o];do{for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},Ug=function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},Dg=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},Og=function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},Fg=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},Ig=function(t){for(var n=this,e=Co(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},Yg=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},Bg=function(){var t=[];return this.each(function(n){t.push(n)}),t},Hg=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},jg=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};Uo.prototype=zo.prototype={constructor:Uo,count:Rg,each:qg,eachAfter:Dg,eachBefore:Ug,sum:Og,sort:Fg,path:Ig,ancestors:Yg,descendants:Bg,leaves:Hg,links:jg,copy:Po};var Xg=function(t){for(var n=(t=t.slice()).length,e=null,r=e;n;){var i=new Do(t[n-1]);r=r?r.next=i:e=i,t[void 0]=t[--n]}return{head:e,tail:r}},$g=function(t){return Fo(Xg(t),[])},Vg=function(t){return Vo(t),t},Wg=function(t){return function(){return t}},Zg=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Ko(i,.5)).eachBefore(tu(1)):t.eachBefore(Qo(Jo)).eachAfter(Ko(Go,1)).eachAfter(Ko(i,t.r/Math.min(e,r))).eachBefore(tu(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Go;return t.radius=function(e){return arguments.length?(n=Wo(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Wg(+n),t):i},t},Gg=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},Jg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)o=u[a],o.y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},Qg=function(){function t(t){var u=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=r/u,t.eachBefore(n(r,u)),o&&t.eachBefore(Gg),t}function n(t,n){return function(e){e.children&&Jg(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var r=e.x0,o=e.y0,u=e.x1-i,a=e.y1-i;u<r&&(r=u=(r+u)/2),a<o&&(o=a=(o+a)/2),e.x0=r,e.y0=o,e.x1=u,e.y1=a}}var e=1,r=1,i=0,o=!1;return t.round=function(n){return arguments.length?(o=!!n,t):o},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=+n,t):i},t},Kg="$",tm={depth:-1},nm={},em=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new Uo(r),null!=(c=n(r,i,t))&&(c+="")&&(s=Kg+(a.id=c),h[s]=s in h?nm:a);for(i=0;i<f;++i)if(a=l[i],null!=(c=e(t[i],i,t))&&(c+="")){if(!(u=h[Kg+c]))throw new Error("missing: "+c);if(u===nm)throw new Error("ambiguous: "+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error("multiple roots");o=a}if(!o)throw new Error("no root");if(o.parent=tm,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(qo),o.parent=null,f>0)throw new Error("cycle");return o}var n=nu,e=eu;return t.id=function(e){return arguments.length?(n=Zo(e),t):n},t.parentId=function(n){return arguments.length?(e=Zo(n),t):e},t};su.prototype=Object.create(Uo.prototype);var rm=function(){function t(t){var r=fu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){au(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=ou(a),i=iu(i),a&&i;)c=iu(c),u=ou(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(uu(cu(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!ou(u)&&(u.t=a,u.m+=l-f),i&&!iu(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=ru,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},im=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)o=u[a],o.x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},om=(1+Math.sqrt(5))/2,um=function t(n){function e(t,e,r,i,o){lu(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(om),am=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Gg),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,
+t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=um,r=!1,i=1,o=1,u=[0],a=Go,c=Go,s=Go,f=Go,l=Go;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Zo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a="function"==typeof n?n:Wg(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c="function"==typeof n?n:Wg(+n),t):c},t.paddingRight=function(n){return arguments.length?(s="function"==typeof n?n:Wg(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f="function"==typeof n?n:Wg(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Wg(+n),t):l},t},cm=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}h-f[p-1]<f[p]-h&&t+1<p&&--p;var _=f[p]-l,y=e-_;if(u-r>a-i){var g=(r*y+u*_)/e;o(t,p,_,r,i,g,a),o(p,n,y,g,i,u,a)}else{var m=(i*y+a*_)/e;o(t,p,_,r,i,u,m),o(p,n,y,r,m,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)},sm=function(t,n,e,r,i){(1&t.depth?im:Jg)(t,n,e,r,i)},fm=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(a=u[l],c=a.children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?Jg(a,e,r,i,r+=(o-r)*a.value/p):im(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=lu(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(om),lm=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},hm=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},pm=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},dm=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(hu),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=pu(r),u=pu(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},vm=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)o=t[l],e=o[0],r=o[1],r>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},_m=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,o=t[r],u=o[0],a=o[1],n-=u,e-=a,c+=Math.sqrt(n*n+e*e);return c},ym=[].slice,gm={};du.prototype=xu.prototype={constructor:du,defer:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("defer after await");if(null!=this._error)return this;var n=ym.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),vu(this),this},abort:function(){return null==this._error&&gu(this,new Error("abort")),this},await:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=function(n,e){t.apply(null,[n].concat(e))},mu(this),this},awaitAll:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=t,mu(this),this}};var mm=function(){return Math.random()},xm=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(mm),bm=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(mm),wm=function t(n){function e(){var t=bm.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(mm),Mm=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(mm),Tm=function t(n){function e(t){var e=Mm.source(n)(t);return function(){return e()/t}}return e.source=t,e}(mm),km=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(mm),Nm=function(t,n){function e(t){var n,e=s.status;if(!e&&wu(s)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,s)}catch(t){return void a.call("error",r,t)}else n=s;a.call("load",r,n)}else a.call("error",r,t)}var r,i,o,u,a=v("beforesend","progress","load","error"),c=He(),s=new XMLHttpRequest,f=null,l=null,h=0;if("undefined"==typeof XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=s.ontimeout=e:s.onreadystatechange=function(t){s.readyState>3&&e(t)},s.onprogress=function(t){a.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?c.get(t):(null==n?c.remove(t):c.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(h=+t,r):h},user:function(t){return arguments.length<1?f:(f=null==t?null:t+"",r)},password:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return s.open(n,t,!0,f,l),null==i||c.has("accept")||c.set("accept",i+",*/*"),s.setRequestHeader&&c.each(function(t,n){s.setRequestHeader(n,t)}),null!=i&&s.overrideMimeType&&s.overrideMimeType(i),null!=u&&(s.responseType=u),h>0&&(s.timeout=h),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=bu(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),a.call("beforesend",r,s),s.send(null==e?null:e),r},abort:function(){return s.abort(),r},on:function(){var t=a.on.apply(a,arguments);return t===a?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},Sm=function(t,n){return function(e,r){var i=Nm(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},Em=Sm("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),Am=Sm("application/json",function(t){return JSON.parse(t.responseText)}),Cm=Sm("text/plain",function(t){return t.responseText}),zm=Sm("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),Pm=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=Nm(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Mu(n,r=t)):r},o.row(r),i?o.get(i):o}},Lm=Pm("text/csv",Zd),Rm=Pm("text/tab-separated-values",tv),qm=Array.prototype,Um=qm.map,Dm=qm.slice,Om={name:"implicit"},Fm=function(t){return function(){return t}},Im=function(t){return+t},Ym=[0,1],Bm=function(n,e,r){var o,u=n[0],a=n[n.length-1],c=i(u,a,null==e?10:e);switch(r=pr(null==r?",f":r),r.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=r.precision||isNaN(o=jv(c,s))||(r.precision=o),t.formatPrefix(r,s);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=Xv(c,Math.max(Math.abs(u),Math.abs(a))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=Hv(c))||(r.precision=o-2*("%"===r.type))}return t.format(r)},Hm=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},jm=new Date,Xm=new Date,$m=Ju(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});$m.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ju(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):$m:null};var Vm=$m.range,Wm=6e4,Zm=6048e5,Gm=Ju(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Jm=Gm.range,Qm=Ju(function(t){t.setTime(Math.floor(t/Wm)*Wm)},function(t,n){t.setTime(+t+n*Wm)},function(t,n){return(n-t)/Wm},function(t){return t.getMinutes()}),Km=Qm.range,tx=Ju(function(t){var n=t.getTimezoneOffset()*Wm%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),nx=tx.range,ex=Ju(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Wm)/864e5},function(t){return t.getDate()-1}),rx=ex.range,ix=Qu(0),ox=Qu(1),ux=Qu(2),ax=Qu(3),cx=Qu(4),sx=Qu(5),fx=Qu(6),lx=ix.range,hx=ox.range,px=ux.range,dx=ax.range,vx=cx.range,_x=sx.range,yx=fx.range,gx=Ju(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),mx=gx.range,xx=Ju(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});xx.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ju(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var bx=xx.range,wx=Ju(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Wm)},function(t,n){return(n-t)/Wm},function(t){return t.getUTCMinutes()}),Mx=wx.range,Tx=Ju(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),kx=Tx.range,Nx=Ju(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),Sx=Nx.range,Ex=Ku(0),Ax=Ku(1),Cx=Ku(2),zx=Ku(3),Px=Ku(4),Lx=Ku(5),Rx=Ku(6),qx=Ex.range,Ux=Ax.range,Dx=Cx.range,Ox=zx.range,Fx=Px.range,Ix=Lx.range,Yx=Rx.range,Bx=Ju(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Hx=Bx.range,jx=Ju(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});jx.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ju(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Xx,$x=jx.range,Vx={"-":"",_:" ",0:"0"},Wx=/^\s*\d+/,Zx=/^%/,Gx=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Ja({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Jx=Date.prototype.toISOString?Qa:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Qx=+new Date("2000-01-01T00:00:00.000Z")?Ka:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Kx=1e3,tb=60*Kx,nb=60*tb,eb=24*nb,rb=7*eb,ib=30*eb,ob=365*eb,ub=function(){return ec(xx,gx,ix,ex,tx,Qm,Gm,$m,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},ab=function(){return ec(jx,Bx,Ex,Nx,Tx,wx,Gm,$m,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},cb=function(t){return t.match(/.{6}/g).map(function(t){return"#"+t})},sb=cb("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),fb=cb("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),lb=cb("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),hb=cb("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),pb=Zh(Wt(300,.5,0),Wt(-240,.5,1)),db=Zh(Wt(-100,.75,.35),Wt(80,1.5,.8)),vb=Zh(Wt(260,.75,.35),Wt(80,1.5,.8)),_b=Wt(),yb=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return _b.h=360*t-100,_b.s=1.5-1.5*n,_b.l=.8-.9*n,_b+""},gb=rc(cb("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),mb=rc(cb("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),xb=rc(cb("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),bb=rc(cb("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),wb=function(t){return function(){return t}},Mb=Math.abs,Tb=Math.atan2,kb=Math.cos,Nb=Math.max,Sb=Math.min,Eb=Math.sin,Ab=Math.sqrt,Cb=1e-12,zb=Math.PI,Pb=zb/2,Lb=2*zb,Rb=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-Pb,p=u.apply(this,arguments)-Pb,d=Mb(p-h),v=p>h;if(c||(c=t=Ue()),l<f&&(s=l,l=f,f=s),l>Cb)if(d>Lb-Cb)c.moveTo(l*kb(h),l*Eb(h)),c.arc(0,0,l,h,p,!v),f>Cb&&(c.moveTo(f*kb(p),f*Eb(p)),c.arc(0,0,f,p,h,v));else{var _,y,g=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,k=T>Cb&&(i?+i.apply(this,arguments):Ab(f*f+l*l)),N=Sb(Mb(l-f)/2,+r.apply(this,arguments)),S=N,E=N;if(k>Cb){var A=uc(k/f*Eb(T)),C=uc(k/l*Eb(T));(w-=2*A)>Cb?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>Cb?(C*=v?1:-1,g+=C,m-=C):(M=0,g=m=(h+p)/2)}var z=l*kb(g),P=l*Eb(g),L=f*kb(b),R=f*Eb(b);if(N>Cb){var q=l*kb(m),U=l*Eb(m),D=f*kb(x),O=f*Eb(x);if(d<zb){var F=w>Cb?hc(z,P,D,O,q,U,L,R):[L,R],I=z-F[0],Y=P-F[1],B=q-F[0],H=U-F[1],j=1/Eb(oc((I*B+Y*H)/(Ab(I*I+Y*Y)*Ab(B*B+H*H)))/2),X=Ab(F[0]*F[0]+F[1]*F[1]);S=Sb(N,(f-X)/(j-1)),E=Sb(N,(l-X)/(j+1))}}M>Cb?E>Cb?(_=pc(D,O,z,P,l,E,v),y=pc(q,U,L,R,l,E,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),E<N?c.arc(_.cx,_.cy,E,Tb(_.y01,_.x01),Tb(y.y01,y.x01),!v):(c.arc(_.cx,_.cy,E,Tb(_.y01,_.x01),Tb(_.y11,_.x11),!v),c.arc(0,0,l,Tb(_.cy+_.y11,_.cx+_.x11),Tb(y.cy+y.y11,y.cx+y.x11),!v),c.arc(y.cx,y.cy,E,Tb(y.y11,y.x11),Tb(y.y01,y.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,g,m,!v)):c.moveTo(z,P),f>Cb&&w>Cb?S>Cb?(_=pc(L,R,q,U,f,-S,v),y=pc(z,P,D,O,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S<N?c.arc(_.cx,_.cy,S,Tb(_.y01,_.x01),Tb(y.y01,y.x01),!v):(c.arc(_.cx,_.cy,S,Tb(_.y01,_.x01),Tb(_.y11,_.x11),!v),c.arc(0,0,f,Tb(_.cy+_.y11,_.cx+_.x11),Tb(y.cy+y.y11,y.cx+y.x11),v),c.arc(y.cx,y.cy,S,Tb(y.y11,y.x11),Tb(y.y01,y.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(L,R)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+""||null}var n=ac,e=cc,r=wb(0),i=null,o=sc,u=fc,a=lc,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-zb/2;return[kb(r)*t,Eb(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:wb(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:wb(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:wb(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:wb(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:wb(+n),t):o},t.endAngle=function(n){return arguments.length?(u="function"==typeof n?n:wb(+n),t):u},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:wb(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t};dc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var qb=function(t){return new dc(t)},Ub=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=Ue())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}var n=vc,e=_c,r=wb(!0),i=null,o=qb,u=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:wb(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:wb(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:wb(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},Db=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,_=new Array(d),y=new Array(d);for(null==a&&(s=c(p=Ue())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(_[l],y[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),y[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):y[n]))}if(p)return s=null,p+""||null}function n(){return Ub().defined(u).curve(c).context(a)}var e=vc,r=null,i=wb(0),o=_c,u=wb(!0),a=null,c=qb,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:wb(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:wb(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:wb(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:wb(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:wb(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:wb(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:wb(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},Ob=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Fb=function(t){return t},Ib=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),y=Math.min(Lb,Math.max(-Lb,o.apply(this,arguments)-_)),g=Math.min(Math.abs(y)/h,u.apply(this,arguments)),m=g*(y<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(y-h*m)/p:0;a<h;++a,_=f)c=d[a],l=v[c],f=_+(l>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:g};return v}var n=Fb,e=Ob,r=null,i=wb(0),o=wb(Lb),u=wb(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:wb(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:wb(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:wb(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:wb(+n),t):u},t},Yb=gc(qb);yc.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Bb=function(){return mc(Ub().curve(Yb))},Hb=function(){var t=Db().curve(Yb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return mc(e())},delete t.lineX0,t.lineEndAngle=function(){return mc(r())},delete t.lineX1,t.lineInnerRadius=function(){return mc(i())},delete t.lineY0,t.lineOuterRadius=function(){return mc(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(gc(t)):n()._curve},t},jb=Array.prototype.slice,Xb=function(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]},$b={draw:function(t,n){var e=Math.sqrt(n/zb);t.moveTo(e,0),t.arc(0,0,e,0,Lb)}},Vb={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Wb=Math.sqrt(1/3),Zb=2*Wb,Gb={draw:function(t,n){var e=Math.sqrt(n/Zb),r=e*Wb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Jb=Math.sin(zb/10)/Math.sin(7*zb/10),Qb=Math.sin(Lb/10)*Jb,Kb=-Math.cos(Lb/10)*Jb,tw={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Qb*e,i=Kb*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=Lb*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},nw={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},ew=Math.sqrt(3),rw={draw:function(t,n){var e=-Math.sqrt(n/(3*ew));t.moveTo(0,2*e),t.lineTo(-ew*e,-e),t.lineTo(ew*e,-e),t.closePath()}},iw=-.5,ow=Math.sqrt(3)/2,uw=1/Math.sqrt(12),aw=3*(uw/2+1),cw={draw:function(t,n){var e=Math.sqrt(n/aw),r=e/2,i=e*uw,o=r,u=e*uw+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(iw*r-ow*i,ow*r+iw*i),t.lineTo(iw*o-ow*u,ow*o+iw*u),t.lineTo(iw*a-ow*c,ow*a+iw*c),t.lineTo(iw*r+ow*i,iw*i-ow*r),t.lineTo(iw*o+ow*u,iw*u-ow*o),t.lineTo(iw*a+ow*c,iw*c-ow*a),t.closePath()}},sw=[$b,Vb,Gb,nw,tw,rw,cw],fw=function(){function t(){var t;if(r||(r=t=Ue()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=wb($b),e=wb(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:wb(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:wb(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},lw=function(){};Cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ac(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ac(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var hw=function(t){return new Cc(t)};zc.prototype={areaStart:lw,areaEnd:lw,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Ac(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var pw=function(t){return new zc(t)};Pc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Ac(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var dw=function(t){return new Pc(t)};Lc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var vw=function t(n){function e(t){return 1===n?new Cc(t):new Lc(t,n)}return e.beta=function(n){return t(+n)},e}(.85);qc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Rc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,
+this._y1=this._y2,this._y2=n}};var _w=function t(n){function e(t){return new qc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Uc.prototype={areaStart:lw,areaEnd:lw,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var yw=function t(n){function e(t){return new Uc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Dc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var gw=function t(n){function e(t){return new Dc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Fc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Oc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var mw=function t(n){function e(t){return n?new Fc(t,n):new qc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Ic.prototype={areaStart:lw,areaEnd:lw,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Oc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var xw=function t(n){function e(t){return n?new Ic(t,n):new Uc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Yc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Oc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var bw=function t(n){function e(t){return n?new Yc(t,n):new Dc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Bc.prototype={areaStart:lw,areaEnd:lw,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};var ww=function(t){return new Bc(t)};Vc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$c(this,this._t0,Xc(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,$c(this,Xc(this,e=jc(this,t,n)),e);break;default:$c(this,this._t0,e=jc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Wc.prototype=Object.create(Vc.prototype)).point=function(t,n){Vc.prototype.point.call(this,n,t)},Zc.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Qc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=Kc(t),i=Kc(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Mw=function(t){return new Qc(t)};ts.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Tw=function(t){return new ts(t,.5)},kw=function(t,n){if((i=t.length)>1)for(var e,r,i,o=1,u=t[n[0]],a=u.length;o<i;++o)for(r=u,u=t[n[o]],e=0;e<a;++e)u[e][1]+=u[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]},Nw=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},Sw=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=wb([]),e=Nw,r=kw,i=rs;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:wb(jb.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:wb(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?Nw:"function"==typeof n?n:wb(jb.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?kw:n,t):r},t},Ew=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}kw(t,n)}},Aw=function(t,n){if((a=t.length)>1)for(var e,r,i,o,u,a,c=0,s=t[n[0]].length;c<s;++c)for(o=u=0,e=0;e<a;++e)(i=(r=t[n[e]][c])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=u,r[0]=u+=i):r[0]=o},Cw=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}kw(t,n)}},zw=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=f[u-1][1]||0,p=(l-h)/2,d=0;d<a;++d){var v=t[n[d]];p+=(v[u][1]||0)-(v[u-1][1]||0)}c+=l,s+=p*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,kw(t,n)}},Pw=function(t){var n=t.map(is);return Nw(t).sort(function(t,e){return n[t]-n[e]})},Lw=function(t){return Pw(t).reverse()},Rw=function(t){var n,e,r=t.length,i=t.map(is),o=Nw(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},qw=function(t){return Nw(t).reverse()},Uw=function(t){return function(){return t}};as.prototype={constructor:as,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=ls(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(ss(this,e),t=e,e=t.U),e.C=!1,r.C=!0,fs(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(fs(this,e),t=e,e=t.U),e.C=!1,r.C=!0,ss(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?ls(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,ss(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,fs(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,ss(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,fs(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,ss(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,fs(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var Dw,Ow,Fw,Iw,Yw,Bw=[],Hw=[],jw=1e-6,Xw=1e-12;Us.prototype={constructor:Us,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return xs(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,s=n[i[c]],f=s.left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&Rs(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do{i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}})}while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var $w=function(){function t(t){return new Us(t.map(function(r,i){var o=[Math.round(n(r,i,t)/jw)*jw,Math.round(e(r,i,t)/jw)*jw];return o.index=i,o.data=r,o}),r)}var n=os,e=us,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:Uw(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:Uw(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},Vw=function(t){return function(){return t}};Os.prototype={constructor:Os,scale:function(t){return 1===t?this:new Os(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Os(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ww=new Os(1,0,0);Fs.prototype=Os.prototype;var Zw=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Gw=function(){function n(t){t.on("wheel.zoom",s).on("mousedown.zoom",f).on("dblclick.zoom",l).on("touchstart.zoom",h).on("touchmove.zoom",p).on("touchend.zoom touchcancel.zoom",d).style("-webkit-tap-highlight-color","rgba(0,0,0,0)").property("__zoom",Hs)}function e(t,n){return n=Math.max(x,Math.min(b,n)),n===t.k?t:new Os(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Os(t.k,r,i)}function i(t,n){var e=t.invertX(n[0][0])-w,r=t.invertX(n[1][0])-M,i=t.invertY(n[0][1])-T,o=t.invertY(n[1][1])-k;return t.translate(r>e?(e+r)/2:Math.min(0,e)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function o(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function u(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=this,r=arguments,i=a(t,r),u=m.apply(t,r),c=e||o(u),s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),f=t.__zoom,l="function"==typeof n?n.apply(t,r):n,h=S(f.invert(c).concat(s/f.k),l.invert(c).concat(s/l.k));return function(t){if(1===t)t=l;else{var n=h(t),e=s/n[2];t=new Os(e,c[0]-n[0]*e,c[1]-n[1]*e)}i.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=E.length;r<i;++r)if((e=E[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){function n(){o.wheel=null,o.end()}if(g.apply(this,arguments)){var o=a(this,arguments),u=this.__zoom,c=Math.max(x,Math.min(b,u.k*Math.pow(2,-t.event.deltaY*(t.event.deltaMode?120:1)/500))),s=Gf(this);if(o.wheel)o.mouse[0][0]===s[0]&&o.mouse[0][1]===s[1]||(o.mouse[1]=u.invert(o.mouse[0]=s)),clearTimeout(o.wheel);else{if(u.k===c)return;o.mouse=[s,u.invert(s)],gp(this),o.start()}Zw(),o.wheel=setTimeout(n,P),o.zoom("mouse",i(r(e(u,c),o.mouse[0],o.mouse[1]),o.extent))}}function f(){function n(){if(Zw(),!o.moved){var n=t.event.clientX-s,e=t.event.clientY-f;o.moved=n*n+e*e>L}o.zoom("mouse",i(r(o.that.__zoom,o.mouse[0]=Gf(o.that),o.mouse[1]),o.extent))}function e(){u.on("mousemove.zoom mouseup.zoom",null),mt(t.event.view,o.moved),Zw(),o.end()}if(!y&&g.apply(this,arguments)){var o=a(this,arguments),u=Pl(t.event.view).on("mousemove.zoom",n,!0).on("mouseup.zoom",e,!0),c=Gf(this),s=t.event.clientX,f=t.event.clientY;Dl(t.event.view),Is(),o.mouse=[c,this.__zoom.invert(c)],gp(this),o.start()}}function l(){if(g.apply(this,arguments)){var o=this.__zoom,a=Gf(this),c=o.invert(a),s=o.k*(t.event.shiftKey?.5:2),f=i(r(e(o,s),a,c),m.apply(this,arguments));Zw(),N>0?Pl(this).transition().duration(N).call(u,f,a):Pl(this).call(n.transform,f)}}function h(){if(g.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,c=u.length;for(Is(),e=0;e<c;++e)r=u[e],i=Rl(this,u,r.identifier),i=[i,this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(_&&(_=clearTimeout(_),!o.touch1))return o.end(),void((i=Pl(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(_=setTimeout(function(){_=null},z),gp(this),o.start())}}function p(){var n,o,u,c,s=a(this,arguments),f=t.event.changedTouches,l=f.length;for(Zw(),_&&(_=clearTimeout(_)),n=0;n<l;++n)o=f[n],u=Rl(this,f,o.identifier),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=u:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=u);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],p=s.touch0[1],d=s.touch1[0],v=s.touch1[1],y=(y=d[0]-h[0])*y+(y=d[1]-h[1])*y,g=(g=v[0]-p[0])*g+(g=v[1]-p[1])*g;o=e(o,Math.sqrt(y/g)),u=[(h[0]+d[0])/2,(h[1]+d[1])/2],c=[(p[0]+v[0])/2,(p[1]+v[1])/2]}else{if(!s.touch0)return;u=s.touch0[0],c=s.touch0[1]}s.zoom("touch",i(r(o,u,c),s.extent))}function d(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(Is(),y&&clearTimeout(y),y=setTimeout(function(){y=null},z),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var _,y,g=Ys,m=Bs,x=0,b=1/0,w=-b,M=b,T=w,k=M,N=250,S=Hh,E=[],C=v("start","zoom","end"),z=500,P=150,L=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",Hs),t!==e?u(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,u){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,a=o(t),c=n.invert(a);return i(r(e(n,"function"==typeof u?u.apply(this,arguments):u),a,c),t)})},n.translateBy=function(t,e,r){n.transform(t,function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments))})},c.prototype={start:function(){return 1==++this.active&&(this.index=E.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(E.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){A(new Ds(n,t,this.that.__zoom),C.apply,C,[t,this.that,this.args])}},n.filter=function(t){return arguments.length?(g="function"==typeof t?t:Vw(!!t),n):g},n.extent=function(t){return arguments.length?(m="function"==typeof t?t:Vw([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(x=+t[0],b=+t[1],n):[x,b]},n.translateExtent=function(t){return arguments.length?(w=+t[0][0],M=+t[1][0],T=+t[0][1],k=+t[1][1],n):[[w,T],[M,k]]},n.duration=function(t){return arguments.length?(N=+t,n):N},n.interpolate=function(t){return arguments.length?(S=t,n):S},n.on=function(){var t=C.on.apply(C,arguments);return t===C?n:t},n.clickDistance=function(t){return arguments.length?(L=(t=+t)*t,n):Math.sqrt(L)},n};t.version="4.9.1",t.bisect=Vs,t.bisectRight=Vs,t.bisectLeft=Ws,t.ascending=js,t.bisector=Xs,t.cross=Gs,t.descending=Js,t.deviation=tf,t.extent=nf,t.histogram=df,t.thresholdFreedmanDiaconis=_f,t.thresholdScott=yf,t.thresholdSturges=pf,t.max=gf,t.mean=mf,t.median=xf,t.merge=bf,t.min=wf,t.pairs=Zs,t.permute=Mf,t.quantile=vf,t.range=cf,t.scan=Tf,t.shuffle=kf,t.sum=Nf,t.ticks=hf,t.tickIncrement=r,t.tickStep=i,t.transpose=Sf,t.variance=Ks,t.zip=Ef,t.axisTop=l,t.axisRight=h,t.axisBottom=p,t.axisLeft=d,t.brush=Ed,t.brushX=ze,t.brushY=Pe,t.brushSelection=Ce,t.chord=qd,t.ribbon=Yd,t.nest=Bd,t.set=Ze,t.map=He,t.keys=jd,t.values=Xd,t.entries=$d,t.color=Nt,t.rgb=Ct,t.hsl=Rt,t.lab=Ot,t.hcl=Xt,t.cubehelix=Wt,t.dispatch=v,t.drag=Fl,t.dragDisable=Dl,t.dragEnable=mt,t.dsvFormat=Vd,t.csvParse=Zd,t.csvParseRows=Gd,t.csvFormat=Jd,t.csvFormatRows=Qd,t.tsvParse=tv,t.tsvParseRows=nv,t.tsvFormat=ev,t.tsvFormatRows=rv,t.easeLinear=ie,t.easeQuad=ae,t.easeQuadIn=oe,t.easeQuadOut=ue,t.easeQuadInOut=ae,t.easeCubic=fe,t.easeCubicIn=ce,t.easeCubicOut=se,t.easeCubicInOut=fe,t.easePoly=Hp,t.easePolyIn=Yp,t.easePolyOut=Bp,t.easePolyInOut=Hp,t.easeSin=pe,t.easeSinIn=le,t.easeSinOut=he,t.easeSinInOut=pe,t.easeExp=_e,t.easeExpIn=de,t.easeExpOut=ve,t.easeExpInOut=_e,t.easeCircle=me,t.easeCircleIn=ye,t.easeCircleOut=ge,t.easeCircleInOut=me,t.easeBounce=be,t.easeBounceIn=xe,t.easeBounceOut=be,t.easeBounceInOut=we,t.easeBack=id,t.easeBackIn=ed,t.easeBackOut=rd,t.easeBackInOut=id,t.easeElastic=ad,t.easeElasticIn=ud,t.easeElasticOut=ad,t.easeElasticInOut=cd,t.forceCenter=iv,t.forceCollide=wv,t.forceLink=Mv,t.forceManyBody=Sv,t.forceSimulation=Nv,t.forceX=Ev,t.forceY=Av,t.formatDefaultLocale=vr,t.formatLocale=Bv,t.formatSpecifier=pr,t.precisionFixed=Hv,t.precisionPrefix=jv,t.precisionRound=Xv,t.geoArea=G_,t.geoBounds=K_,t.geoCentroid=ny,t.geoCircle=_y,t.geoClipExtent=My,t.geoContains=Ry,t.geoDistance=zy,t.geoGraticule=Ti,t.geoGraticule10=ki,t.geoInterpolate=qy,t.geoLength=Ey,t.geoPath=cg,t.geoAlbers=gg,t.geoAlbersUsa=mg,t.geoAzimuthalEqualArea=bg,t.geoAzimuthalEqualAreaRaw=xg,t.geoAzimuthalEquidistant=Mg,t.geoAzimuthalEquidistantRaw=wg,t.geoConicConformal=kg,t.geoConicConformalRaw=po,t.geoConicEqualArea=yg,t.geoConicEqualAreaRaw=uo,t.geoConicEquidistant=Sg,t.geoConicEquidistantRaw=_o,t.geoEquirectangular=Ng,t.geoEquirectangularRaw=vo,t.geoGnomonic=Eg,t.geoGnomonicRaw=yo,t.geoIdentity=Ag,t.geoProjection=eo,t.geoProjectionMutator=ro,t.geoMercator=Tg,t.geoMercatorRaw=fo,t.geoOrthographic=Cg,t.geoOrthographicRaw=mo,t.geoStereographic=zg,t.geoStereographicRaw=xo,t.geoTransverseMercator=Pg,t.geoTransverseMercatorRaw=bo,t.geoRotation=vy,t.geoStream=$_,t.geoTransform=hg,t.cluster=Lg,t.hierarchy=zo,t.pack=Zg,t.packSiblings=Vg,t.packEnclose=$g,t.partition=Qg,t.stratify=em,t.tree=rm,t.treemap=am,t.treemapBinary=cm,t.treemapDice=Jg,t.treemapSlice=im,t.treemapSliceDice=sm,t.treemapSquarify=um,t.treemapResquarify=fm,t.interpolate=qh,t.interpolateArray=Eh,t.interpolateBasis=wh,t.interpolateBasisClosed=Mh,t.interpolateDate=Ah,t.interpolateNumber=Ch,t.interpolateObject=zh,t.interpolateRound=Uh,t.interpolateString=Rh,t.interpolateTransformCss=Ih,t.interpolateTransformSvg=Yh,t.interpolateZoom=Hh,t.interpolateRgb=kh,t.interpolateRgbBasis=Nh,t.interpolateRgbBasisClosed=Sh,t.interpolateHsl=jh,t.interpolateHslLong=Xh,t.interpolateLab=pn,t.interpolateHcl=$h,t.interpolateHclLong=Vh,t.interpolateCubehelix=Wh,t.interpolateCubehelixLong=Zh,t.quantize=Gh,t.path=Ue,t.polygonArea=lm,t.polygonCentroid=hm;t.polygonHull=dm,t.polygonContains=vm,t.polygonLength=_m,t.quadtree=ir,t.queue=xu,t.randomUniform=xm,t.randomNormal=bm,t.randomLogNormal=wm,t.randomBates=Tm,t.randomIrwinHall=Mm,t.randomExponential=km,t.request=Nm,t.html=Em,t.json=Am,t.text=Cm,t.xml=zm,t.csv=Lm,t.tsv=Rm,t.scaleBand=ku,t.scalePoint=Su,t.scaleIdentity=Du,t.scaleLinear=Uu,t.scaleLog=ju,t.scaleOrdinal=Tu,t.scaleImplicit=Om,t.scalePow=$u,t.scaleSqrt=Vu,t.scaleQuantile=Wu,t.scaleQuantize=Zu,t.scaleThreshold=Gu,t.scaleTime=ub,t.scaleUtc=ab,t.schemeCategory10=sb,t.schemeCategory20b=fb,t.schemeCategory20c=lb,t.schemeCategory20=hb,t.interpolateCubehelixDefault=pb,t.interpolateRainbow=yb,t.interpolateWarm=db,t.interpolateCool=vb,t.interpolateViridis=gb,t.interpolateMagma=mb,t.interpolateInferno=xb,t.interpolatePlasma=bb,t.scaleSequential=ic,t.creator=If,t.local=w,t.matcher=Xf,t.mouse=Gf,t.namespace=Ff,t.namespaces=Of,t.select=Pl,t.selectAll=Ll,t.selection=yt,t.selector=Jf,t.selectorAll=Kf,t.style=X,t.touch=Rl,t.touches=ql,t.window=gl,t.customEvent=A,t.arc=Rb,t.area=Db,t.line=Ub,t.pie=Ib,t.radialArea=Hb,t.radialLine=Bb,t.linkHorizontal=Nc,t.linkVertical=Sc,t.linkRadial=Ec,t.symbol=fw,t.symbols=sw,t.symbolCircle=$b,t.symbolCross=Vb,t.symbolDiamond=Gb,t.symbolSquare=nw,t.symbolStar=tw,t.symbolTriangle=rw,t.symbolWye=cw,t.curveBasisClosed=pw,t.curveBasisOpen=dw,t.curveBasis=hw,t.curveBundle=vw,t.curveCardinalClosed=yw,t.curveCardinalOpen=gw,t.curveCardinal=_w,t.curveCatmullRomClosed=xw,t.curveCatmullRomOpen=bw,t.curveCatmullRom=mw,t.curveLinearClosed=ww,t.curveLinear=qb,t.curveMonotoneX=Gc,t.curveMonotoneY=Jc,t.curveNatural=Mw,t.curveStep=Tw,t.curveStepAfter=es,t.curveStepBefore=ns,t.stack=Sw,t.stackOffsetExpand=Ew,t.stackOffsetDiverging=Aw,t.stackOffsetNone=kw,t.stackOffsetSilhouette=Cw,t.stackOffsetWiggle=zw,t.stackOrderAscending=Pw,t.stackOrderDescending=Lw,t.stackOrderInsideOut=Rw,t.stackOrderNone=Nw,t.stackOrderReverse=qw,t.timeInterval=Ju,t.timeMillisecond=$m,t.timeMilliseconds=Vm,t.utcMillisecond=$m,t.utcMilliseconds=Vm,t.timeSecond=Gm,t.timeSeconds=Jm,t.utcSecond=Gm,t.utcSeconds=Jm,t.timeMinute=Qm,t.timeMinutes=Km,t.timeHour=tx,t.timeHours=nx,t.timeDay=ex,t.timeDays=rx,t.timeWeek=ix,t.timeWeeks=lx,t.timeSunday=ix,t.timeSundays=lx,t.timeMonday=ox,t.timeMondays=hx,t.timeTuesday=ux,t.timeTuesdays=px,t.timeWednesday=ax,t.timeWednesdays=dx,t.timeThursday=cx,t.timeThursdays=vx,t.timeFriday=sx,t.timeFridays=_x,t.timeSaturday=fx,t.timeSaturdays=yx,t.timeMonth=gx,t.timeMonths=mx,t.timeYear=xx,t.timeYears=bx,t.utcMinute=wx,t.utcMinutes=Mx,t.utcHour=Tx,t.utcHours=kx,t.utcDay=Nx,t.utcDays=Sx,t.utcWeek=Ex,t.utcWeeks=qx,t.utcSunday=Ex,t.utcSundays=qx,t.utcMonday=Ax,t.utcMondays=Ux,t.utcTuesday=Cx,t.utcTuesdays=Dx,t.utcWednesday=zx,t.utcWednesdays=Ox,t.utcThursday=Px,t.utcThursdays=Fx,t.utcFriday=Lx,t.utcFridays=Ix,t.utcSaturday=Rx,t.utcSaturdays=Yx,t.utcMonth=Bx,t.utcMonths=Hx,t.utcYear=jx,t.utcYears=$x,t.timeFormatDefaultLocale=Ja,t.timeFormatLocale=ra,t.isoFormat=Jx,t.isoParse=Qx,t.now=_n,t.timer=mn,t.timerFlush=xn,t.timeout=up,t.interval=ap,t.transition=ee,t.active=hd,t.interrupt=gp,t.voronoi=$w,t.zoom=Gw,t.zoomTransform=Fs,t.zoomIdentity=Ww,Object.defineProperty(t,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/js/element.js b/js/element.js
new file mode 100644
index 0000000..f5fc75b
--- /dev/null
+++ b/js/element.js
@@ -0,0 +1,145 @@
+Element.prototype.toggle = function() {
+  if (this.state != "shown") {
+    this.show();
+  } else {
+    this.hide();
+  }
+}
+
+Element.prototype.show = function() {
+  if (this.state == "empty") {
+    this.load();
+  }
+  this.tag.show();
+  this.state = "shown";
+}
+
+Element.prototype.hide = function() {
+  if (this.state == "empty") {
+    this.load();
+  }
+  this.tag.hide();
+  this.state = "hidden";
+}
+
+Element.prototype.showHTML = function() {
+  this.tag.html(this.data.results);
+
+  if (this.id in Element.visualisers) {
+    var visual = new Element.visualisers[this.id](this.data.results);
+  }
+
+  var elems = this.tag.find("a[type='lexp']"),
+      _this = this;
+
+  elems.attr("source",_this.id);
+  elems.click(this.lexp.localHref);
+  this.tag.find(".can-collapse").hide();
+
+  this.tag.find("a[href^='#']").click(function(e) {
+    var id = $(this).attr("href").substr(1);
+    var target = $("div.can-collapse[id='" + id + "']", _this.tag);
+    target.toggle();
+    target.parent(".can-collapse").show();
+  });
+}
+
+Element.prototype.showJSON = function() {
+  if (this.id != 'walenty') {
+    if (this.id in Element.visualisers) {
+      var visual = new Element.visualisers[this.id](this.data.results);
+      if(!visual.showHTML(this.tag)) {
+        return;
+      }
+    }
+  }
+
+  this.tag.width("90%");
+  this.tag.height(300);
+  var editor = ace.edit(this.tag.get(0).id);
+
+  editor.getSession().setMode("ace/mode/json");
+  editor.setOptions({
+    wrap: true,
+    readOnly: true,
+    highlightActiveLine: false,
+    highlightGutterLine: false
+  });
+  editor.$blockScrolling = Infinity;
+  editor.setShowPrintMargin(false);
+  editor.renderer.$cursorLayer.element.style.opacity = 0;
+  editor.setValue(JSON.stringify(this.data.results, null, 2), 1);
+
+  if (this.id == 'walenty') {
+    if (this.id in Element.visualisers) {
+      var visual = new Element.visualisers[this.id](this.data.results);
+      if(!visual.showHTML(this.tag)) {
+        return;
+      }
+    }
+  }
+}
+
+Element.prototype.showElement = function() {
+  if (typeof this.data.results === 'string' || this.data.results instanceof String) {
+    this.showHTML();
+  } else {
+    this.showJSON();
+  }
+}
+
+Element.prototype.load = function() {
+  var loading = '<img src="/img/loading.gif" height="40" width="40"></img>';
+  this.tag.html(loading);
+  var _what = "/lexp/";
+  var _this = this;
+  //console.log(this.lexp);
+  var _task = {"function":"get","element":this.lexp.element,"resource":this.id};
+  // console.log(_what);
+  // console.log(_this);
+  // console.log(_task);
+  console.log(JSON.stringify(_task));
+  $.ajax({
+    type: "POST",
+    contentType: 'application/json',
+    data: JSON.stringify(_task),
+    url: _what,
+    cache: false,
+    processData: false,
+    dataType: "json",
+    success: function(res) {
+      console.log(res);
+      _this.data = res;
+      _this.showElement();
+    },
+    error: function(jqXHR, exception) {
+      nlp_error(jqXHR, exception);
+      return;
+    }
+  });
+}
+
+Element.prototype.setTag = function(tag) {
+  this.tag = tag;
+}
+
+function Element(tag, id, infoData, lexp) {
+  // console.log(tag);
+  // console.log(id);
+  // console.log(infoData);
+  // console.log(lexp);
+  this.tag = tag;
+  this.id = id;
+  this.formats = infoData.formats;
+  this.state = "empty";
+  this.lexp = lexp;
+}
+
+Element.addVisualizer = function(name, callback) {
+  /*console.log("dodałem: " + name);
+  console.log("CALLBACK");
+  console.log(callback);*/
+  Element.visualisers[name] = callback;
+}
+
+Element.visualisers = new Object();
\ No newline at end of file
diff --git a/js/graph-creator.js b/js/graph-creator.js
new file mode 100644
index 0000000..9466974
--- /dev/null
+++ b/js/graph-creator.js
@@ -0,0 +1,5 @@
+var GraphCreator=function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=9)}([function(t,e,n){"use strict";n.r(e),n.d(e,"apiConnector",function(){return i});const o=function(t){this.url="http://graph-slowosiec.clarin-pl.eu/wordnetloom/resources/",this.cache=new Map,this.possibleLangs=["pl","en"],this.lang=t||"pl"};o.prototype.setLang=function(t){const e=this;e.possibleLangs.indexOf(t)<0?console.error('Err, Language can only be chosen to be "pl" or "en"'):e.lang!==t&&(e.cache=new Map,e.lang=t)},o.prototype.entryPoints={settings:"settings/",graph:"graphs/synsets/{id}",synsetFromSense:"senses/{id}/synset",synsetFromLemma:"synsets/search?lemma={lemma}",relationTypes:"relation-types/{id}"},o.prototype._getJson=function(t,e){const n=this;if(!e)return n._getJsonPromise(t);n.cache.has(t)?e(n.cache.get(t)):d3.request(n.url+t).header("Content-Type","application/json").header("Accept-Language",n.lang).get((o,i)=>{i=JSON.parse(i.response),n.cache.set(t,i),e(i)})},o.prototype._getJsonPromise=function(t){const e=this;let n=new class{constructor(){this.promise=new Promise((t,e)=>{this.reject=e,this.resolve=t})}};return e.cache.has(t)?n.resolve(e.cache.get(t)):d3.request(e.url+t).header("Content-Type","application/json").header("Accept-Language",e.lang).get((o,i)=>{i=JSON.parse(i.response),e.cache.set(t,i),n.resolve(i)}),n.promise},o.prototype.getRelationTypes=function(t,e){return t=t||"",this._getJson(this.entryPoints.relationTypes.replace("{id}",t),e)},o.prototype.getSettings=function(t){return this._getJson(this.entryPoints.settings,t)},o.prototype.hasInCache=function(t){return this.cache.has(t)},o.prototype.getFromCache=function(t){return this.cache.has(t)?this.cache.get(t):null},o.prototype.getGraph=function(t,e){this._getJson(this.entryPoints.graph.replace("{id}",t),function(t){e(t||null)})},o.prototype.getSynsetFromSenseId=function(t,e){const n=function(t){e(t)};d3.json(this.url+this.entryPoints.synsetFromSense.replace("{id}",t),function(t,e){n(e||null)})},o.prototype.getSensesFromLemma=function(t,e){d3.json(this.url+this.entryPoints.synsetFromLemma.replace("{lemma}",t),function(t,n){e(n||null)})};const i=new o},function(t,e,n){"use strict";n.r(e),n.d(e,"Edge",function(){return i}),n.d(e,"EdgeContainer",function(){return r});var o=n(0);function i(t,e,n,o,i,r){this.connectionPoints=n,this.pathTextSrc=o[0],this.pathTextTarget=o[1],this.color=i||"#000",this.dotted=r||!1,this.source=t,this.target=e,this.id=this.getUniqueIdentifier(),this.initColor(),this.initDotted()}function r(){this.map=new Map,this[Symbol.iterator]=this.values}i.prototype.api=o.apiConnector,i.prototype.settings=o.apiConnector.getSettings(),i.prototype.initColor=function(){const t=this;if(!t.pathTextSrc&&!t.pathTextTarget)return;const e=e=>{const n=e.relations[t.pathTextSrc]||e.relations[t.pathTextTarget];try{t.color=n.color}catch(e){console.log(e),console.log(t)}};t.api.hasInCache(t.api.entryPoints.settings)?e(t.api.getFromCache(t.api.entryPoints.settings)):t.settings.then(t=>{e(t)})},i.prototype.initDotted=function(){const t=this;if(!t.pathTextSrc&&!t.pathTextTarget)return;const e=e=>{const n=e.relations[t.pathTextSrc]||e.relations[t.pathTextTarget];try{t.dotted=n.dotted}catch(e){console.log(e),console.log(t)}};t.api.hasInCache(t.api.entryPoints.settings)?e(t.api.getFromCache(t.api.entryPoints.settings)):t.settings.then(t=>{e(t)})},i.prototype.getUniqueIdentifier=function(){return this.source.id<this.target.id?this.source.id+"|"+this.target.id:this.target.id+"|"+this.source.id},r.prototype.add=function(t){t&&this.map.set(t.id,t)},r.prototype.values=function(){return this.map.values()},r.prototype.deleteNodeEdges=function(t){let e=this;e.map.forEach(n=>{n.source!==t&&n.target!==t||e.map.delete(n.id)})}},function(t,e,n){"use strict";n.r(e),n.d(e,"consts",function(){return h}),n.d(e,"GraphCreator",function(){return p});var o=n(0),r=n(1),s=n(3),a=n(4);const d=".inner-graph-container",l=".possible-senses",c=".graph-loader",h={partOfSpeech:{1:{color:"#FED25C"},2:{color:"#ABFFAE"},3:{color:"#ABFFAE"},4:{color:"#ACFFEA"}}},p=function(t,e,n,i){const s=this;s.width=n,s.height=i;let a='<div class="graph-loader" style="display: none"></div><div class="inner-graph-container"></div>';e&&(a+='<div id="toolbox"><form id="inspected-word-form"><button type="submit" value="Submit" id="inspected-word-btn">Szukaj</button><input type="text" id="inspected-word" placeholder="Słowo którego szukasz&hellip;"></form><ul class="possible-senses" style="display: none"></ul></div>'),a+='<button id="download-picture"></button>';const p=d3.select("#"+t).html(a);s.container=p;const u=p.select(d).append("svg").attr("width",n).attr("height",i).attr("id","graph-svg");s.hiddenList=d3.select(d).append("div").attr("pointer-events","none").attr("class","hidden-list tooltip").style("opacity",1).html("FIRST LINE <br> SECOND LINE").style("display","none"),s.sensesList=d3.select(l),s.tooltip=d3.select(d).append("div").attr("id","node-tooltip").style("opacity",0),s.loadingAnimationHandle=d3.select(c).style("display","none"),s.idct=0,s.nodes=new Map,s.edges=new r.EdgeContainer,s.transformed={x:0,y:0,k:1},s.state={selectedNode:null,selectedEdge:null,mouseDownNode:null,mouseDownLink:null,justDragged:!1,justScaleTransGraph:!1,lastKeyDown:-1,shiftNodeDrag:!1,selectedText:null,brushSelect:!1},s.api=o.apiConnector,s.settings=s.api.getSettings(),s.settings.then(t=>{h.partOfSpeech=t.partsOfSpeech}),s.relationTypes=s.api.getRelationTypes();const f=u.append("svg:defs");f.append("svg:marker").attr("id","end-arrow").attr("viewBox","0 -5 10 10").attr("refX","8").attr("markerWidth",10).attr("markerHeight",10).attr("orient","auto").append("svg:path").attr("d","M0,-5L10,0L0,5L5,0"),f.append("svg:marker").attr("id","start-arrow").attr("viewBox","0 0 10 10").attr("refX",2).attr("refY",5).attr("markerWidth",10).attr("markerHeight",10).attr("orient","auto").append("svg:path").attr("d","M0,5L10,0L5,5L10,10"),f.append("pattern").attr("id","flag-pl").html('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="10" id="Flag of Poland" viewBox="0 0 16 10"><rect width="16" height="4" fill="#fff"/><rect width="16" height="5" fill="#dc143c" y="4"/></svg>').attr("width",16).attr("height",16),f.append("pattern").attr("id","flag-en").attr("width",16).attr("height",16).html('<svg x="-1.5" viewBox="0 0 60 30" width="16" height="8">\n    <clipPath id="t">\n        <path d="M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"/>\n    </clipPath>\n    <path d="M0,0 v30 h60 v-30 z" fill="#00247d"/>\n    <path d="M0,0 L60,30 M60,0 L0,30" stroke="#fff" stroke-width="6"/>\n    <path d="M0,0 L60,30 M60,0 L0,30" clip-path="url(#t)" stroke="#cf142b" stroke-width="4"/>\n    <path d="M30,0 v30 M0,15 h60" stroke="#fff" stroke-width="10"/>\n    <path d="M30,0 v30 M0,15 h60" stroke="#cf142b" stroke-width="6"/>\n</svg>'),s.svg=u,s.svgOuter=u.append("g").classed("outer-zoom",!0).attr("transform","translate(0,0) scale(1)"),s.svgG=s.svgOuter.append("g").classed(s.consts.graphClass,!0).attr("id","wordnet-graph-g-element");const g=s.svgG;s.paths=g.append("g").attr("id","all-paths-id").selectAll("g"),s.pathsText=g.append("g").attr("id","all-paths-text-id").selectAll("g"),s.boats=g.append("g").attr("id","all-boats-id").selectAll("g"),s.drag=d3.drag().subject(function(t){return s.range.x.max=Math.max(t.x,s.range.x.max),s.range.y.max=Math.max(t.y,s.range.y.max),s.range.x.min=Math.min(t.x,s.range.x.min),s.range.y.min=Math.min(t.y,s.range.y.min),{x:t.x,y:t.y}}).on("drag",function(t){s.state.justDragged=!0,s.dragmove.call(s,t)}),d3.select(window).on("keydown",function(){s.svgKeyDown.call(s)}).on("keyup",function(){s.svgKeyUp.call(s)}),u.on("mousedown",function(t){s.svgMouseDown.call(s,t)}),u.on("mouseup",function(t){s.svgMouseUp.call(s,t)});const y=d3.zoom().on("zoom",function(){return!d3.event.sourceEvent.shiftKey&&(s.zoomed.call(s),!0)}).on("start",function(){var t=d3.select("#"+s.consts.activeEditId).node();t&&t.blur(),d3.event.sourceEvent.shiftKey||d3.select("body").style("cursor","move")}).on("end",function(){d3.select("body").style("cursor","auto")});s.zoom=y,u.call(y).on("dblclick.zoom",null),window.onresize=function(){s.updateWindow(u)};s.brush=d3.brush(),s.brush.graph=this,s.brush.on("brush",function(){s.brushed()}),d3.select("#inspected-word-form").on("submit",function(){d3.event.preventDefault(),console.log("on submit");let t=d3.select("#inspected-word");s.loadNewWord(t.node().value)}),d3.select("#download-picture").on("click",function(){s.exportVisualization()}),s.range={x:{min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER},y:{min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER}}};p.prototype.setLanguage=function(t){this.api.setLang(t)},p.prototype.showMiniMap=function(t,e,n,o,i,r){t=t||.25,(e=e||this.container)!==this.container&&(e=d3.select(e)),n&&i&&(i=null),null===n&&null===i&&(n=0),o&&r&&(r=null),null===o&&null===r&&(r=0);let s=d3.select("#graph-svg"),a=t;this.minimap=d3.minimap().host(this).target(s).targetShadowId("#all-boats-id").targetShadowId("#all-paths-id").minimapScale(a).x(0).y(0);let d=e.append("svg").attr("class","svg canvas").attr("width",this.width*t).attr("height",this.height*t).attr("shape-rendering","auto").style("position","absolute");null!==n&&void 0!==n&&d.style("top",n),null!==o&&void 0!==o&&d.style("right",o),null!==i&&void 0!==i&&d.style("bottom",i),null!==r&&void 0!==r&&d.style("left",r),d.call(this.minimap),this.minimap.render()},p.prototype.getHeight=function(){return this.height},p.prototype.getWidth=function(){return this.width},p.prototype.update=function(t){this.zoom.transform(this.svg,t),this.svg.property("__zoom",t)},p.prototype.updateCanvasZoomExtents=function(){var t=this.svg.property("__zoom").k,e=this.svg.attr("width"),n=this.svg.attr("height"),o=this.width,i=this.height;this.zoom.translateExtent([[-o/t,-i/t],[o/t+e,i/t+n]])},p.prototype.showLoadingAnimation=function(){this.loadingAnimationHandle.style("display","block")},p.prototype.hideLoadingAnimation=function(){this.loadingAnimationHandle.style("display","none")},p.prototype.listPossibleSenses=function(t){const e=this;if(e.hideLoadingAnimation(),t){const n=function(t){t&&e.initializeFromSynsetId(t.id)};if(0===t.length)e.sensesList.style("display","block").html("").html("<li>nic nie znaleziono</li>");else if(1===t.length)e.api.getSynsetFromSenseId(t[0].id,n);else{let o="";for(let e=0;e<t.length;e++)o+='<li class="hidden-list-item" data-sense-id="'+t[e].id+'">'+t[e].lemma.word+"</li>\n";e.sensesList.style("display","block").html("").html(o),d3.selectAll(".hidden-list-item").on("click",function(){let t=d3.select(this).attr("data-sense-id");e.api.getSynsetFromSenseId(t,n)})}}},p.prototype.loadNewWord=function(t){this.showLoadingAnimation(),this.api.getSensesFromLemma(t,this.listPossibleSenses.bind(this))},p.prototype.initFromJson=function(t){const e=this;try{e.deleteGraph(!0);const n=e.width/2-25,o=e.height/2-100,i=new s.GraphNode(t,n,o,{},e,!0,!0,!0,!0);i.childrenDownloaded=!0,e.nodes.set(i.id,i),e.updateWithChildrenNodes(i)}catch(t){console.log(t),window.alert("Error parsing json\nerror message: "+t.message)}},p.prototype.edgeNotExisting=function(t,e,n){const o=this;for(let n=0;n<o.edges.length;n++){let i=o.edges[n];if(i.source===t&&i.target===e)return!1;if(i.source===e&&i.target===t)return!1}if(void 0!==n)for(i=0;i<n.length;i++){let o=n[i];if(o.source===t&&o.target===e)return!1;if(o.source===e&&o.target===t)return!1}return!0},p.prototype.addEdgesBetweenNewNodes=function(t){const e=this;let n=function(t,n){e.edges.add(t.getConnectionWithNode(n)),e.edges.add(n.getConnectionWithNode(t))};var o;(o=t).forEach(t=>{o.forEach(e=>{t!==e&&n(t,e)})}),function(t){e.nodes.forEach(e=>{t.forEach(t=>{e!==t&&n(e,t)})})}(t)},p.prototype.updateWithChildrenNodes=function(t){const e=this;let n=[];function o(o,i,s){o&&t[i].forEach((o,a)=>{o=t[i][a],e.nodes.has(o.id)||(e.nodes.set(o.id,o),n.push(o)),o.isNodeCumulator()&&e.edges.add(new r.Edge(t,o,s,o.parentRel))})}o(t.expandedTop,"childrenTopRef",[0,2]),o(t.expandedRight,"childrenRightRef",[1,3]),o(t.expandedBottom,"childrenBottomRef",[2,0]),o(t.expandedLeft,"childrenLeftRef",[3,1]),e.addEdgesBetweenNewNodes(n),e.updateGraph()},p.prototype.consts={selectedClass:"selected",connectClass:"connect-node",boatGClass:"conceptG",graphClass:"graph",activeEditId:"active-editing",BACKSPACE_KEY:8,DELETE_KEY:46,ENTER_KEY:13,CTRL_KEY:17,nodeRadius:50,nodeDistance:225,nodeHeight:35,nodeWidth:50,maxDefaultNodesVertically:6,maxDefaultNodesHorizontally:6},p.prototype.showBrush=function(){const t=this;t.state.brushSelect=!0,t.brushHandle||(t.brushHandle=t.svg.append("g").attr("class","brush").call(t.brush))},p.prototype.destroyBrush=function(){const t=this;t.brushHandle&&(t.brushHandle.remove(),t.brushHandle=null)},p.prototype.exitBrushMode=function(){const t=this;t.state.brushSelect&&(t.unmarkAllNodes(),t.state.brushSelect=!1)},p.prototype.unmarkAllNodes=function(){this.nodes.forEach(function(t){t.unmarkSelected()}),this.updateGraph()},p.prototype.getPointInvertedTranslation=function(t,e,n){return(t-e*(1-n))/n-e},p.prototype.getPointTransform=function(t,e,n){return(t+e)*n+e*(1-n)},p.prototype.getPointTransformX=function(t){return this.getPointTransform(t,this.transformed.x,this.transformed.k)},p.prototype.getPointTransformY=function(t){return this.getPointTransform(t,this.transformed.y,this.transformed.k)},p.prototype.markNodesSelectedInRange=function(t){let e=t[0][0],n=t[1][0],o=t[0][1],i=t[1][1];const r=this.transformed.x,s=this.transformed.y,a=this.transformed.k;e=this.getPointInvertedTranslation(e,r,a),n=this.getPointInvertedTranslation(n,r,a),o=this.getPointInvertedTranslation(o,s,a),i=this.getPointInvertedTranslation(i,s,a),this.nodes.forEach(function(t){t.x>e&&t.x<n&&t.y>o&&t.y<i?t.markSelected():t.unmarkSelected()}),this.updateGraph()},p.prototype.brushed=function(){const t=this,e=d3.event.selection;null===e?t.unmarkAllNodes():t.markNodesSelectedInRange(e)},p.prototype.dragmove=function(t){const e=this;e.state.shiftNodeDrag?e.dragLine.attr("d","M"+t.x+","+t.y+"L"+d3.mouse(e.svgG.node())[0]+","+d3.mouse(this.svgG.node())[1]):(t.selected||e.exitBrushMode(),e.state.brushSelect?e.nodes.forEach(function(t){t.selected&&(t.x+=d3.event.dx,t.y+=d3.event.dy)}):(t.x+=d3.event.dx,t.y+=d3.event.dy),e.updateGraph())},p.prototype.deleteGraph=function(t){const e=this;let n=!0;t||(n=window.confirm("Press OK to delete this graph")),n&&(e.nodes=new Map,e.edges=new r.EdgeContainer,e.resetZoom())},p.prototype.selectElementContents=function(t){var e=document.createRange();e.selectNodeContents(t);var n=window.getSelection();n.removeAllRanges(),n.addRange(e)},p.prototype.getNodeTitle=function(t,e){t.append("text").attr("text-anchor","middle").attr("font-size","10px").text(e.length<18?e:String(e).slice(0,15)+"...").attr("dy","3")},p.prototype.spliceLinksForNode=function(t){const e=this;e.edges.filter(function(e){return e.source===t||e.target===t}).map(function(t){e.edges.splice(e.edges.indexOf(t),1)})},p.prototype.svgMouseDown=function(){this.state.graphMouseDown=!0,this.state.brushSelect=!1,this.sensesList.style("display","none"),this.unmarkAllNodes()},p.prototype.svgMouseUp=function(){const t=this,e=t.state;if(e.justScaleTransGraph)e.justScaleTransGraph=!1;else if(e.graphMouseDown&&d3.event.shiftKey){const e=d3.mouse(t.svgG.node()),n={id:t.idct++,title:h.defaultTitle,x:e[0],y:e[1]};t.nodes.push(n),t.updateGraph()}else e.shiftNodeDrag&&(e.shiftNodeDrag=!1,t.dragLine.classed("hidden",!0));e.graphMouseDown=!1},p.prototype.svgKeyDown=function(){const t=this,e=t.state,n=t.consts;if(-1!==e.lastKeyDown)return;e.lastKeyDown=d3.event.keyCode;const o=e.selectedNode,i=e.selectedEdge;switch(d3.event.keyCode){case n.BACKSPACE_KEY:break;case n.CTRL_KEY:t.showBrush();break;case n.DELETE_KEY:o?(t.nodes.splice(t.nodes.indexOf(o),1),t.spliceLinksForNode(o),e.selectedNode=null,t.updateGraph()):i&&(t.edges.splice(t.edges.indexOf(i),1),e.selectedEdge=null,t.updateGraph())}},p.prototype.svgKeyUp=function(){this.destroyBrush(),this.state.lastKeyDown=-1},p.prototype.removeNodeEdges=function(t){this.edges.deleteNodeEdges(t)},p.prototype.removeNode=function(t){const e=this;e.removeNodeEdges(t);const n=t.getAllChildrenRef();for(let t=0;t<n.length;t++)e.removeNode(n[t]);t.reset(),e.nodes.delete(t.id)},p.prototype.removeNodeChildren=function(t,e){const n=this;let o;o=void 0!==e?t.getChildrenAtPosition(e):t.getAllChildrenRef();for(let t=0;t<o.length;t++)n.removeNode(o[t]);n.updateGraph()},p.prototype.updateGraph=function(){const t=this,e=t.consts,n=t.state,o=Array.from(t.nodes.values());t.boats=d3.select("#all-boats-id").selectAll("g").data(o,function(t){return t.id+t.label}),t.boats.attr("transform",function(t){return"translate("+t.x+","+t.y+")"}).classed("node-selected",function(t){return t.selected}).on("mouseover",function(e){const n=e.x,o=e.y,i=t.transformed;e.label.length>=18&&t.showTooltip(t.getPointTransformX(n)+70*i.k,t.getPointTransformY(o)-15,e.label)}).on("mouseout",function(){t.hideTooltip()});const i=t.boats.enter().append("g");i.classed(e.boatGClass,!0).attr("transform",function(e){return t.range.x.max=Math.max(e.x,t.range.x.max),t.range.y.max=Math.max(e.y,t.range.y.max),t.range.x.min=Math.min(e.x,t.range.x.min),t.range.y.min=Math.min(e.y,t.range.y.min),"translate("+e.x+","+e.y+")"}).call(t.drag),i.filter(t=>t.isNodeCumulator()).append("circle").attr("r",25).attr("stroke-width","1px").attr("stroke","black").attr("fill","#aaffaf").classed("inner-node",!0).on("contextmenu",function(e){d3.event.preventDefault(),t.lastClickedNodeCumulator=e;let n=e.getHiddenListHtml();t.hiddenList.style("left",t.transformed.x+(e.x+30)*t.transformed.k+"px").style("top",t.transformed.y+(e.y+15)*t.transformed.k+"px").style("display","block").html(n.html),e.addOnclickToCreatedNodes(t,n.createdIds,n.hiddenRef)});let r=i.filter(t=>!t.isNodeCumulator());r.append("polyline").classed("inner-node",!0).attr("points","-50,10 -10,15 10,15 50,10 50,-10 10,-15 -10,-15 -50,-10 -50,10").attr("stroke-width","1px").attr("stroke","black").attr("fill",function(t){return t.type.color||"red"}).on("click",function(t){let e=new CustomEvent("nodeClicked",{detail:{node:t}});document.dispatchEvent(e)}),t.settings.then(t=>{r.append("rect").attr("x",-37).attr("y",-13).attr("width",13).attr("height",8).attr("stroke","black").attr("stroke-width",.4).attr("fill",e=>{return`url('#flag-${t.lexicons[e.lexicon].icon}')`})}),i.each(function(e){t.appendChildrenButtons(d3.select(this),e)}),i.each(function(e){t.getNodeTitle(d3.select(this),e.label)});try{t.boats.enter().merge(d3.select("#all-boats-id").selectAll("text"))}catch(t){console.log(t)}t.boats.exit().remove();let s=Array.from(t.edges.values());const a=d3.select("#all-paths-id").selectAll("path").data(s,function(t){return t.id}).classed(e.selectedClass,function(t){return t===n.selectedEdge}).attr("d",function(t){return"M"+t.source.x+","+t.source.y+"L"+t.target.x+","+t.target.y});a.exit().remove(),a.enter().append("path").merge(a).style("marker-end","url(#end-arrow)").style("marker-start","url(#start-arrow)").style("stroke-width","1.25").classed("link",!0).classed("dotted",function(t){return t.dotted}).attr("stroke",function(t){return t.color}).attr("d",function(e){const n=t.getConnectionPoints(e);return e.target.isNodeCumulator()?"M"+n.source.x+","+n.source.y+"L"+e.target.x+","+e.target.y:"M"+n.source.x+","+n.source.y+"L"+n.target.x+","+n.target.y}).attr("id",function(t,e){return"path_"+String(t.source.id)+"-"+String(t.target.id)});const d=d3.select("#all-paths-text-id").selectAll("text").data(s,function(t,e){return String(t.source.id)+"-"+String(t.target.id)}),l=d.enter().append("text").classed("relation-text",!0).attr("dy",-5);l.exit().remove(),l.append("textPath").on("mouseover",e=>{let n=t.getRelationTooltipCoordinates(e.source,e.connectionPoints[0]);t.relationTypes.then(o=>{let i=o.find(t=>t.short_name===e.pathTextSrc);t.showTooltip(n.x,n.y,i.description)})}).on("mouseout",function(){t.hideTooltip()}).attr("startOffset","5%").attr("xlink:href",function(t){return"#path_"+String(t.source.id)+"-"+String(t.target.id)}).append("tspan").text(function(t){return t.pathTextSrc}),l.append("textPath").on("mouseover",e=>{let n=t.getRelationTooltipCoordinates(e.target,e.connectionPoints[1]);t.relationTypes.then(o=>{let i=o.find(t=>t.short_name===e.pathTextTarget);t.showTooltip(n.x,n.y,i.description)})}).on("mouseout",function(){t.hideTooltip()}).attr("startOffset","95%").attr("text-anchor","end").attr("xlink:href",function(t){return"#path_"+String(t.source.id)+"-"+String(t.target.id)}).append("tspan").text(function(t){return t.pathTextTarget}),d.exit().remove(),t.minimap&&(t.minimap.updateMaxValues(t.range),t.minimap.render())},p.prototype.showTooltip=function(t,e,n){this.tooltip.transition().duration(100).style("opacity",.9),this.tooltip.html(n).style("left",t+"px").style("top",e+"px")},p.prototype.hideTooltip=function(){this.tooltip.transition().duration(200).style("opacity",0)},p.prototype.getRelationTooltipCoordinates=function(t,e){const n=this;let o={x:n.getPointTransformX(t.x),y:n.getPointTransformY(t.y)};switch(e){case 0:o.x+=30*n.transformed.k,o.y-=70*n.transformed.k;break;case 1:o.x+=70*n.transformed.k,o.y-=15*n.transformed.k;break;case 2:o.x+=30*n.transformed.k;break;case 3:o.x-=30*n.transformed.k,o.y-=15*n.transformed.k}return o},p.prototype.appendChildrenButtons=function(t,e){const n=this;if(e.childrenTop.length>0){t.append("polyline").attr("points","-13 -15, 13 -15, 0 -5, -13 -15").attr("stroke-width","1.5px").attr("fill","blue").attr("stroke","black").classed("expanded",function(t){return t.expandedTop}).on("click",function(){e.expandTriangleClick(n,this,0)})}if(e.childrenRight.length>0){t.append("polyline").attr("points","50,10 40 0, 50 -10").attr("stroke-width","1.5px").attr("fill","blue").attr("stroke","black").classed("expanded",function(t){return t.expandedRight}).on("click",function(){e.expandTriangleClick(n,this,1)})}if(e.childrenBottom.length>0){t.append("polyline").attr("points","-13 15, 13 15, 0 5, -13 15").attr("stroke-width","1.5px").attr("fill","blue").attr("stroke","black").classed("expanded",function(t){return t.expandedBottom}).on("click",function(){e.expandTriangleClick(n,this,2)})}if(e.childrenLeft.length>0){t.append("polyline").attr("points","-50,10 -40 0, -50 -10").attr("stroke-width","1.5px").attr("fill","blue").attr("stroke","black").classed("expanded",function(t){return t.expandedLeft}).on("click",function(){e.expandTriangleClick(n,this,3)})}},p.prototype.getConnectionPoints=function(t){const e=this;try{return{source:e.getConnectionPoint(t.connectionPoints[0],t.source.x,t.source.y),target:e.getConnectionPoint(t.connectionPoints[1],t.target.x,t.target.y)}}catch(e){console.log(t)}},p.prototype.getConnectionPoint=function(t,e,n){const o=this,i={x:e,y:n};switch(t){case 0:i.y-=o.consts.nodeHeight/2-1;break;case 1:i.x+=51;break;case 2:i.y+=o.consts.nodeHeight/2-1;break;case 3:i.x-=51}return i},p.prototype.zoomed=function(t){t=t||d3.event.transform,this.state.justScaleTransGraph=!0,d3.select("."+this.consts.graphClass).attr("transform",t),this.transformed=t,this.hiddenList.style("display","none"),this.minimap&&this.minimap.update(t)},p.prototype.updateWindow=function(t){const e=document.documentElement,n=document.getElementsByTagName("body")[0],o=window.innerWidth||e.clientWidth||n.clientWidth,i=window.innerHeight||e.clientHeight||n.clientHeight;t.attr("width",o).attr("height",i)},p.prototype.initializeFromSynsetId=function(t){const e=this;e.api.getGraph(t,function(t){!function(t){t.length<1?window.alert("Sorry, could not display requested data."):e.initFromJson(t)}(t)})},p.prototype.exportVisualization=function(){const t=this.getSVGString(this.svg.node());this.svgString2Image(t,2*this.width,2*this.height,"png",function(t,e){Object(a.saveAs)(t,"wordnet-graph.png")})},p.prototype.getSVGString=function(t){t.setAttribute("xlink","http://www.w3.org/1999/xlink"),function(t,e){const n=document.createElement("style");n.setAttribute("type","text/css"),n.innerHTML=t;const o=e.hasChildNodes()?e.children[0]:null;e.insertBefore(n,o)}(function(t){let e=[];e.push("#"+t.id);for(let n=0;n<t.classList.length;n++)i("."+t.classList[n],e)||e.push("."+t.classList[n]);const n=t.getElementsByTagName("*");for(let t=0;t<n.length;t++){let o=n[t].id;i("#"+o,e)||e.push("#"+o);const r=n[t].classList;for(let t=0;t<r.length;t++)i("."+r[t],e)||e.push("."+r[t])}let o="";for(let t=0;t<document.styleSheets.length;t++){let n=document.styleSheets[t];try{if(!n.cssRules)continue}catch(t){if("SecurityError"!==t.name)throw t;continue}let r=n.cssRules;for(let t=0;t<r.length;t++)i(r[t].selectorText,e)&&(o+=r[t].cssText)}return o;function i(t,e){return!(-1===e.indexOf(t))}}(t),t);let e=(new XMLSerializer).serializeToString(t);return e=(e=e.replace(/(\w+)?:?xlink=/g,"xmlns:xlink=")).replace(/NS\d+:href/g,"xlink:href")},p.prototype.svgString2Image=function(t,e,n,o,i){o=o||"png";const r="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t))),s=document.createElement("canvas"),a=s.getContext("2d");s.width=e,s.height=n;const d=new Image;d.onload=function(){a.clearRect(0,0,e,n),a.drawImage(d,0,0,e,n),s.toBlob(function(t){const e=Math.round(t.length/1024)+" KB";i&&i(t,e)})},d.src=r},p.prototype.resetZoom=function(){const t=this;let e=d3.zoomIdentity;t.zoomed(e),t.svg.property("__zoom",e),t.minimap&&t.minimap.resetScale()},p.prototype.resizeSVG=function(t,e){this.svg.attr("width",t).attr("height",e)}},function(t,e,n){"use strict";n.r(e),n.d(e,"GraphNode",function(){return a});var o=n(0),i=n(2),r=n(1);let s={calculateEllipseY:function(t,e,n,o,i,r){return r?o+Math.sqrt(e*e-(1-(i-n)*(i-n))/(t*t)):o-Math.sqrt(e*e-(1-(i-n)*(i-n))/(t*t))},calculateEllipseX:function(t,e,n,o,i,r){return r?n-Math.sqrt(e*e-(1-(i-o)*(i-o))/(t*t)):n+Math.sqrt(e*e-(1-(i-o)*(i-o))/(t*t))},distributeNode:function(t,e,n){return-(n*t*2)/2+2*t*(e+1)-t},assignPlace:function(t,e,n,o,r){const a=i.GraphCreator.prototype.consts;switch(r=r>=a.maxDefaultNodesHorizontally?a.maxDefaultNodesHorizontally:r,t){case"top":n.x=e.x+s.distributeNode(a.nodeWidth+2,o,r),n.y=-200+s.calculateEllipseY(8,1,e.x,e.y,n.x,!0);break;case"right":n.y=e.y+s.distributeNode(a.nodeHeight-15,o,r),n.x=200+s.calculateEllipseX(3,1,e.x,e.y,n.y,!0);break;case"bottom":n.x=e.x+s.distributeNode(a.nodeWidth+10,o,r),n.y=e.y+a.nodeDistance,n.y=200+s.calculateEllipseY(8,1,e.x,e.y,n.x,!1);break;case"left":n.x=e.x-a.nodeDistance,n.y=e.y+s.distributeNode(a.nodeHeight-15,o,r),n.x=-200+s.calculateEllipseX(3,1,e.x,e.y,n.y,!1)}}};const a=function(t,e,n,o,i,r,s,a,d){let l=this;l.graph=i,t&&(l.parentId=o.id||null,l.parent=o||null,t=l.prepareJson(t),l.id=t.id,l.label=t.label,l.partOfSpeechId=t.pos,l.lexicon=t.lex,l.assignColorBasedFromPartOfSpeech(),l.x=e||0,l.y=n||0,l.childrenTop=t.top.expanded.concat(t.top.hidden),l.childrenRight=t.right.expanded.concat(t.right.hidden),l.childrenBottom=t.bottom.expanded.concat(t.bottom.hidden),l.childrenLeft=t.left.expanded.concat(t.left.hidden),l.parentRel=t.rel,l.childrenTopRef=[],l.childrenRightRef=[],l.childrenBottomRef=[],l.childrenLeftRef=[],l.cumulativeNodes={},l.addCumulativeChildren(t),l.initChildren(t.top.expanded,t.right.expanded,t.bottom.expanded,t.left.expanded)),l.selected=!1,l.expandedTop=r||!1,l.expandedRight=s||!1,l.expandedLeft=d||!1,l.expandedBottom=a||!1,l.childrenDownloaded=!1};a.prototype.reset=function(){this.expandedTop=!1,this.expandedRight=!1,this.expandedLeft=!1,this.expandedBottom=!1},a.prototype.assignPlace=function(t,e,n){s.assignPlace(t,this.parent,this,e,n)},a.prototype.initChildren=function(t,e,n,o){const i=this;function r(t,e,n){let o,r=t.length+i[e].length;for(let s=0;s<t.length;s++)(o=i.graph.nodes.get(t[s].id))||((o=new a(t[s],0,0,i,i.graph)).assignPlace(n,s,r),i[e].push(o));i.childrenDownloaded=!0}r(t,"childrenTopRef","top"),r(e,"childrenRightRef","right"),r(n,"childrenBottomRef","bottom"),r(o,"childrenLeftRef","left")},a.prototype.prepareJson=function(t){function e(t,e){t[e]||(t[e]={expanded:[],hidden:[]}),t[e].expanded||(t[e].expanded=[]),t[e].hidden||(t[e].hidden=[])}return e(t,"top"),e(t,"right"),e(t,"bottom"),e(t,"left"),t},a.prototype.addCumulativeChildren=function(t){const e=this;function n(n){let o;e.cumulativeNodes[n]=null,t[n].hidden.length>0&&0!==t[n].expanded.length&&((o=new d({id:-t[n].hidden[0].id,type:{color:"green"},rel:[null,null]},e,t[n].hidden,n)).assignPlace(n,e["children"+n.charAt(0).toUpperCase()+n.slice(1)+"Ref"].length+1,e["children"+n.charAt(0).toUpperCase()+n.slice(1)+"Ref"].length-2),e["children"+n.charAt(0).toUpperCase()+n.slice(1)+"Ref"].push(o)),e.cumulativeNodes[n]=o}n("top"),n("right"),n("bottom"),n("left")},a.prototype.addChildrenAtPosIfNotParent=function(t,e){let n=this;n[e]=n[e].concat(t.filter(t=>t.id!==n.parentId))},a.prototype.addToCumulativeNode=function(t,e){const n=this;e=["top","right","bottom","left"][e],t.forEach(t=>{n.cumulativeNodes[e].addHiddenNode(t)})},a.prototype.updateChildrenPosition=function(t){let e=this,n=["Top","Right","Bottom","Left"][t],o=e["children"+n+"Ref"],i=o.slice(5);i.length>0&&e.addToCumulativeNode(i,t),o=o.slice(0,5),e["children"+n+"Ref"]=o,o.forEach((t,e)=>{t.assignPlace(n.toLowerCase(),e,o.length)})},a.prototype.updateChildren=function(t,e){this.childrenDownloaded||(t=this.prepareJson(t),this.addChildrenAtPosIfNotParent(t.top.hidden,"childrenTop"),this.addChildrenAtPosIfNotParent(t.right.hidden,"childrenRight"),this.addChildrenAtPosIfNotParent(t.bottom.hidden,"childrenBottom"),this.addChildrenAtPosIfNotParent(t.left.hidden,"childrenLeft"),this.childrenTopRef=[],this.childrenRightRef=[],this.childrenBottomRef=[],this.childrenLeftRef=[],this.addCumulativeChildren(t),this.initChildren(t.top.expanded,t.right.expanded,t.bottom.expanded,t.left.expanded),this.expandedTop=0===e,this.expandedRight=1===e,this.expandedBottom=2===e,this.expandedLeft=3===e,this.childrenDownloaded=!0)},a.prototype.markSelected=function(){this.selected=!0},a.prototype.unmarkSelected=function(){this.selected=!1},a.prototype.assignColorBasedFromPartOfSpeech=function(){let t;t=i.consts.partOfSpeech[this.partOfSpeechId]?i.consts.partOfSpeech[this.partOfSpeechId].color:"#F0E68C",this.type={color:t}},a.prototype.nodeType="ordinary",a.prototype.getType=function(){return"ordinary"},a.prototype.api=o.apiConnector,a.prototype.consts={DIRECTIONS:{TOP:0,RIGHT:1,BOTTOM:2,LEFT:3}},a.prototype.getChildrenWithCallback=function(t){const e=this;e.childrenDownloaded?t(e.apiData):e.api.getGraph(e.id,function(n){e.apiData=n,t(n)})},a.prototype.expandTopClick=function(t,e){this.expandedTop=!0,this.findNewPlace(t),this.getChildrenWithCallback(e)},a.prototype.expandRightClick=function(t,e){this.expandedRight=!0,this.findNewPlace(t),this.getChildrenWithCallback(e)},a.prototype.expandBottomClick=function(t,e){this.expandedBottom=!0,this.findNewPlace(t),this.getChildrenWithCallback(e)},a.prototype.expandLeftClick=function(t,e){this.expandedLeft=!0,this.findNewPlace(t),this.getChildrenWithCallback(e)},a.prototype.moveChildren=function(t){const e=this.getAllChildrenRef();for(let n=0;n<e.length;n++){let o=[e[n].x-t[0],e[n].y-t[1]];e[n].assignNewPosition(o),e[n].moveChildren(t)}},a.prototype.getChildrenAtPosition=function(t){const e=this;switch(t){case 0:return e.childrenTopRef;case 1:return e.childrenRightRef;case 2:return e.childrenBottomRef;case 3:return e.childrenLeftRef}},a.prototype.connectionPointTypes={0:[0,2],1:[1,3],2:[2,0],3:[3,1],top:[0,2],right:[1,3],bottom:[2,0],left:[3,1]},a.prototype.getConnectionWithNode=function(t){const e=this;for(let[n,o]of["childrenTop","childrenRight","childrenBottom","childrenLeft"].entries()){let i=e[o].filter(e=>e.id===t.id)[0];if(i)return new r.Edge(e,t,e.connectionPointTypes[n],i.rel)}return null},a.prototype.getAllChildren=function(){return this.childrenTop.concat(this.childrenRight,this.childrenBottom,this.childrenLeft)},a.prototype.getAllChildrenRef=function(){return this.childrenTopRef.concat(this.childrenRightRef,this.childrenBottomRef,this.childrenLeftRef)},a.prototype.assignNewPosition=function(t){this.x=t[0],this.y=t[1]},a.prototype.findNewPlace=function(t){const e=this;let n=[e.x,e.y],o=20,i=10;for(;!e.checkIfSpaceInRegion(n,t)&&i>0;)n=e.calculatePossibleNewPosition(o),o+=20,i--;return e.moveChildren([e.x-n[0],e.y-n[1]]),e.assignNewPosition(n),n},a.prototype.checkIfSpaceInRegion=function(t,e){const n=this,o=t[0],i=t[1],r=n.getAllChildrenRef();for(let[t,s]of e){if(r.indexOf(s)>-1)continue;const t=s.x,e=s.y;if(n.expandedTop&&n.checkIfPointInRange(t,e,o-500,o+500,i-500,i))return!1;if(n.expandedRight&&n.checkIfPointInRange(t,e,o,o+1e3,i-250,i+250))return!1;if(n.expandedBottom&&n.checkIfPointInRange(t,e,o-500,o+500,i,i+500))return!1;if(n.expandedLeft&&n.checkIfPointInRange(t,e,o-1e3,o,i-250,i+250))return!1}return!0},a.prototype.checkIfPointInRange=function(t,e,n,o,i,r){return t>n&&t<o&&(e>i&&e<r)},a.prototype.calculatePossibleNewPosition=function(t){const e=this,n=e.parent,o=n.x-e.x,i=n.y-e.y;let r=e.x,s=e.y;if(!e.parent.x||!e.parent.y)return[r,s];const a=i/o;return 0===o||Math.abs(o)<50?s=i>0?e.y-t:e.y+t:0===i&&o<0?r=e.x+t:i<0?a<0?(r=e.x-t,s=e.y-t*a):(r=e.x+t,s=e.y+t*a):a<0?(r=e.x+t,s=e.y+t*a):(r=e.x-t,s=e.y-t*a),[r,s]},a.prototype.isNodeCumulator=function(){return!1},a.prototype.expandTriangleClick=function(t,e,n){const o=this,i=["expandedTop","expandedRight","expandedBottom","expandedLeft"][n],r=["expandTopClick","expandRightClick","expandBottomClick","expandLeftClick"][n];o[i]?(o[i]=!1,t.removeNodeChildren(o,n),d3.select(e).classed("expanded",!1)):o[r](t.nodes,function(i){o.updateChildren(i,n),o.updateChildrenPosition(n),t.updateWithChildrenNodes(o),d3.select(e).classed("expanded",!0)})};const d=function(t,e,n,o){a.call(this,t,100,100,e,e.graph),this.hiddenNodes=n||[],this.positionRelativeToParent=o,this.label=this.hiddenNodes.length,this.hiddenButVisible=0,this.childrenTop=[],this.childrenRight=[],this.childrenBottom=[],this.childrenLeft=[]};d.prototype=new a,d.prototype.constructor=d,d.prototype.nodeType="cumulator",d.prototype.getType=function(){return"cumulator"},d.prototype.getHiddenNodes=function(){return this.hiddenNodes},d.prototype.updateCount=function(){this.label=this.hiddenNodes.length-this.hiddenButVisible},d.prototype.decrementTitle=function(){const t=this;t.label-=1,0===t.label&&this.graph.removeNode(t)},d.prototype.expandHiddenNode=function(t,e){const n=this;n.graph.hiddenList.style("display","none"),n.api.getGraph(t.id,function(e){e.rel=t.rel;let o=new a(e,n.x+100+Math.floor(20*Math.random()-10),n.y+100+ +Math.floor(20*Math.random()-10),n.parent,n.graph);o.childrenDownloaded=!0,n.parent["children"+n.positionRelativeToParent.charAt(0).toUpperCase()+n.positionRelativeToParent.slice(1)+"Ref"].push(o),n.graph.nodes.set(o.id,o);let i=n.connectionPointTypes[n.positionRelativeToParent];n.hiddenNodes.splice(n.hiddenNodes.indexOf(t),1),n.decrementTitle(),n.graph.edges.add(new r.Edge(n.parent,o,i,o.parentRel)),n.graph.addEdgesBetweenNewNodes([o]),n.graph.updateGraph()})},d.prototype.addOnclickToCreatedNodes=function(t,e,n){const o=this;for(let t=0;t<e.length;t++)!function(t){let i=e[t];d3.select(i).on("click",function(){o.expandHiddenNode(n[t],o)})}(t)},d.prototype.isNodeCumulator=function(){return!0},d.prototype.getHiddenListHtml=function(){const t=this;let e={html:"",createdIds:[],hiddenRef:[]};return e.html="<ul class='hidden-nodes-list'>",t.hiddenButVisible=0,t.hiddenNodes.forEach((n,o)=>{t.graph.nodes.has(n.id)?t.hiddenButVisible++:(e.html+="\n<li id='hidden-"+n.id+"'>"+n.label+"</li>",e.createdIds.push("#hidden-"+n.id),e.hiddenRef.push(t.hiddenNodes[o]))}),e.html+="\n</ul>",t.updateCount(),e},d.prototype.addHiddenNode=function(t){this.hiddenNodes.push({id:t.id,label:t.label,rel:t.parentRel,pos:t.partOfSpeechId}),this.label+=1}},function(t,e,n){"use strict";n.r(e),function(t){n.d(e,"saveAs",function(){return o});
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+var o=o||function(t){if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var e=function(){return t.URL||t.webkitURL||t},n=t.document.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in n,i=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),r=t.webkitRequestFileSystem,s=t.requestFileSystem||r||t.mozRequestFileSystem,a=function(e){(t.setImmediate||t.setTimeout)(function(){throw e},0)},d="application/octet-stream",l=0,c=function(t){setTimeout(function(){"string"==typeof t?e().revokeObjectURL(t):t.remove()},4e4)},h=function(t,e,n){for(var o=(e=[].concat(e)).length;o--;){var i=t["on"+e[o]];if("function"==typeof i)try{i.call(t,n||t)}catch(t){a(t)}}},p=function(t){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\ufeff",t],{type:t.type}):t},u=function(a,u,f){f||(a=p(a));var g,y,m,x=this,v=a.type,w=!1,b=function(){h(x,"writestart progress write writeend".split(" "))},k=function(){if(y&&i&&"undefined"!=typeof FileReader){var n=new FileReader;return n.onloadend=function(){var t=n.result;y.location.href="data:attachment/file"+t.slice(t.search(/[,;]/)),x.readyState=x.DONE,b()},n.readAsDataURL(a),void(x.readyState=x.INIT)}((w||!g)&&(g=e().createObjectURL(a)),y)?y.location.href=g:void 0===t.open(g,"_blank")&&i&&(t.location.href=g);x.readyState=x.DONE,b(),c(g)},C=function(t){return function(){return x.readyState!==x.DONE?t.apply(this,arguments):void 0}},T={create:!0,exclusive:!1};return x.readyState=x.INIT,u||(u="download"),o?(g=e().createObjectURL(a),void setTimeout(function(){var t,e;n.href=g,n.download=u,t=n,e=new MouseEvent("click"),t.dispatchEvent(e),b(),c(g),x.readyState=x.DONE})):(t.chrome&&v&&v!==d&&(m=a.slice||a.webkitSlice,a=m.call(a,0,a.size,d),w=!0),r&&"download"!==u&&(u+=".download"),(v===d||r)&&(y=t),s?(l+=a.size,void s(t.TEMPORARY,l,C(function(t){t.root.getDirectory("saved",T,C(function(t){var e=function(){t.getFile(u,T,C(function(t){t.createWriter(C(function(e){e.onwriteend=function(e){y.location.href=t.toURL(),x.readyState=x.DONE,h(x,"writeend",e),c(t)},e.onerror=function(){var t=e.error;t.code!==t.ABORT_ERR&&k()},"writestart progress write abort".split(" ").forEach(function(t){e["on"+t]=x["on"+t]}),e.write(a),x.abort=function(){e.abort(),x.readyState=x.DONE},x.readyState=x.WRITING}),k)}),k)};t.getFile(u,{create:!1},C(function(t){t.remove(),e()}),C(function(t){t.code===t.NOT_FOUND_ERR?e():k()}))}),k)}),k)):void k())},f=u.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(t,e,n){return n||(t=p(t)),navigator.msSaveOrOpenBlob(t,e||"download")}:(f.abort=function(){var t=this;t.readyState=t.DONE,h(t,"abort")},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,function(t,e,n){return new u(t,e,n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||(void 0).content);void 0!==t&&t.exports?t.exports.saveAs=o:"undefined"!=typeof define&&null!==define&&null!==n(6)&&define([],function(){return o})}.call(this,n(7)(t))},function(t,e){d3.minimap=function(){"use strict";var t=.15,e=.15,n=null,o=null,i=100,r=100,s=100,a=100,d=0,l=0,c=[];function h(p){p;var u=d3.zoom().scaleExtent([.5,5]),f=function(){var t=g.property("__zoom").k,e=parseInt(o.attr("width")),i=parseInt(o.attr("height")),r=n.getWidth(),s=n.getHeight();u.translateExtent([[-r/t,-s/t],[r/t+e,s/t+i]])};u.on("zoom",function(){if(y.attr("transform",d3.event.transform),d3.event.sourceEvent instanceof MouseEvent||d3.event.sourceEvent instanceof WheelEvent){var t=d3.event.transform,e=d3.zoomIdentity.scale(1/t.k).translate(-t.x,-t.y);n.update(e)}f()});var g=p.append("g").attr("class","minimap");g.call(u),h.node=g.node();var y=g.append("g").attr("class","frame");y.append("rect").attr("class","background").attr("width",i).attr("height",r),c.forEach(t=>{g.append("use").attr("xlink:href",t)}),h.update=function(t){var e=d3.zoomIdentity.scale(1/t.k).translate(-t.x,-t.y);u.transform(y,e),g.property("__zoom",e),f()};let m={x:null,y:null,xRatio:null,yRatio:null,widthRatio:null,heightRatio:null};h.resetScale=function(){m={x:null,y:null,xRatio:null,yRatio:null,widthRatio:null,heightRatio:null},t=e,d=0,l=0,i=s,r=a},h.render=function(){g.attr("transform","translate("+d+","+l+")scale("+t+")"),y.select(".background").attr("width",i).attr("height",r),y.node().parentNode.appendChild(y.node())},h.updateMaxValues=function(n){let o=n.x.max-n.x.min,s=n.y.max-n.y.min;if(!m.x||!m.y)return m.x=o,m.y=s,m.xRatio=o*t,void(m.yRatio=s*t);let a=Math.min(m.xRatio/o,m.yRatio/s);a<t&&(d=(i*e-i*a)/2,l=(r*e-r*a)/2,t=a)},f()}return h.targetShadowId=function(t){return c.push(t),this},h.width=function(t){return arguments.length?(i=parseInt(t,10),this):i},h.height=function(t){return arguments.length?(r=parseInt(t,10),this):r},h.x=function(t){return arguments.length?(d=parseInt(t,10),this):d},h.y=function(t){return arguments.length?(l=parseInt(t,10),this):l},h.host=function(t){return arguments.length?(n=t,this):n},h.minimapScale=function(n){return arguments.length?(e=t=n,this):t},h.target=function(t){return arguments.length?(o=t,s=i=parseInt(o.attr("width"),10),a=r=parseInt(o.attr("height"),10),this):o},h}},function(t,e){(function(e){t.exports=e}).call(this,{})},function(t,e){t.exports=function(t){if(!t.webpackPolyfill){var e=Object.create(t);e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(e,"exports",{enumerable:!0}),e.webpackPolyfill=1}return e}},function(t,e){
+/*! @source http://purl.eligrey.com/github/canvas-toBlob.js/blob/master/canvas-toBlob.js */
+!function(t){"use strict";var e,n=t.Uint8Array,o=t.HTMLCanvasElement,i=o&&o.prototype,r=/\s*;\s*base64\s*(?:;|$)/i,s="toDataURL";n&&(e=new n([62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51])),!o||i.toBlob&&i.toBlobHD||(i.toBlob||(i.toBlob=function(t,o){if(o||(o="image/png"),this.mozGetAsFile)t(this.mozGetAsFile("canvas",o));else if(this.msToBlob&&/^\s*image\/png\s*(?:$|;)/i.test(o))t(this.msToBlob());else{var i,a=Array.prototype.slice.call(arguments,1),d=this[s].apply(this,a),l=d.indexOf(","),c=d.substring(l+1),h=r.test(d.substring(0,l));Blob.fake?((i=new Blob).encoding=h?"base64":"URI",i.data=c,i.size=c.length):n&&(i=h?new Blob([function(t){for(var o,i,r=t.length,s=new n(r/4*3|0),a=0,d=0,l=[0,0],c=0,h=0;r--;)i=t.charCodeAt(a++),255!==(o=e[i-43])&&void 0!==o&&(l[1]=l[0],l[0]=i,h=h<<6|o,4==++c&&(s[d++]=h>>>16,61!==l[1]&&(s[d++]=h>>>8),61!==l[0]&&(s[d++]=h),c=0));return s}(c)],{type:o}):new Blob([decodeURIComponent(c)],{type:o})),t(i)}}),!i.toBlobHD&&i.toDataURLHD?i.toBlobHD=function(){s="toDataURLHD";var t=this.toBlob();return s="toDataURL",t}:i.toBlobHD=i.toBlob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(t,e,n){n(8),n(4),n(0),n(1),n(3),n(5),t.exports=n(2)}]);
\ No newline at end of file
diff --git a/js/languageSettings.js b/js/languageSettings.js
new file mode 100644
index 0000000..58aca26
--- /dev/null
+++ b/js/languageSettings.js
@@ -0,0 +1,80 @@
+$(function() {
+  expandNavOnLowResolutions();
+  
+
+  $.widget( "custom.iconselectmenu", $.ui.selectmenu, {
+    _renderItem: function(ul, item) {
+      var li = $("<li>"),
+      wrapper = $("<div>", {text: item.label});
+
+      if (item.disabled) {
+        li.addClass("ui-state-disabled");
+      }
+
+      $("<span>", {
+        style: item.element.attr("data-style"),
+        "class": "ui-icon " + item.element.attr("data-class")
+      }) 
+      .appendTo(wrapper);
+
+      return li.append(wrapper).appendTo(ul);
+    } 
+  });
+
+  $("#languages")
+  .iconselectmenu()
+  .iconselectmenu("menuWidget")
+  .addClass("ui-menu-icons customicons");
+
+  $( "#languages" ).on('iconselectmenuchange', function() {
+    var option = this.value;
+     setLang(option);
+   
+  });
+  
+  let lang=window.localStorage.getItem('lexp.clarin-pl.eu.lang');
+  
+  $("#languages-button .ui-selectmenu-text").html("  ");
+  console.log($("#languages-button .ui-selectmenu-text").get()[0])
+  setLang(lang);
+  
+  function setLang(option)
+  { //console.log(option);
+    window.localStorage.setItem('lexp.clarin-pl.eu.lang', option); 
+    $( "#languages" ).val(option).change();
+    //console.log("val"+$( "#languages" ).val()); 
+    switch(option) {
+      case 'lang-pl':
+        document.body.className = 'pl';
+        document.body.lang = 'pl';
+        
+        $('#languages-button').css('background-image', 'url("/img/lang-pl-32.png")');
+        break;
+      case 'lang-en':
+        document.body.className = 'en';
+        document.body.lang = 'en';
+        $('#languages-button').css('background-image', 'url("/img/lang-en-32.png")');
+        
+        break;
+      case 'lang-de':
+        document.body.className = 'de';
+        document.body.lang = 'de';
+        break;
+      case 'lang-hu':
+        document.body.className = 'hu';
+        document.body.lang = 'hu';
+        break;
+      case 'lang-es':
+        document.body.className = 'es';
+        document.body.lang = 'es';
+        break;
+      case 'lang-ru':
+        document.body.className = 'ru';
+        document.body.lang = 'ru';
+        break;
+      default:
+        setLang('lang-pl') 
+    }
+  };
+
+});
\ No newline at end of file
diff --git a/js/lexp.js b/js/lexp.js
new file mode 100644
index 0000000..71861cb
--- /dev/null
+++ b/js/lexp.js
@@ -0,0 +1,230 @@
+var Lexp = new Object();
+
+Lexp.localHref = function(event) {
+  var target = this.getAttribute("href");
+  Lexp.target = this.getAttribute("source");
+  Lexp.go2URL(target);
+
+  return false;
+}
+
+Lexp.showIndexResults = function (results) {
+  $(Lexp.lexp_placeholder).html("");
+
+  for(var _result in results.results) {
+    var _res = new Resource(_result, results.results[_result], $(Lexp.lexp_placeholder), Lexp);
+    /*console.log("ID:::");
+    console.log(_result);
+    console.log("INFO DATA:::");
+    console.log(results.results[_result]);
+    console.log("TAG:::");
+    console.log($(Lexp.lexp_placeholder));
+    console.log("LEXP:::");
+    console.log(Lexp);*/
+    Lexp.lexpResources[_result] = _res;
+    if (_result == Lexp.target) {
+      _res.element.show();
+      var arrow = $('#lexpresource_' + _result).find('.arrow');
+      if(_res.element.state == "hidden" || _res.element.state == "empty") {
+        $(arrow[0]).removeClass("glyphicon-chevron-up");
+        $(arrow[0]).addClass("glyphicon-chevron-down");
+      } else {
+        $(arrow[0]).removeClass("glyphicon-chevron-down");
+        $(arrow[0]).addClass("glyphicon-chevron-up");
+      }
+    }
+    if (Object.keys(results.results).length == 1) {
+      _res.element.show();
+    }
+  }
+  Lexp.moveHeaders(['plwordnet', 'morfeusz', 'walenty', 'omwn', 'hask', 'spxvi', 'spxvii', 'eswil', 'word2vec']);
+}
+
+Lexp.moveHeaders = function (order) {
+  $('#lexp_results .decoration-box').each(function() {
+    $(this).remove();
+  });
+
+  $(order).each(function(index, element) {
+    if ($('#lexpresource_' + element).length > 0) {
+      $('#lexpresource_' + element).appendTo('#lexp_results');
+      $('#lexpelement_' + element).appendTo('#lexp_results');
+      $('<div class="decoration-box"><div class="decoration"></div></div>').appendTo('#lexp_results');
+    }
+  });
+}
+
+Lexp.lexCall = function (task) {
+  var _what = "/lexp/";
+
+  //only on lexp-dev page !!!!!!!!!
+  task["dev"] = true;
+
+  console.log("_____________________________");
+  console.log("  Task: " + JSON.stringify(task));
+  $("#result").hide();
+  $.ajax({
+    type: "POST",
+    contentType: 'application/json',
+    data: JSON.stringify(task),
+    url: _what,
+    cache: false,
+    processData: false,
+    dataType: "json",
+    success: function(res) {
+      Lexp.urlChange();
+      Lexp.showIndexResults(res);
+    },
+    error:function(jqXHR, exception) {
+      nlp_error(jqXHR,exception);
+      return;
+    }
+  });
+}
+
+Lexp.lexpResources = new Array();
+
+Lexp.setURL = function() {
+  var _stateObj = {foo: "bar"}, _type;
+
+  if(!Lexp.element.type) {
+    _type = "orth";
+  } else {
+    _type = Lexp.element.type;
+  }
+
+  var _url = '';
+  if (Lexp.element.type == 'synsetid') {
+    _url = "/" + Lexp.element.type + "/" + Lexp.element.typeOfSynset + "/" + Lexp.element.val;
+  } else {
+    _url = "/" + Lexp.element.type + "/" + Lexp.element.lang + "/" + Lexp.element.val;
+  }
+
+  history.pushState(_stateObj, "", _url);
+}
+
+Lexp.go2URL = function(pathname) {
+  let decodedPathName = decodeURIComponent(pathname);
+  var _paths = pathname.split("/");
+  if (_paths.length < 4) {
+    return;
+  }
+  var _type = _paths[1],
+      _lang = _paths[2],
+      _typeOfSynset = _paths[2];
+  $("#lang").val(_lang);
+  var _phrase = decodeURIComponent(_paths[3]);
+  $("#phrase").val(_phrase);
+
+  var _element = {"lang" : $("#lang").val()};
+      _element[$("#type").val()] = $("#phrase").val();
+  var _function = "list",
+      _task = {"function" : _function, "element" : _element},
+      lang = $("#lang").val(),
+      type = $("#type").val(),
+      phrase = $("#phrase").val();
+  Lexp.element.path = decodedPathName;
+  // Lexp.element.lemma = _phrase;
+  Lexp.element.type = _type;
+  if (_type == 'lemma') {
+    delete Lexp.element.synsetid;
+    delete Lexp.element.typeOfSynset;
+    Lexp.element.lang = _lang;
+    Lexp.element.lemma = _phrase;
+  }
+  if (_type == 'orth') {
+    delete Lexp.element.lemma;
+    delete Lexp.element.synsetid;
+    delete Lexp.element.typeOfSynset;
+    Lexp.element.lang = _lang;
+    Lexp.element.orth = _phrase;
+  }
+  if (_type == 'synsetid') {
+    delete Lexp.element.lemma;
+    Lexp.element.lang = 'pl';
+    Lexp.element.synsetid = _phrase;
+    Lexp.element.typeOfSynset = _typeOfSynset;
+  }
+  Lexp.element.val = _phrase;
+  Lexp.setURL();
+  var _task = {"function" : _function, "element" : Lexp.element};
+  Lexp.lexCall(_task);
+}
+
+Lexp.init = function(lexp_placeholder) {
+  Lexp.lexp_placeholder = lexp_placeholder;
+  Lexp.target = "";
+  Lexp.element = {'lang' : 'pl', 'lemma' : 'jenerał'};
+  var _pathname = window.location.pathname;
+
+  let decodedPathName = decodeURIComponent(_pathname);
+
+  $("#startlex").click(function() {
+    var _element = {"lang" : $("#lang").val()};
+        _element[$("#type").val()] = $("#phrase").val();
+    var _function = "list",
+        _task = {"function" : _function, "element" : _element},
+        // lang = '',
+        lang = $("#lang").val() || 'pl',
+        typeOfSynset = $('#type-of-synset').val(),
+        type = $("#type").val(),
+        phrase = $("#phrase").val();
+
+    // if ($("#lang").val() != null) {
+    //   lang = $("#lang").val();
+    // } else {
+    //   lang = 'pl';
+    // }
+    Lexp.element = _element;
+    Lexp.element.path = decodedPathName;
+    Lexp.element.type = type;
+    // Lexp.element.lang = lang;
+    if ($('#lang').is(':visible')) {
+      Lexp.element.lang = lang;
+      delete Lexp.element.synsetid;
+      delete Lexp.element.typeOfSynset;
+    }
+    if ($('#type-of-synset').is(':visible')) {
+      // delete Lexp.element.lang;
+      delete Lexp.element.lemma;
+      Lexp.element.synsetid = phrase;
+      Lexp.element.typeOfSynset = typeOfSynset;
+    }
+    Lexp.element.val = phrase;
+    Lexp.setURL();
+    Lexp.lexCall(_task);
+
+    return false;
+  });
+  if (_pathname != '/') {
+    Lexp.go2URL(_pathname);
+  }
+}
+
+Lexp.urlChange = function() {
+  // Language
+  if (window.location.href.indexOf("/pl/") > -1) {
+    $('#lang').val("pl");
+  } else if (window.location.href.indexOf("/en/") > -1) {
+    $('#lang').val("en");
+  } else if (window.location.href.indexOf("/es/") > -1) {
+    $('#lang').val("es");
+  }
+
+  // Type of element
+  if (window.location.href.indexOf("/lemma/") > -1) {
+    $('#lang-box').show();
+    $('#synset-box').hide();
+    $('#type').val("lemma");
+  } else if (window.location.href.indexOf("/orth/") > -1) {
+    $('#lang-box').show();
+    $('#synset-box').hide();
+    $('#type').val("orth");
+  } else if (window.location.href.indexOf("/synsetid/") > -1) {
+    $('#lang-box').hide();
+    $('#synset-box').show();
+    $('#type').val("synsetid");
+  } else {
+    $('#type').val("lemma");
+  }
+}
\ No newline at end of file
diff --git a/js/nav-expand.js b/js/nav-expand.js
new file mode 100644
index 0000000..8677609
--- /dev/null
+++ b/js/nav-expand.js
@@ -0,0 +1,19 @@
+function expandNavOnLowResolutions() {
+  $("html").click(function(e) {
+    var container = $("#nav");
+    if (!container.is(e.target) && container.has(e.target).length === 0) {
+      $("#navbar-collapse-1").css("display", "none").removeClass("in").attr("aria-expanded", false);
+      $("#add-margin-on-nav-expand").stop(true, true).removeClass("hamburger-expanded");
+    }
+  });
+
+  $("#hamburger").click(function(event) {
+    if($("#navbar-collapse-1").hasClass("in")) {
+      $("#navbar-collapse-1").fadeOut();
+      $("#add-margin-on-nav-expand").stop(true, true).removeClass("hamburger-expanded");
+    } else {
+      $("#navbar-collapse-1").fadeIn();
+      $("#add-margin-on-nav-expand").stop(true, true).addClass("hamburger-expanded");
+    }
+  });
+}
\ No newline at end of file
diff --git a/js/options.js b/js/options.js
new file mode 100644
index 0000000..33445a1
--- /dev/null
+++ b/js/options.js
@@ -0,0 +1,97 @@
+$(function() {
+  if (window.location.href.indexOf("/synsetid/") == -1) {
+    $('#synset-box').hide();
+  } else {
+    $('#synset-box').show();
+    $('#type').val("synsetid");
+  }
+
+  $('#type').on('change', function() {
+    let option = $(this).val();
+
+    switch(option) {
+      case 'lemma':
+        $('#synset-box').hide();
+        $('#lang-box').show();
+        break;
+      case 'orth':
+        $('#synset-box').hide();
+        $('#lang-box').show();
+        break;
+      case 'synsetid':
+        $('#lang-box').hide();
+        $('#synset-box').show();
+        break;
+    }
+  });
+});
+
+function selectWord() {
+  let text = "";
+
+  if (window.getSelection) {
+    text = window.getSelection().toString();
+  } else if (document.selection && document.selection.type != "Control") {
+    text = document.selection.createRange().text;
+  }
+
+  // if (text == '' || text == undefined || text == null || text.indexOf(' ') > -1) {
+  if (text == '' || text == undefined || text == null || text.trim().match(' ')) {
+    return;
+  }
+
+  let range = window.getSelection().getRangeAt(0);
+
+  while (range.toString()[0].match(/[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]/)) {
+    if (range.startOffset > 0) {
+      range.setStart(range.startContainer, range.startOffset - 1);
+    }
+    if (range.startOffset == 0) {
+      break;
+    }
+  }
+
+  while (range.toString()[range.toString().length - 1].match(/[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]/)) {
+    if (range.endOffset >= range.endContainer.length) {
+      break;
+    }
+    range.setEnd(range.endContainer, range.endOffset + 1);
+  }
+
+  if (range.startContainer.data[range.startOffset] == ' ') {
+    range.setStart(range.startContainer, range.startOffset + 1);
+  }
+
+  if (range.endOffset != range.endContainer.length || range.endContainer.data[range.endOffset - 1].match(/[^\sa-zA-Z]/) != null) {
+    range.setEnd(range.endContainer, range.endOffset - 1);
+  }
+
+  let modifiedText = window.getSelection().toString().replace(/[^a-zA-Ząćęłńóśźż]/gi, '');
+
+  return modifiedText;
+}
+
+function positionTooltip(data) {
+  data.lemma = data.lemma.trim().toLowerCase();
+
+  if (data.lemma.length <= 0) {
+    $('#tooltip-test').css('display', 'none');
+    return;
+  }
+
+  if (data.lemma.indexOf(' ') <= -1) {
+    $('#tooltip-test').html('<span lang="pl">Forma wyrazowa: </span><span lang="en">Word form: </span><a style="color: #5AB4FF" href="/orth/' + data.lang + '/' + data.lemma + '">' + data.lemma + '</a>');
+    $('#tooltip-test').css('display', 'inline-block').css('left', data.left).css('top', data.top);
+  }
+
+  hideTooltipOnScrollAndResize();
+}
+
+function hideTooltipOnScrollAndResize() {
+  $(window).scroll(function() {
+    $('#tooltip-test').hide();
+  });
+  $(window).resize(function() {
+    $('#tooltip-test').hide();
+  });
+}
\ No newline at end of file
diff --git a/js/populate-selects.js b/js/populate-selects.js
new file mode 100644
index 0000000..9574c1e
--- /dev/null
+++ b/js/populate-selects.js
@@ -0,0 +1,68 @@
+AppSelect.prototype.fulfillmentOfSelect = function(data) {
+  // 1) Remember options
+  appSelect.rememberStateOfSelect(data);
+  // 2) Delete options
+  appSelect.depopulateSelect(data.selectID);
+  // 3) Set options
+  appSelect.populateSelect(data);
+}
+
+AppSelect.prototype.rememberStateOfSelect = function(data) {
+  var indexOfCurrentlySelectedOption = $('#' + data.selectID).prop('selectedIndex');
+  if (indexOfCurrentlySelectedOption != -1) {
+    data.selected = indexOfCurrentlySelectedOption;
+  }
+}
+
+AppSelect.prototype.populateSelect = function(data) {
+  if(!data.hasOwnProperty('selected')) {
+    data.selected = 0;
+  }
+
+  if(!data.hasOwnProperty('title')) {
+    data.title = {
+      'pl': data.text.pl,
+      'en': data.text.en
+    };
+  }
+
+  if(document.body.className == 'pl') {
+    $.each(data.value, function(i, val) {
+      if(i == data.selected) {
+        $('#' + data.selectID).append(
+          '<option selected title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>'
+        );
+      } else {
+        $('#' + data.selectID).append(
+          '<option title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>'
+        );
+      }
+    });
+  } else if (document.body.className == 'en') {
+    $.each(data.value, function(i, val) {
+      if(i == data.selected) {
+        $('#' + data.selectID).append(
+          '<option selected title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>'
+        );
+      } else {
+        $('#' + data.selectID).append(
+          '<option title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>'
+        );
+      }
+    });
+  }
+}
+
+AppSelect.prototype.depopulateSelect = function(id) {
+  $('#' + id).empty();
+}
+
+AppSelect.prototype.clearCheckedFields = function(id) {
+  $('#' + id).find('input').each(function() {
+    this.checked = false;
+  });
+}
+
+function AppSelect() {}
+
+var appSelect = new AppSelect();
\ No newline at end of file
diff --git a/js/resource.js b/js/resource.js
new file mode 100644
index 0000000..7092b56
--- /dev/null
+++ b/js/resource.js
@@ -0,0 +1,82 @@
+$(function() {
+  var template = $('#handlebars_resource_index').html();
+  Resource.handlebars_resource_index_script = Handlebars.compile(template);
+
+  $( "#languages" ).on('iconselectmenuchange', function() {
+    var option = this.value;
+
+    switch(option) {
+      case 'lang-pl':
+        Resource.handlebars_resource_index_script = Handlebars.compile(template);
+        break;
+      case 'lang-en':
+        Resource.handlebars_resource_index_script = Handlebars.compile(template);
+        break;
+    }
+  });
+
+});
+
+Resource.showModal = function(title, body) {
+  $('#info_modal_title').html("" + title);
+  $('#info_modal_body').html("" + body);
+
+  return true;
+}
+
+Resource.prototype.showInfo = function() {
+  if (document.body.className == 'pl') {
+    Resource.showModal(this.infoData.description.pl.fullName, this.infoData.description.pl.description);
+  } else {
+    console.log(this.infoData.description.en);
+    Resource.showModal(this.infoData.description.en.fullName, this.infoData.description.en.description);
+  }
+}
+
+Resource.prototype.showIndexElement = function () {
+  var _html;
+
+  this.infoData.description.pl.idn = this.id;
+  this.infoData.description.pl.url = this.infoData.url;
+  this.infoData.description.pl.imgSrc = this.id + ".png";
+  this.infoData.description.en.idn = this.id;
+  this.infoData.description.en.url = this.infoData.url;
+  this.infoData.description.en.imgSrc = this.id + ".png";
+  _html = Resource.handlebars_resource_index_script(this.infoData.description);
+
+  // var _html = Resource.handlebars_resource_index_script(this.infoData.description.pl);
+  /*console.log("THIS INFODATA DESCRIPTION PL:::");
+  console.log(this.infoData.description.pl);
+  _html += "<div>Test</div>";*/
+  el = this.tag.append(_html);
+  el = el.children("div#lexpresource_" + this.id);
+  $("[rel=tooltip]").tooltip({html:true});
+  var _this = this,
+      counter = 0;
+
+  el.click(function (event) {
+    var arrow = $(this).find('.arrow');
+    var specificClass = 'arrow';
+    var checkIfTargetHasSpecificClass = event.target.className.indexOf(specificClass) > -1;
+
+    if(event.target.nodeName != "SPAN" || checkIfTargetHasSpecificClass) {
+      if(_this.element.state == "hidden" || _this.element.state == "empty") {
+        $(arrow[0]).removeClass("glyphicon-chevron-down");
+        $(arrow[0]).addClass("glyphicon-chevron-up");
+      } else {
+        $(arrow[0]).removeClass("glyphicon-chevron-up");
+        $(arrow[0]).addClass("glyphicon-chevron-down");
+      }
+      _this.element.toggle();
+    }
+  });
+}
+
+function Resource(id, infoData, tag, lexp) {
+  this.tag = tag;
+  this.id = id;
+  this.infoData = infoData;
+  this.lexp = lexp;
+  this.showIndexElement();
+  this.element = new Element($("#lexpelement_" + this.id), this.id, this.infoData, this.lexp);
+}
\ No newline at end of file
diff --git a/js/selects/basic-options.js b/js/selects/basic-options.js
new file mode 100644
index 0000000..546dd96
--- /dev/null
+++ b/js/selects/basic-options.js
@@ -0,0 +1,48 @@
+$(function() {
+  var typeOfElementSelectData = new Object();
+
+  typeOfElementSelectData.selectID = 'type';
+  typeOfElementSelectData.value = ['lemma', 'orth', 'synsetid'];
+  typeOfElementSelectData.text = {
+    'pl': ['Forma bazowa', 'Forma wyrazowa', 'Identyfikator synsetu'],
+    'en': ['Base form', 'Word form', 'Synset id']
+  };
+
+  var typeOfElementSelectDataString = JSON.stringify(typeOfElementSelectData),
+      typeOfElementSelect = JSON.parse(typeOfElementSelectDataString);
+
+  var languageSelectData = new Object();
+
+  languageSelectData.selectID = 'lang';
+  languageSelectData.value = ['pl', 'en', 'es'];
+  languageSelectData.text = {
+    'pl': ['Polski', 'Angielski', 'Hiszpański'],
+    'en': ['Polish', 'English', 'Spanish']
+  };
+
+  var languageSelectDataString = JSON.stringify(languageSelectData),
+      languageSelect = JSON.parse(languageSelectDataString);
+
+  var typeOfSynsetSelectData = new Object();
+
+  typeOfSynsetSelectData.selectID = 'type-of-synset';
+  typeOfSynsetSelectData.value = ['plwordnet'];
+  typeOfSynsetSelectData.text = {
+    'pl': ['plWordnet'],
+    'en': ['plWordnet']
+  };
+
+  var typeOfSynsetSelectDataString = JSON.stringify(typeOfSynsetSelectData),
+      typeOfSynsetSelect = JSON.parse(typeOfSynsetSelectDataString);
+
+  appSelect.fulfillmentOfSelect(typeOfElementSelect);
+  appSelect.fulfillmentOfSelect(languageSelect);
+  appSelect.fulfillmentOfSelect(typeOfSynsetSelect);
+
+  $( "#languages" ).on('iconselectmenuchange', function() {
+    appSelect.fulfillmentOfSelect(typeOfElementSelect);
+    appSelect.fulfillmentOfSelect(languageSelect);
+    appSelect.fulfillmentOfSelect(typeOfSynsetSelect);
+  });
+
+});
\ No newline at end of file
diff --git a/js/table/bootstrap-table-locale-all.js b/js/table/bootstrap-table-locale-all.js
new file mode 100644
index 0000000..b24b44f
--- /dev/null
+++ b/js/table/bootstrap-table-locale-all.js
@@ -0,0 +1,1592 @@
+/**
+ * Bootstrap Table Afrikaans translation
+ * Author: Phillip Kruger <phillip.kruger@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['af-ZA'] = {
+        formatLoadingMessage: function () {
+            return 'Besig om te laai, wag asseblief ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekords per bladsy';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Resultate ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + ' rye';
+        },
+        formatSearch: function () {
+            return 'Soek';
+        },
+        formatNoMatches: function () {
+            return 'Geen rekords gevind nie';
+        },
+        formatPaginationSwitch: function () {
+            return 'Wys/verberg bladsy nummering';
+        },
+        formatRefresh: function () {
+            return 'Herlaai';
+        },
+        formatToggle: function () {
+            return 'Wissel';
+        },
+        formatColumns: function () {
+            return 'Kolomme';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['af-ZA']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table English translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ar-SA'] = {
+        formatLoadingMessage: function () {
+            return 'جاري التحميل, يرجى الإنتظار...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' سجل لكل صفحة';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'الظاهر ' + pageFrom + ' إلى ' + pageTo + ' من ' + totalRows + ' سجل';
+        },
+        formatSearch: function () {
+            return 'بحث';
+        },
+        formatNoMatches: function () {
+            return 'لا توجد نتائج مطابقة للبحث';
+        },
+        formatPaginationSwitch: function () {
+            return 'إخفاء\إظهار ترقيم الصفحات';
+        },
+        formatRefresh: function () {
+            return 'تحديث';
+        },
+        formatToggle: function () {
+            return 'تغيير';
+        },
+        formatColumns: function () {
+            return 'أعمدة';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ar-SA']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Catalan translation
+ * Author: Marc Pina<iwalkalone69@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ca-ES'] = {
+        formatLoadingMessage: function () {
+            return 'Si us plau esperi...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' resultats per pàgina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrant de ' + pageFrom + ' fins ' + pageTo + ' - total ' + totalRows + ' resultats';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No s\'han trobat resultats';
+        },
+        formatPaginationSwitch: function () {
+            return 'Amagar/Mostrar paginació';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Amagar/Mostrar';
+        },
+        formatColumns: function () {
+            return 'Columnes';
+        },
+        formatAllRows: function () {
+            return 'Tots';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ca-ES']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Czech translation
+ * Author: Lukas Kral (monarcha@seznam.cz)
+ * Author: Jakub Svestka <svestka1999@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['cs-CZ'] = {
+        formatLoadingMessage: function () {
+            return 'Čekejte, prosím...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' položek na stránku';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Zobrazena ' + pageFrom + '. - ' + pageTo + '. položka z celkových ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Vyhledávání';
+        },
+        formatNoMatches: function () {
+            return 'Nenalezena žádná vyhovující položka';
+        },
+        formatPaginationSwitch: function () {
+            return 'Skrýt/Zobrazit stránkování';
+        },
+        formatRefresh: function () {
+            return 'Aktualizovat';
+        },
+        formatToggle: function () {
+            return 'Přepni';
+        },
+        formatColumns: function () {
+            return 'Sloupce';
+        },
+        formatAllRows: function () {
+            return 'Vše';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['cs-CZ']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table danish translation
+ * Author: Your Name Jan Borup Coyle, github@coyle.dk
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['da-DK'] = {
+        formatLoadingMessage: function () {
+            return 'Indlæser, vent venligst...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' poster pr side';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Viser ' + pageFrom + ' til ' + pageTo + ' af ' + totalRows + ' rækker';
+        },
+        formatSearch: function () {
+            return 'Søg';
+        },
+        formatNoMatches: function () {
+            return 'Ingen poster fundet';
+        },
+        formatRefresh: function () {
+            return 'Opdater';
+        },
+        formatToggle: function () {
+            return 'Skift';
+        },
+        formatColumns: function () {
+            return 'Kolonner';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['da-DK']);
+
+})(jQuery);
+/**
+* Bootstrap Table German translation
+* Author: Paul Mohr - Sopamo<p.mohr@sopamo.de>
+*/
+(function ($) {
+  'use strict';
+
+  $.fn.bootstrapTable.locales['de-DE'] = {
+    formatLoadingMessage: function () {
+      return 'Lade, bitte warten...';
+    },
+    formatRecordsPerPage: function (pageNumber) {
+      return pageNumber + ' Einträge pro Seite';
+    },
+    formatShowingRows: function (pageFrom, pageTo, totalRows) {
+      return 'Zeige ' + pageFrom + ' bis ' + pageTo + ' von ' + totalRows + ' Zeile' + ((totalRows > 1) ? "n" : "");
+    },
+    formatSearch: function () {
+      return 'Suchen';
+    },
+    formatNoMatches: function () {
+      return 'Keine passenden Ergebnisse gefunden';
+    },
+    formatRefresh: function () {
+      return 'Neu laden';
+    },
+    formatToggle: function () {
+      return 'Umschalten';
+    },
+    formatColumns: function () {
+      return 'Spalten';
+    }
+  };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['de-DE']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Greek translation
+ * Author: giannisdallas
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['el-GR'] = {
+        formatLoadingMessage: function () {
+            return 'Φορτώνει, παρακαλώ περιμένετε...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' αποτελέσματα ανά σελίδα';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Εμφανίζονται από την ' + pageFrom + ' ως την ' + pageTo + ' από σύνολο ' + totalRows + ' σειρών';
+        },
+        formatSearch: function () {
+            return 'Αναζητήστε';
+        },
+        formatNoMatches: function () {
+            return 'Δεν βρέθηκαν αποτελέσματα';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['el-GR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table English translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['en-US'] = {
+        formatLoadingMessage: function () {
+            return 'Loading, please wait...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' records per page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Showing ' + pageFrom + ' to ' + pageTo + ' of ' + totalRows + ' rows';
+        },
+        formatSearch: function () {
+            return 'Search';
+        },
+        formatNoMatches: function () {
+            return 'No matching records found';
+        },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
+        formatRefresh: function () {
+            return 'Refresh';
+        },
+        formatToggle: function () {
+            return 'Toggle';
+        },
+        formatColumns: function () {
+            return 'Columns';
+        },
+        formatAllRows: function () {
+            return 'All';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['en-US']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Spanish (Argentina) translation
+ * Author: Felix Vera (felix.vera@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-AR'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, espere por favor...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando ' + pageFrom + ' a ' + pageTo + ' de ' + totalRows + ' filas';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-AR']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Spanish (Costa Rica) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-CR'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando de ' + pageFrom + ' a ' + pageTo + ' registros de ' + totalRows + ' registros en total';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-CR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Spanish Spain translation
+ * Author: Marc Pina<iwalkalone69@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-ES'] = {
+        formatLoadingMessage: function () {
+            return 'Por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' resultados por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando desde ' + pageFrom + ' hasta ' + pageTo + ' - En total ' + totalRows + ' resultados';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron resultados';
+        },
+        formatPaginationSwitch: function () {
+            return 'Ocultar/Mostrar paginación';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Ocultar/Mostrar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todos';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-ES']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Spanish (México) translation (Obtenido de traducción de Argentina)
+ * Author: Felix Vera (felix.vera@gmail.com) 
+ * Copiado: Mauricio Vera (mauricioa.vera@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-MX'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, espere por favor...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando ' + pageFrom + ' a ' + pageTo + ' de ' + totalRows + ' filas';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-MX']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Spanish (Nicaragua) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-NI'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando de ' + pageFrom + ' a ' + pageTo + ' registros de ' + totalRows + ' registros en total';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-NI']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Spanish (España) translation
+ * Author: Antonio Pérez <anpegar@gmail.com>
+ */
+ (function ($) {
+    'use strict';
+    
+    $.fn.bootstrapTable.locales['es-SP'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espera...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por p&#225;gina.';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return pageFrom + ' - ' + pageTo + ' de ' + totalRows + ' registros.';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se han encontrado registros.';
+        },
+        formatRefresh: function () {
+            return 'Actualizar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-SP']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Estonian translation
+ * Author: kristjan@logist.it>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['et-EE'] = {
+        formatLoadingMessage: function () {
+            return 'Päring käib, palun oota...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rida lehe kohta';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Näitan tulemusi ' + pageFrom + ' kuni ' + pageTo + ' - kokku ' + totalRows + ' tulemust';
+        },
+        formatSearch: function () {
+            return 'Otsi';
+        },
+        formatNoMatches: function () {
+            return 'Päringu tingimustele ei vastanud ühtegi tulemust';
+        },
+        formatPaginationSwitch: function () {
+            return 'Näita/Peida lehtedeks jagamine';
+        },
+        formatRefresh: function () {
+            return 'Värskenda';
+        },
+        formatToggle: function () {
+            return 'Lülita';
+        },
+        formatColumns: function () {
+            return 'Veerud';
+        },
+        formatAllRows: function () {
+            return 'Kõik';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['et-EE']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Persian translation
+ * Author: MJ Vakili <mjv.1989@Gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fa-IR'] = {
+        formatLoadingMessage: function () {
+            return 'در حال بارگذاری, لطفا صبر کنید...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' رکورد در صفحه';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'نمایش ' + pageFrom + ' تا ' + pageTo + ' از ' + totalRows + ' ردیف';
+        },
+        formatSearch: function () {
+            return 'جستجو';
+        },
+        formatNoMatches: function () {
+            return 'رکوردی یافت نشد.';
+        },
+        formatPaginationSwitch: function () {
+            return 'نمایش/مخفی صفحه بندی';
+        },
+        formatRefresh: function () {
+            return 'به روز رسانی';
+        },
+        formatToggle: function () {
+            return 'تغییر نمایش';
+        },
+        formatColumns: function () {
+            return 'سطر ها';
+        },
+        formatAllRows: function () {
+            return 'همه';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fa-IR']);
+
+})(jQuery);
+/**
+ * Bootstrap Table French (Belgium) translation
+ * Author: Julien Bisconti (julien.bisconti@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fr-BE'] = {
+        formatLoadingMessage: function () {
+            return 'Chargement en cours...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' entrées par page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Affiche de' + pageFrom + ' à ' + pageTo + ' sur ' + totalRows + ' lignes';
+        },
+        formatSearch: function () {
+            return 'Recherche';
+        },
+        formatNoMatches: function () {
+            return 'Pas de fichiers trouvés';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fr-BE']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table French (France) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ * Modification: Tidalf (https://github.com/TidalfFR)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fr-FR'] = {
+        formatLoadingMessage: function () {
+            return 'Chargement en cours, patientez, s´il vous plaît ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' lignes par page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Affichage des lignes ' + pageFrom + ' à ' + pageTo + ' sur ' + totalRows + ' lignes au total';
+        },
+        formatSearch: function () {
+            return 'Rechercher';
+        },
+        formatNoMatches: function () {
+            return 'Aucun résultat trouvé';
+        },
+        formatRefresh: function () {
+            return 'Rafraîchir';
+        },
+        formatToggle: function () {
+            return 'Alterner';
+        },
+        formatColumns: function () {
+            return 'Colonnes';
+        },
+        formatAllRows: function () {
+            return 'Tous';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fr-FR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Croatian translation
+ * Author: Petra Štrbenac (petra.strbenac@gmail.com)
+ * Author: Petra Štrbenac (petra.strbenac@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['hr-HR'] = {
+        formatLoadingMessage: function () {
+            return 'Molimo pričekajte ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' broj zapisa po stranici';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Prikazujem ' + pageFrom + '. - ' + pageTo + '. od ukupnog broja zapisa ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Pretraži';
+        },
+        formatNoMatches: function () {
+            return 'Nije pronađen niti jedan zapis';
+        },
+        formatPaginationSwitch: function () {
+            return 'Prikaži/sakrij stranice';
+        },
+        formatRefresh: function () {
+            return 'Osvježi';
+        },
+        formatToggle: function () {
+            return 'Promijeni prikaz';
+        },
+        formatColumns: function () {
+            return 'Kolone';
+        },
+        formatAllRows: function () {
+            return 'Sve';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['hr-HR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Hungarian translation
+ * Author: Nagy Gergely <info@nagygergely.eu>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['hu-HU'] = {
+        formatLoadingMessage: function () {
+            return 'Betöltés, kérem várjon...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekord per oldal';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Megjelenítve ' + pageFrom + ' - ' + pageTo + ' / ' + totalRows + ' összesen';
+        },
+        formatSearch: function () {
+            return 'Keresés';
+        },
+        formatNoMatches: function () {
+            return 'Nincs találat';
+        },
+        formatPaginationSwitch: function () {
+            return 'Lapozó elrejtése/megjelenítése';
+        },
+        formatRefresh: function () {
+            return 'Frissítés';
+        },
+        formatToggle: function () {
+            return 'Összecsuk/Kinyit';
+        },
+        formatColumns: function () {
+            return 'Oszlopok';
+        },
+        formatAllRows: function () {
+            return 'Összes';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['hu-HU']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Italian translation
+ * Author: Davide Renzi<davide.renzi@gmail.com>
+ * Author: Davide Borsatto <davide.borsatto@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['it-IT'] = {
+        formatLoadingMessage: function () {
+            return 'Caricamento in corso...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' elementi per pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Pagina ' + pageFrom + ' di ' + pageTo + ' (' + totalRows + ' records)';
+        },
+        formatSearch: function () {
+            return 'Cerca';
+        },
+        formatNoMatches: function () {
+            return 'Nessun elemento trovato';
+        },
+        formatRefresh: function () {
+            return 'Aggiorna';
+        },
+        formatToggle: function () {
+            return 'Alterna';
+        },
+        formatColumns: function () {
+            return 'Colonne';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['it-IT']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Japanese translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ja-JP'] = {
+        formatLoadingMessage: function () {
+            return '読み込み中です。少々お待ちください。';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return 'ページ当たり最大' + pageNumber + '件';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '全' + totalRows + '件から、'+ pageFrom + 'から' + pageTo + '件目まで表示しています';
+        },
+        formatSearch: function () {
+            return '検索';
+        },
+        formatNoMatches: function () {
+            return '該当するレコードが見つかりません';
+        },
+        formatPaginationSwitch: function () {
+            return 'ページ数を表示・非表示';
+        },
+        formatRefresh: function () {
+            return '更新';
+        },
+        formatToggle: function () {
+            return 'トグル';
+        },
+        formatColumns: function () {
+            return '列';
+        },
+        formatAllRows: function () {
+            return 'すべて';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ja-JP']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Georgian translation
+ * Author: Levan Lotuashvili <l.lotuashvili@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ka-GE'] = {
+        formatLoadingMessage: function() {
+            return 'იტვირთება, გთხოვთ მოიცადოთ...';
+        },
+        formatRecordsPerPage: function(pageNumber) {
+            return pageNumber + ' ჩანაწერი თითო გვერდზე';
+        },
+        formatShowingRows: function(pageFrom, pageTo, totalRows) {
+            return 'ნაჩვენებია ' + pageFrom + '-დან ' + pageTo + '-მდე ჩანაწერი ჯამური ' + totalRows + '-დან';
+        },
+        formatSearch: function() {
+            return 'ძებნა';
+        },
+        formatNoMatches: function() {
+            return 'მონაცემები არ არის';
+        },
+        formatPaginationSwitch: function() {
+            return 'გვერდების გადამრთველის დამალვა/გამოჩენა';
+        },
+        formatRefresh: function() {
+            return 'განახლება';
+        },
+        formatToggle: function() {
+            return 'ჩართვა/გამორთვა';
+        },
+        formatColumns: function() {
+            return 'სვეტები';
+        }
+    };
+    
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ka-GE']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Korean translation
+ * Author: Yi Tae-Hyeong (jsonobject@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ko-KR'] = {
+        formatLoadingMessage: function () {
+            return '데이터를 불러오는 중입니다...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '페이지 당 ' + pageNumber + '개 데이터 출력';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '전체 ' + totalRows + '개 중 ' + pageFrom + '~' + pageTo + '번째 데이터 출력,';
+        },
+        formatSearch: function () {
+            return '검색';
+        },
+        formatNoMatches: function () {
+            return '조회된 데이터가 없습니다.';
+        },
+        formatRefresh: function () {
+            return '새로 고침';
+        },
+        formatToggle: function () {
+            return '전환';
+        },
+        formatColumns: function () {
+            return '컬럼 필터링';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ko-KR']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Malay translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ms-MY'] = {
+        formatLoadingMessage: function () {
+            return 'Permintaan sedang dimuatkan. Sila tunggu sebentar...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekod setiap muka surat';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Sedang memaparkan rekod ' + pageFrom + ' hingga ' + pageTo + ' daripada jumlah ' + totalRows + ' rekod';
+        },
+        formatSearch: function () {
+            return 'Cari';
+        },
+        formatNoMatches: function () {
+            return 'Tiada rekod yang menyamai permintaan';
+        },
+        formatPaginationSwitch: function () {
+            return 'Tunjuk/sembunyi muka surat';
+        },
+        formatRefresh: function () {
+            return 'Muatsemula';
+        },
+        formatToggle: function () {
+            return 'Tukar';
+        },
+        formatColumns: function () {
+            return 'Lajur';
+        },
+        formatAllRows: function () {
+            return 'Semua';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ms-MY']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table norwegian translation
+ * Author: Jim Nordbø, jim@nordb.no
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['nb-NO'] = {
+        formatLoadingMessage: function () {
+            return 'Oppdaterer, vennligst vent...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' poster pr side';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Viser ' + pageFrom + ' til ' + pageTo + ' av ' + totalRows + ' rekker';
+        },
+        formatSearch: function () {
+            return 'Søk';
+        },
+        formatNoMatches: function () {
+            return 'Ingen poster funnet';
+        },
+        formatRefresh: function () {
+            return 'Oppdater';
+        },
+        formatToggle: function () {
+            return 'Endre';
+        },
+        formatColumns: function () {
+            return 'Kolonner';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['nb-NO']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Dutch translation
+ * Author: Your Name <info@a2hankes.nl>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['nl-NL'] = {
+        formatLoadingMessage: function () {
+            return 'Laden, even geduld...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' records per pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Toon ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + ' records';
+        },
+        formatSearch: function () {
+            return 'Zoeken';
+        },
+        formatNoMatches: function () {
+            return 'Geen resultaten gevonden';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['nl-NL']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Polish translation
+ * Author: zergu <michal.zagdan @ gmail com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pl-PL'] = {
+        formatLoadingMessage: function () {
+            return 'Ładowanie, proszę czekać...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekordów na stronę';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Wyświetlanie rekordów od ' + pageFrom + ' do ' + pageTo + ' z ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Szukaj';
+        },
+        formatNoMatches: function () {
+            return 'Niestety, nic nie znaleziono';
+        },
+        formatRefresh: function () {
+            return 'Odśwież';
+        },
+        formatToggle: function () {
+            return 'Przełącz';
+        },
+        formatColumns: function () {
+            return 'Kolumny';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pl-PL']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Brazilian Portuguese Translation
+ * Author: Eduardo Cerqueira<egcerqueira@gmail.com>
+ * Update: João Mello<jmello@hotmail.com.br>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pt-BR'] = {
+        formatLoadingMessage: function () {
+            return 'Carregando, aguarde...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Exibindo ' + pageFrom + ' até ' + pageTo + ' de ' + totalRows + ' linhas';
+        },
+        formatSearch: function () { 
+            return 'Pesquisar';
+        },
+        formatRefresh: function () { 
+            return 'Recarregar';
+        },
+        formatToggle: function () { 
+            return 'Alternar';
+        },
+        formatColumns: function () { 
+            return 'Colunas';
+        },
+        formatPaginationSwitch: function () { 
+            return 'Ocultar/Exibir paginação';
+        },
+        formatNoMatches: function () {
+            return 'Nenhum registro encontrado';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pt-BR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Portuguese Portugal Translation
+ * Author: Burnspirit<burnspirit@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pt-PT'] = {
+        formatLoadingMessage: function () {
+            return 'A carregar, aguarde...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registos por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'A mostrar ' + pageFrom + ' até ' + pageTo + ' de ' + totalRows + ' linhas';
+        },
+        formatSearch: function () {
+            return 'Pesquisa';
+        },
+        formatNoMatches: function () {
+            return 'Nenhum registo encontrado';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pt-PT']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Romanian translation
+ * Author: cristake <cristianiosif@me.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ro-RO'] = {
+        formatLoadingMessage: function () {
+            return 'Se incarca, va rugam asteptati...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' inregistrari pe pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Arata de la ' + pageFrom + ' pana la ' + pageTo + ' din ' + totalRows + ' randuri';
+        },
+        formatSearch: function () {
+            return 'Cauta';
+        },
+        formatNoMatches: function () {
+            return 'Nu au fost gasite inregistrari';
+        },
+        formatPaginationSwitch: function () {
+            return 'Ascunde/Arata paginatia';
+        },
+        formatRefresh: function () {
+            return 'Reincarca';
+        },
+        formatToggle: function () {
+            return 'Comuta';
+        },
+        formatColumns: function () {
+            return 'Coloane';
+        },
+        formatAllRows: function () {
+            return 'Toate';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ro-RO']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Russian translation
+ * Author: Dunaevsky Maxim <dunmaksim@yandex.ru>
+ */
+(function ($) {
+    'use strict';
+    $.fn.bootstrapTable.locales['ru-RU'] = {
+        formatLoadingMessage: function () {
+            return 'Пожалуйста, подождите, идёт загрузка...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' записей на страницу';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Записи с ' + pageFrom + ' по ' + pageTo + ' из ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Поиск';
+        },
+        formatNoMatches: function () {
+            return 'Ничего не найдено';
+        },
+        formatRefresh: function () {
+            return 'Обновить';
+        },
+        formatToggle: function () {
+            return 'Переключить';
+        },
+        formatColumns: function () {
+            return 'Колонки';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ru-RU']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Slovak translation
+ * Author: Jozef Dúc<jozef.d13@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['sk-SK'] = {
+        formatLoadingMessage: function () {
+            return 'Prosím čakajte ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' záznamov na stranu';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Zobrazená ' + pageFrom + '. - ' + pageTo + '. položka z celkových ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Vyhľadávanie';
+        },
+        formatNoMatches: function () {
+            return 'Nenájdená žiadne vyhovujúca položka';
+        },
+        formatRefresh: function () {
+            return 'Obnoviť';
+        },
+        formatToggle: function () {
+            return 'Prepni';
+        },
+        formatColumns: function () {
+            return 'Stĺpce';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sk-SK']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Swedish translation
+ * Author: C Bratt <bratt@inix.se>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['sv-SE'] = {
+        formatLoadingMessage: function () {
+            return 'Laddar, vänligen vänta...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rader per sida';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Visa ' + pageFrom + ' till ' + pageTo + ' av ' + totalRows + ' rader';
+        },
+        formatSearch: function () {
+            return 'Sök';
+        },
+        formatNoMatches: function () {
+            return 'Inga matchande resultat funna.';
+        },
+        formatRefresh: function () {
+            return 'Uppdatera';
+        },
+        formatToggle: function () {
+            return 'Skifta';
+        },
+        formatColumns: function () {
+            return 'kolumn';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sv-SE']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Thai translation
+ * Author: Monchai S.<monchais@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['th-TH'] = {
+        formatLoadingMessage: function () {
+            return 'กำลังโหลดข้อมูล, กรุณารอสักครู่...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' รายการต่อหน้า';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'รายการที่ ' + pageFrom + ' ถึง ' + pageTo + ' จากทั้งหมด ' + totalRows + ' รายการ';
+        },
+        formatSearch: function () {
+            return 'ค้นหา';
+        },
+        formatNoMatches: function () {
+            return 'ไม่พบรายการที่ค้นหา !';
+        },
+        formatRefresh: function () {
+            return 'รีเฟรส';
+        },
+        formatToggle: function () {
+            return 'สลับมุมมอง';
+        },
+        formatColumns: function () {
+            return 'คอลัมน์';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['th-TH']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Turkish translation
+ * Author: Emin Şen
+ * Author: Sercan Cakir <srcnckr@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['tr-TR'] = {
+        formatLoadingMessage: function () {
+            return 'Yükleniyor, lütfen bekleyin...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return 'Sayfa başına ' + pageNumber + ' kayıt.';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return totalRows + ' kayıttan ' + pageFrom + '-' + pageTo + ' arası gösteriliyor.';
+        },
+        formatSearch: function () {
+            return 'Ara';
+        },
+        formatNoMatches: function () {
+            return 'Eşleşen kayıt bulunamadı.';
+        },
+        formatRefresh: function () {
+            return 'Yenile';
+        },
+        formatToggle: function () {
+            return 'Değiştir';
+        },
+        formatColumns: function () {
+            return 'Sütunlar';
+        },
+        formatAllRows: function () {
+            return 'Tüm Satırlar';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['tr-TR']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Ukrainian translation
+ * Author: Vitaliy Timchenko <vitaliy.timchenko@gmail.com>
+ */
+ (function ($) {
+    'use strict';
+    
+    $.fn.bootstrapTable.locales['uk-UA'] = {
+        formatLoadingMessage: function () {
+            return 'Завантаження, будь ласка, зачекайте...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' записів на сторінку';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Показано з ' + pageFrom + ' по ' + pageTo + '. Всього: ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Пошук';
+        },
+        formatNoMatches: function () {
+            return 'Не знайдено жодного запису';
+        },
+        formatRefresh: function () {
+            return 'Оновити';
+        },
+        formatToggle: function () {
+            return 'Змінити';
+        },
+        formatColumns: function () {
+            return 'Стовпці';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['uk-UA']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Urdu translation
+ * Author: Malik <me@malikrizwan.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ur-PK'] = {
+        formatLoadingMessage: function () {
+            return 'براۓ مہربانی انتظار کیجئے';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' ریکارڈز فی صفہ ';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'دیکھیں ' + pageFrom + ' سے ' + pageTo + ' کے ' +  totalRows + 'ریکارڈز';
+        },
+        formatSearch: function () {
+            return 'تلاش';
+        },
+        formatNoMatches: function () {
+            return 'کوئی ریکارڈ نہیں ملا';
+        },
+        formatRefresh: function () {
+            return 'تازہ کریں';
+        },
+        formatToggle: function () {
+            return 'تبدیل کریں';
+        },
+        formatColumns: function () {
+            return 'کالم';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ur-PK']);
+
+})(jQuery);
+
+/**
+ * Bootstrap Table Vietnamese translation
+ * Author: Duc N. PHAM <pngduc@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['vi-VN'] = {
+        formatLoadingMessage: function () {
+            return 'Đang tải...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' bản ghi mỗi trang';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Hiển thị từ trang ' + pageFrom + ' đến ' + pageTo + ' của ' + totalRows + ' bảng ghi';
+        },
+        formatSearch: function () {
+            return 'Tìm kiếm';
+        },
+        formatNoMatches: function () {
+            return 'Không có dữ liệu';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['vi-VN']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Chinese translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['zh-CN'] = {
+        formatLoadingMessage: function () {
+            return '正在努力地加载数据中,请稍候……';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '每页显示 ' + pageNumber + ' 条记录';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录';
+        },
+        formatSearch: function () {
+            return '搜索';
+        },
+        formatNoMatches: function () {
+            return '没有找到匹配的记录';
+        },
+        formatPaginationSwitch: function () {
+            return '隐藏/显示分页';
+        },
+        formatRefresh: function () {
+            return '刷新';
+        },
+        formatToggle: function () {
+            return '切换';
+        },
+        formatColumns: function () {
+            return '列';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
+
+})(jQuery);
+/**
+ * Bootstrap Table Chinese translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['zh-TW'] = {
+        formatLoadingMessage: function () {
+            return '正在努力地載入資料,請稍候……';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '每頁顯示 ' + pageNumber + ' 項記錄';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '顯示第 ' + pageFrom + ' 到第 ' + pageTo + ' 項記錄,總共 ' + totalRows + ' 項記錄';
+        },
+        formatSearch: function () {
+            return '搜尋';
+        },
+        formatNoMatches: function () {
+            return '沒有找符合的結果';
+        },
+        formatPaginationSwitch: function () {
+            return '隱藏/顯示分頁';
+        },
+        formatRefresh: function () {
+            return '刷新';
+        },
+        formatToggle: function () {
+            return '切換';
+        },
+        formatColumns: function () {
+            return '列';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-TW']);
+
+})(jQuery);
diff --git a/js/table/bootstrap-table-locale-all.min.js b/js/table/bootstrap-table-locale-all.min.js
new file mode 100644
index 0000000..93ae8f3
--- /dev/null
+++ b/js/table/bootstrap-table-locale-all.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["af-ZA"]={formatLoadingMessage:function(){return"Besig om te laai, wag asseblief ..."},formatRecordsPerPage:function(a){return a+" rekords per bladsy"},formatShowingRows:function(a,b,c){return"Resultate "+a+" tot "+b+" van "+c+" rye"},formatSearch:function(){return"Soek"},formatNoMatches:function(){return"Geen rekords gevind nie"},formatPaginationSwitch:function(){return"Wys/verberg bladsy nummering"},formatRefresh:function(){return"Herlaai"},formatToggle:function(){return"Wissel"},formatColumns:function(){return"Kolomme"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["af-ZA"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ar-SA"]={formatLoadingMessage:function(){return"جاري التحميل, يرجى الإنتظار..."},formatRecordsPerPage:function(a){return a+" سجل لكل صفحة"},formatShowingRows:function(a,b,c){return"الظاهر "+a+" إلى "+b+" من "+c+" سجل"},formatSearch:function(){return"بحث"},formatNoMatches:function(){return"لا توجد نتائج مطابقة للبحث"},formatPaginationSwitch:function(){return"إخفاءإظهار ترقيم الصفحات"},formatRefresh:function(){return"تحديث"},formatToggle:function(){return"تغيير"},formatColumns:function(){return"أعمدة"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ar-SA"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ca-ES"]={formatLoadingMessage:function(){return"Si us plau esperi..."},formatRecordsPerPage:function(a){return a+" resultats per pàgina"},formatShowingRows:function(a,b,c){return"Mostrant de "+a+" fins "+b+" - total "+c+" resultats"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No s'han trobat resultats"},formatPaginationSwitch:function(){return"Amagar/Mostrar paginació"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Amagar/Mostrar"},formatColumns:function(){return"Columnes"},formatAllRows:function(){return"Tots"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ca-ES"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["cs-CZ"]={formatLoadingMessage:function(){return"Čekejte, prosím..."},formatRecordsPerPage:function(a){return a+" položek na stránku"},formatShowingRows:function(a,b,c){return"Zobrazena "+a+". - "+b+". položka z celkových "+c},formatSearch:function(){return"Vyhledávání"},formatNoMatches:function(){return"Nenalezena žádná vyhovující položka"},formatPaginationSwitch:function(){return"Skrýt/Zobrazit stránkování"},formatRefresh:function(){return"Aktualizovat"},formatToggle:function(){return"Přepni"},formatColumns:function(){return"Sloupce"},formatAllRows:function(){return"Vše"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["cs-CZ"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["da-DK"]={formatLoadingMessage:function(){return"Indlæser, vent venligst..."},formatRecordsPerPage:function(a){return a+" poster pr side"},formatShowingRows:function(a,b,c){return"Viser "+a+" til "+b+" af "+c+" rækker"},formatSearch:function(){return"Søg"},formatNoMatches:function(){return"Ingen poster fundet"},formatRefresh:function(){return"Opdater"},formatToggle:function(){return"Skift"},formatColumns:function(){return"Kolonner"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["da-DK"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["de-DE"]={formatLoadingMessage:function(){return"Lade, bitte warten..."},formatRecordsPerPage:function(a){return a+" Einträge pro Seite"},formatShowingRows:function(a,b,c){return"Zeige "+a+" bis "+b+" von "+c+" Zeile"+(c>1?"n":"")},formatSearch:function(){return"Suchen"},formatNoMatches:function(){return"Keine passenden Ergebnisse gefunden"},formatRefresh:function(){return"Neu laden"},formatToggle:function(){return"Umschalten"},formatColumns:function(){return"Spalten"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["de-DE"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["el-GR"]={formatLoadingMessage:function(){return"Φορτώνει, παρακαλώ περιμένετε..."},formatRecordsPerPage:function(a){return a+" αποτελέσματα ανά σελίδα"},formatShowingRows:function(a,b,c){return"Εμφανίζονται από την "+a+" ως την "+b+" από σύνολο "+c+" σειρών"},formatSearch:function(){return"Αναζητήστε"},formatNoMatches:function(){return"Δεν βρέθηκαν αποτελέσματα"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["el-GR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["en-US"]={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return a+" records per page"},formatShowingRows:function(a,b,c){return"Showing "+a+" to "+b+" of "+c+" rows"},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["en-US"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-AR"]={formatLoadingMessage:function(){return"Cargando, espere por favor..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando "+a+" a "+b+" de "+c+" filas"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-AR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-CR"]={formatLoadingMessage:function(){return"Cargando, por favor espere..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando de "+a+" a "+b+" registros de "+c+" registros en total"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-CR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-ES"]={formatLoadingMessage:function(){return"Por favor espere..."},formatRecordsPerPage:function(a){return a+" resultados por página"},formatShowingRows:function(a,b,c){return"Mostrando desde "+a+" hasta "+b+" - En total "+c+" resultados"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron resultados"},formatPaginationSwitch:function(){return"Ocultar/Mostrar paginación"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Ocultar/Mostrar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todos"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-ES"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-MX"]={formatLoadingMessage:function(){return"Cargando, espere por favor..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando "+a+" a "+b+" de "+c+" filas"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-MX"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-NI"]={formatLoadingMessage:function(){return"Cargando, por favor espere..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando de "+a+" a "+b+" registros de "+c+" registros en total"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-NI"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["es-SP"]={formatLoadingMessage:function(){return"Cargando, por favor espera..."},formatRecordsPerPage:function(a){return a+" registros por p&#225;gina."},formatShowingRows:function(a,b,c){return a+" - "+b+" de "+c+" registros."},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se han encontrado registros."},formatRefresh:function(){return"Actualizar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-SP"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["et-EE"]={formatLoadingMessage:function(){return"Päring käib, palun oota..."},formatRecordsPerPage:function(a){return a+" rida lehe kohta"},formatShowingRows:function(a,b,c){return"Näitan tulemusi "+a+" kuni "+b+" - kokku "+c+" tulemust"},formatSearch:function(){return"Otsi"},formatNoMatches:function(){return"Päringu tingimustele ei vastanud ühtegi tulemust"},formatPaginationSwitch:function(){return"Näita/Peida lehtedeks jagamine"},formatRefresh:function(){return"Värskenda"},formatToggle:function(){return"Lülita"},formatColumns:function(){return"Veerud"},formatAllRows:function(){return"Kõik"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["et-EE"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["fa-IR"]={formatLoadingMessage:function(){return"در حال بارگذاری, لطفا صبر کنید..."},formatRecordsPerPage:function(a){return a+" رکورد در صفحه"},formatShowingRows:function(a,b,c){return"نمایش "+a+" تا "+b+" از "+c+" ردیف"},formatSearch:function(){return"جستجو"},formatNoMatches:function(){return"رکوردی یافت نشد."},formatPaginationSwitch:function(){return"نمایش/مخفی صفحه بندی"},formatRefresh:function(){return"به روز رسانی"},formatToggle:function(){return"تغییر نمایش"},formatColumns:function(){return"سطر ها"},formatAllRows:function(){return"همه"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fa-IR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["fr-BE"]={formatLoadingMessage:function(){return"Chargement en cours..."},formatRecordsPerPage:function(a){return a+" entrées par page"},formatShowingRows:function(a,b,c){return"Affiche de"+a+" à "+b+" sur "+c+" lignes"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de fichiers trouvés"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fr-BE"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["fr-FR"]={formatLoadingMessage:function(){return"Chargement en cours, patientez, s´il vous plaît ..."},formatRecordsPerPage:function(a){return a+" lignes par page"},formatShowingRows:function(a,b,c){return"Affichage des lignes "+a+" à "+b+" sur "+c+" lignes au total"},formatSearch:function(){return"Rechercher"},formatNoMatches:function(){return"Aucun résultat trouvé"},formatRefresh:function(){return"Rafraîchir"},formatToggle:function(){return"Alterner"},formatColumns:function(){return"Colonnes"},formatAllRows:function(){return"Tous"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fr-FR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["hr-HR"]={formatLoadingMessage:function(){return"Molimo pričekajte ..."},formatRecordsPerPage:function(a){return a+" broj zapisa po stranici"},formatShowingRows:function(a,b,c){return"Prikazujem "+a+". - "+b+". od ukupnog broja zapisa "+c},formatSearch:function(){return"Pretraži"},formatNoMatches:function(){return"Nije pronađen niti jedan zapis"},formatPaginationSwitch:function(){return"Prikaži/sakrij stranice"},formatRefresh:function(){return"Osvježi"},formatToggle:function(){return"Promijeni prikaz"},formatColumns:function(){return"Kolone"},formatAllRows:function(){return"Sve"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["hr-HR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["hu-HU"]={formatLoadingMessage:function(){return"Betöltés, kérem várjon..."},formatRecordsPerPage:function(a){return a+" rekord per oldal"},formatShowingRows:function(a,b,c){return"Megjelenítve "+a+" - "+b+" / "+c+" összesen"},formatSearch:function(){return"Keresés"},formatNoMatches:function(){return"Nincs találat"},formatPaginationSwitch:function(){return"Lapozó elrejtése/megjelenítése"},formatRefresh:function(){return"Frissítés"},formatToggle:function(){return"Összecsuk/Kinyit"},formatColumns:function(){return"Oszlopok"},formatAllRows:function(){return"Összes"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["hu-HU"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["it-IT"]={formatLoadingMessage:function(){return"Caricamento in corso..."},formatRecordsPerPage:function(a){return a+" elementi per pagina"},formatShowingRows:function(a,b,c){return"Pagina "+a+" di "+b+" ("+c+" records)"},formatSearch:function(){return"Cerca"},formatNoMatches:function(){return"Nessun elemento trovato"},formatRefresh:function(){return"Aggiorna"},formatToggle:function(){return"Alterna"},formatColumns:function(){return"Colonne"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["it-IT"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ja-JP"]={formatLoadingMessage:function(){return"読み込み中です。少々お待ちください。"},formatRecordsPerPage:function(a){return"ページ当たり最大"+a+"件"},formatShowingRows:function(a,b,c){return"全"+c+"件から、"+a+"から"+b+"件目まで表示しています"},formatSearch:function(){return"検索"},formatNoMatches:function(){return"該当するレコードが見つかりません"},formatPaginationSwitch:function(){return"ページ数を表示・非表示"},formatRefresh:function(){return"更新"},formatToggle:function(){return"トグル"},formatColumns:function(){return"列"},formatAllRows:function(){return"すべて"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ja-JP"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ka-GE"]={formatLoadingMessage:function(){return"იტვირთება, გთხოვთ მოიცადოთ..."},formatRecordsPerPage:function(a){return a+" ჩანაწერი თითო გვერდზე"},formatShowingRows:function(a,b,c){return"ნაჩვენებია "+a+"-დან "+b+"-მდე ჩანაწერი ჯამური "+c+"-დან"},formatSearch:function(){return"ძებნა"},formatNoMatches:function(){return"მონაცემები არ არის"},formatPaginationSwitch:function(){return"გვერდების გადამრთველის დამალვა/გამოჩენა"},formatRefresh:function(){return"განახლება"},formatToggle:function(){return"ჩართვა/გამორთვა"},formatColumns:function(){return"სვეტები"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ka-GE"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ko-KR"]={formatLoadingMessage:function(){return"데이터를 불러오는 중입니다..."},formatRecordsPerPage:function(a){return"페이지 당 "+a+"개 데이터 출력"},formatShowingRows:function(a,b,c){return"전체 "+c+"개 중 "+a+"~"+b+"번째 데이터 출력,"},formatSearch:function(){return"검색"},formatNoMatches:function(){return"조회된 데이터가 없습니다."},formatRefresh:function(){return"새로 고침"},formatToggle:function(){return"전환"},formatColumns:function(){return"컬럼 필터링"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ko-KR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ms-MY"]={formatLoadingMessage:function(){return"Permintaan sedang dimuatkan. Sila tunggu sebentar..."},formatRecordsPerPage:function(a){return a+" rekod setiap muka surat"},formatShowingRows:function(a,b,c){return"Sedang memaparkan rekod "+a+" hingga "+b+" daripada jumlah "+c+" rekod"},formatSearch:function(){return"Cari"},formatNoMatches:function(){return"Tiada rekod yang menyamai permintaan"},formatPaginationSwitch:function(){return"Tunjuk/sembunyi muka surat"},formatRefresh:function(){return"Muatsemula"},formatToggle:function(){return"Tukar"},formatColumns:function(){return"Lajur"},formatAllRows:function(){return"Semua"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ms-MY"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["nb-NO"]={formatLoadingMessage:function(){return"Oppdaterer, vennligst vent..."},formatRecordsPerPage:function(a){return a+" poster pr side"},formatShowingRows:function(a,b,c){return"Viser "+a+" til "+b+" av "+c+" rekker"},formatSearch:function(){return"Søk"},formatNoMatches:function(){return"Ingen poster funnet"},formatRefresh:function(){return"Oppdater"},formatToggle:function(){return"Endre"},formatColumns:function(){return"Kolonner"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["nb-NO"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["nl-NL"]={formatLoadingMessage:function(){return"Laden, even geduld..."},formatRecordsPerPage:function(a){return a+" records per pagina"},formatShowingRows:function(a,b,c){return"Toon "+a+" tot "+b+" van "+c+" records"},formatSearch:function(){return"Zoeken"},formatNoMatches:function(){return"Geen resultaten gevonden"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["nl-NL"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["pl-PL"]={formatLoadingMessage:function(){return"Ładowanie, proszę czekać..."},formatRecordsPerPage:function(a){return a+" rekordów na stronę"},formatShowingRows:function(a,b,c){return"Wyświetlanie rekordów od "+a+" do "+b+" z "+c},formatSearch:function(){return"Szukaj"},formatNoMatches:function(){return"Niestety, nic nie znaleziono"},formatRefresh:function(){return"Odśwież"},formatToggle:function(){return"Przełącz"},formatColumns:function(){return"Kolumny"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pl-PL"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["pt-BR"]={formatLoadingMessage:function(){return"Carregando, aguarde..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Exibindo "+a+" até "+b+" de "+c+" linhas"},formatSearch:function(){return"Pesquisar"},formatRefresh:function(){return"Recarregar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Colunas"},formatPaginationSwitch:function(){return"Ocultar/Exibir paginação"},formatNoMatches:function(){return"Nenhum registro encontrado"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pt-BR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["pt-PT"]={formatLoadingMessage:function(){return"A carregar, aguarde..."},formatRecordsPerPage:function(a){return a+" registos por página"},formatShowingRows:function(a,b,c){return"A mostrar "+a+" até "+b+" de "+c+" linhas"},formatSearch:function(){return"Pesquisa"},formatNoMatches:function(){return"Nenhum registo encontrado"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pt-PT"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ro-RO"]={formatLoadingMessage:function(){return"Se incarca, va rugam asteptati..."},formatRecordsPerPage:function(a){return a+" inregistrari pe pagina"},formatShowingRows:function(a,b,c){return"Arata de la "+a+" pana la "+b+" din "+c+" randuri"},formatSearch:function(){return"Cauta"},formatNoMatches:function(){return"Nu au fost gasite inregistrari"},formatPaginationSwitch:function(){return"Ascunde/Arata paginatia"},formatRefresh:function(){return"Reincarca"},formatToggle:function(){return"Comuta"},formatColumns:function(){return"Coloane"},formatAllRows:function(){return"Toate"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ro-RO"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ru-RU"]={formatLoadingMessage:function(){return"Пожалуйста, подождите, идёт загрузка..."},formatRecordsPerPage:function(a){return a+" записей на страницу"},formatShowingRows:function(a,b,c){return"Записи с "+a+" по "+b+" из "+c},formatSearch:function(){return"Поиск"},formatNoMatches:function(){return"Ничего не найдено"},formatRefresh:function(){return"Обновить"},formatToggle:function(){return"Переключить"},formatColumns:function(){return"Колонки"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ru-RU"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["sk-SK"]={formatLoadingMessage:function(){return"Prosím čakajte ..."},formatRecordsPerPage:function(a){return a+" záznamov na stranu"},formatShowingRows:function(a,b,c){return"Zobrazená "+a+". - "+b+". položka z celkových "+c},formatSearch:function(){return"Vyhľadávanie"},formatNoMatches:function(){return"Nenájdená žiadne vyhovujúca položka"},formatRefresh:function(){return"Obnoviť"},formatToggle:function(){return"Prepni"},formatColumns:function(){return"Stĺpce"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["sk-SK"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["sv-SE"]={formatLoadingMessage:function(){return"Laddar, vänligen vänta..."},formatRecordsPerPage:function(a){return a+" rader per sida"},formatShowingRows:function(a,b,c){return"Visa "+a+" till "+b+" av "+c+" rader"},formatSearch:function(){return"Sök"},formatNoMatches:function(){return"Inga matchande resultat funna."},formatRefresh:function(){return"Uppdatera"},formatToggle:function(){return"Skifta"},formatColumns:function(){return"kolumn"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["sv-SE"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["th-TH"]={formatLoadingMessage:function(){return"กำลังโหลดข้อมูล, กรุณารอสักครู่..."},formatRecordsPerPage:function(a){return a+" รายการต่อหน้า"},formatShowingRows:function(a,b,c){return"รายการที่ "+a+" ถึง "+b+" จากทั้งหมด "+c+" รายการ"},formatSearch:function(){return"ค้นหา"},formatNoMatches:function(){return"ไม่พบรายการที่ค้นหา !"},formatRefresh:function(){return"รีเฟรส"},formatToggle:function(){return"สลับมุมมอง"},formatColumns:function(){return"คอลัมน์"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["th-TH"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["tr-TR"]={formatLoadingMessage:function(){return"Yükleniyor, lütfen bekleyin..."},formatRecordsPerPage:function(a){return"Sayfa başına "+a+" kayıt."},formatShowingRows:function(a,b,c){return c+" kayıttan "+a+"-"+b+" arası gösteriliyor."},formatSearch:function(){return"Ara"},formatNoMatches:function(){return"Eşleşen kayıt bulunamadı."},formatRefresh:function(){return"Yenile"},formatToggle:function(){return"Değiştir"},formatColumns:function(){return"Sütunlar"},formatAllRows:function(){return"Tüm Satırlar"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["tr-TR"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["uk-UA"]={formatLoadingMessage:function(){return"Завантаження, будь ласка, зачекайте..."},formatRecordsPerPage:function(a){return a+" записів на сторінку"},formatShowingRows:function(a,b,c){return"Показано з "+a+" по "+b+". Всього: "+c},formatSearch:function(){return"Пошук"},formatNoMatches:function(){return"Не знайдено жодного запису"},formatRefresh:function(){return"Оновити"},formatToggle:function(){return"Змінити"},formatColumns:function(){return"Стовпці"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["uk-UA"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["ur-PK"]={formatLoadingMessage:function(){return"براۓ مہربانی انتظار کیجئے"},formatRecordsPerPage:function(a){return a+" ریکارڈز فی صفہ "},formatShowingRows:function(a,b,c){return"دیکھیں "+a+" سے "+b+" کے "+c+"ریکارڈز"},formatSearch:function(){return"تلاش"},formatNoMatches:function(){return"کوئی ریکارڈ نہیں ملا"},formatRefresh:function(){return"تازہ کریں"},formatToggle:function(){return"تبدیل کریں"},formatColumns:function(){return"کالم"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ur-PK"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["vi-VN"]={formatLoadingMessage:function(){return"Đang tải..."},formatRecordsPerPage:function(a){return a+" bản ghi mỗi trang"},formatShowingRows:function(a,b,c){return"Hiển thị từ trang "+a+" đến "+b+" của "+c+" bảng ghi"},formatSearch:function(){return"Tìm kiếm"},formatNoMatches:function(){return"Không có dữ liệu"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["vi-VN"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery),function(a){"use strict";a.fn.bootstrapTable.locales["zh-TW"]={formatLoadingMessage:function(){return"正在努力地載入資料,請稍候……"},formatRecordsPerPage:function(a){return"每頁顯示 "+a+" 項記錄"},formatShowingRows:function(a,b,c){return"顯示第 "+a+" 到第 "+b+" 項記錄,總共 "+c+" 項記錄"},formatSearch:function(){return"搜尋"},formatNoMatches:function(){return"沒有找符合的結果"},formatPaginationSwitch:function(){return"隱藏/顯示分頁"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切換"},formatColumns:function(){return"列"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-TW"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/bootstrap-table.css b/js/table/bootstrap-table.css
new file mode 100644
index 0000000..66d5631
--- /dev/null
+++ b/js/table/bootstrap-table.css
@@ -0,0 +1,297 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * version: 1.8.1
+ * https://github.com/wenzhixin/bootstrap-table/
+ */
+
+.bootstrap-table .table {
+    margin-bottom: 0 !important;
+    border-bottom: 1px solid #dddddd;
+    border-collapse: collapse !important;
+    border-radius: 1px;
+}
+
+.bootstrap-table .table:not(.table-condensed),
+.bootstrap-table .table:not(.table-condensed) > tbody > tr > th,
+.bootstrap-table .table:not(.table-condensed) > tfoot > tr > th,
+.bootstrap-table .table:not(.table-condensed) > thead > tr > td,
+.bootstrap-table .table:not(.table-condensed) > tbody > tr > td,
+.bootstrap-table .table:not(.table-condensed) > tfoot > tr > td {
+    padding: 8px !important;
+}
+
+.bootstrap-table .table.table-no-bordered > thead > tr > th,
+.bootstrap-table .table.table-no-bordered > tbody > tr > td {
+    border-right: 2px solid transparent;
+}
+
+.fixed-table-container {
+    position: relative;
+    clear: both;
+    border: 1px solid #dddddd;
+    border-radius: 4px;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+}
+
+.fixed-table-container.table-no-bordered {
+    border: 1px solid transparent;
+}
+
+.fixed-table-footer,
+.fixed-table-header {
+    overflow: hidden;
+}
+
+.fixed-table-footer {
+    border-top: 1px solid #dddddd;
+}
+
+.fixed-table-body {
+    overflow-x: auto;
+    overflow-y: auto;
+    height: 100%;
+}
+
+.fixed-table-container table {
+    width: 100%;
+}
+
+.fixed-table-container thead th {
+    height: 0;
+    padding: 0;
+    margin: 0;
+    border-left: 1px solid #dddddd;
+}
+
+.fixed-table-container thead th:first-child {
+    border-left: none;
+    border-top-left-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -moz-border-radius-topleft: 4px;
+}
+
+.fixed-table-container thead th .th-inner,
+.fixed-table-container tbody td .th-inner {
+    padding: 8px;
+    line-height: 24px;
+    vertical-align: top;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.fixed-table-container thead th .sortable {
+    cursor: pointer;
+    background-position: right;
+    background-repeat: no-repeat;
+    padding-right: 30px;
+}
+
+.fixed-table-container thead th .both {
+    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC');
+}
+
+.fixed-table-container thead th .asc {
+    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==');
+}
+
+.fixed-table-container thead th .desc {
+    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= ');
+}
+
+.fixed-table-container th.detail {
+    width: 30px;
+}
+
+.fixed-table-container tbody td {
+    border-left: 1px solid #dddddd;
+}
+
+.fixed-table-container tbody tr:first-child td {
+    border-top: none;
+}
+
+.fixed-table-container tbody td:first-child {
+    border-left: none;
+}
+
+/* the same color with .active */
+.fixed-table-container tbody .selected td {
+    background-color: #f5f5f5;
+}
+
+.fixed-table-container .bs-checkbox {
+    text-align: center;
+}
+
+.fixed-table-container .bs-checkbox .th-inner {
+    padding: 8px 0;
+}
+
+.fixed-table-container input[type="radio"],
+.fixed-table-container input[type="checkbox"] {
+    margin: 0 auto !important;
+}
+
+.fixed-table-container .no-records-found {
+    text-align: center;
+}
+
+.fixed-table-pagination div.pagination,
+.fixed-table-pagination .pagination-detail {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+
+.fixed-table-pagination div.pagination .pagination {
+    margin: 0;
+}
+
+.fixed-table-pagination .pagination a {
+    padding: 6px 12px;
+    line-height: 1.428571429;
+}
+
+.fixed-table-pagination .pagination-info {
+    line-height: 34px;
+    margin-right: 5px;
+}
+
+.fixed-table-pagination .btn-group {
+    position: relative;
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.fixed-table-pagination .dropup .dropdown-menu {
+    margin-bottom: 0;
+}
+
+.fixed-table-pagination .page-list {
+    display: inline-block;
+}
+
+.fixed-table-toolbar .columns-left {
+    margin-right: 5px;
+}
+
+.fixed-table-toolbar .columns-right {
+    margin-left: 5px;
+}
+
+.fixed-table-toolbar .columns label {
+    display: block;
+    padding: 3px 20px;
+    clear: both;
+    font-weight: normal;
+    line-height: 1.428571429;
+}
+
+.fixed-table-toolbar .bars,
+.fixed-table-toolbar .search,
+.fixed-table-toolbar .columns {
+    position: relative;
+    margin-top: 10px;
+    margin-bottom: 10px;
+    line-height: 34px;
+}
+
+.fixed-table-pagination li.disabled a {
+    pointer-events: none;
+    cursor: default;
+}
+
+.fixed-table-loading {
+    display: none;
+    position: absolute;
+    top: 42px;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 99;
+    background-color: #fff;
+    text-align: center;
+}
+
+.fixed-table-body .card-view .title {
+    font-weight: bold;
+    display: inline-block;
+    min-width: 30%;
+    text-align: left !important;
+}
+
+/* support bootstrap 2 */
+.fixed-table-body thead th .th-inner {
+    box-sizing: border-box;
+}
+
+.table th, .table td {
+    vertical-align: middle;
+    box-sizing: border-box;
+}
+
+.fixed-table-toolbar .dropdown-menu {
+    text-align: left;
+    max-height: 300px;
+    overflow: auto;
+}
+
+.fixed-table-toolbar .btn-group > .btn-group {
+    display: inline-block;
+    margin-left: -1px !important;
+}
+
+.fixed-table-toolbar .btn-group > .btn-group > .btn {
+    border-radius: 0;
+}
+
+.fixed-table-toolbar .btn-group > .btn-group:first-child > .btn {
+    border-top-left-radius: 4px;
+    border-bottom-left-radius: 4px;
+}
+
+.fixed-table-toolbar .btn-group > .btn-group:last-child > .btn {
+    border-top-right-radius: 4px;
+    border-bottom-right-radius: 4px;
+}
+
+.bootstrap-table .table > thead > tr > th {
+    vertical-align: bottom;
+    border-bottom: 1px solid #ddd;
+}
+
+/* support bootstrap 3 */
+.bootstrap-table .table thead > tr > th {
+    padding: 0;
+    margin: 0;
+}
+
+.bootstrap-table .fixed-table-footer tbody > tr > td {
+    padding: 0 !important;
+}
+
+.bootstrap-table .fixed-table-footer .table {
+    border-bottom: none;
+    border-radius: 0;
+}
+
+.pull-right .dropdown-menu {
+    right: 0;
+    left: auto;
+}
+
+/* calculate scrollbar width */
+p.fixed-table-scroll-inner {
+    width: 100%;
+    height: 200px;
+}
+
+div.fixed-table-scroll-outer {
+    top: 0;
+    left: 0;
+    visibility: hidden;
+    width: 200px;
+    height: 150px;
+    overflow: hidden;
+}
diff --git a/js/table/bootstrap-table.js b/js/table/bootstrap-table.js
new file mode 100644
index 0000000..f8715e9
--- /dev/null
+++ b/js/table/bootstrap-table.js
@@ -0,0 +1,2690 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * version: 1.9.1
+ * https://github.com/wenzhixin/bootstrap-table/
+ */
+
+!function ($) {
+    'use strict';
+
+    // TOOLS DEFINITION
+    // ======================
+
+    var cachedWidth = null;
+
+    // it only does '%s', and return '' when arguments are undefined
+    var sprintf = function (str) {
+        var args = arguments,
+            flag = true,
+            i = 1;
+
+        str = str.replace(/%s/g, function () {
+            var arg = args[i++];
+
+            if (typeof arg === 'undefined') {
+                flag = false;
+                return '';
+            }
+            return arg;
+        });
+        return flag ? str : '';
+    };
+
+    var getPropertyFromOther = function (list, from, to, value) {
+        var result = '';
+        $.each(list, function (i, item) {
+            if (item[from] === value) {
+                result = item[to];
+                return false;
+            }
+            return true;
+        });
+        return result;
+    };
+
+    var getFieldIndex = function (columns, field) {
+        var index = -1;
+
+        $.each(columns, function (i, column) {
+            if (column.field === field) {
+                index = i;
+                return false;
+            }
+            return true;
+        });
+        return index;
+    };
+
+    // http://jsfiddle.net/wenyi/47nz7ez9/3/
+    var setFieldIndex = function (columns) {
+        var i, j, k,
+            totalCol = 0,
+            flag = [];
+
+        for (i = 0; i < columns[0].length; i++) {
+            totalCol += columns[0][i].colspan || 1;
+        }
+
+        for (i = 0; i < columns.length; i++) {
+            flag[i] = [];
+            for (j = 0; j < totalCol; j++) {
+                flag[i][j] = false;
+            }
+        }
+
+        for (i = 0; i < columns.length; i++) {
+            for (j = 0; j < columns[i].length; j++) {
+                var r = columns[i][j],
+                    rowspan = r.rowspan || 1,
+                    colspan = r.colspan || 1,
+                    index = $.inArray(false, flag[i]);
+
+                if (colspan === 1) {
+                    r.fieldIndex = index;
+                    // when field is undefined, use index instead
+                    if (typeof r.field === 'undefined') {
+                        r.field = index;
+                    }
+                }
+
+                for (k = 0; k < rowspan; k++) {
+                    flag[i + k][index] = true;
+                }
+                for (k = 0; k < colspan; k++) {
+                    flag[i][index + k] = true;
+                }
+            }
+        }
+    };
+
+    var getScrollBarWidth = function () {
+        if (cachedWidth === null) {
+            var inner = $('<p/>').addClass('fixed-table-scroll-inner'),
+                outer = $('<div/>').addClass('fixed-table-scroll-outer'),
+                w1, w2;
+
+            outer.append(inner);
+            $('body').append(outer);
+
+            w1 = inner[0].offsetWidth;
+            outer.css('overflow', 'scroll');
+            w2 = inner[0].offsetWidth;
+
+            if (w1 === w2) {
+                w2 = outer[0].clientWidth;
+            }
+
+            outer.remove();
+            cachedWidth = w1 - w2;
+        }
+        return cachedWidth;
+    };
+
+    var calculateObjectValue = function (self, name, args, defaultValue) {
+        var func = name;
+
+        if (typeof name === 'string') {
+            // support obj.func1.func2
+            var names = name.split('.');
+
+            if (names.length > 1) {
+                func = window;
+                $.each(names, function (i, f) {
+                    func = func[f];
+                });
+            } else {
+                func = window[name];
+            }
+        }
+        if (typeof func === 'object') {
+            return func;
+        }
+        if (typeof func === 'function') {
+            return func.apply(self, args);
+        }
+        if (!func && typeof name === 'string' && sprintf.apply(this, [name].concat(args))) {
+            return sprintf.apply(this, [name].concat(args));
+        }
+        return defaultValue;
+    };
+
+    var compareObjects = function (objectA, objectB, compareLength) {
+        // Create arrays of property names
+        var objectAProperties = Object.getOwnPropertyNames(objectA),
+            objectBProperties = Object.getOwnPropertyNames(objectB),
+            propName = '';
+
+        if (compareLength) {
+            // If number of properties is different, objects are not equivalent
+            if (objectAProperties.length !== objectBProperties.length) {
+                return false;
+            }
+        }
+
+        for (var i = 0; i < objectAProperties.length; i++) {
+            propName = objectAProperties[i];
+
+            // If the property is not in the object B properties, continue with the next property
+            if ($.inArray(propName, objectBProperties) > -1) {
+                // If values of same property are not equal, objects are not equivalent
+                if (objectA[propName] !== objectB[propName]) {
+                    return false;
+                }
+            }
+        }
+
+        // If we made it this far, objects are considered equivalent
+        return true;
+    };
+
+    var escapeHTML = function (text) {
+        if (typeof text === 'string') {
+            return text
+                .replace(/&/g, "&amp;")
+                .replace(/</g, "&lt;")
+                .replace(/>/g, "&gt;")
+                .replace(/"/g, "&quot;")
+                .replace(/'/g, "&#039;");
+        }
+        return text;
+    };
+
+    var getRealHeight = function ($el) {
+        var height = 0;
+        $el.children().each(function () {
+            if (height < $(this).outerHeight(true)) {
+                height = $(this).outerHeight(true);
+            }
+        });
+        return height;
+    };
+
+    var getRealDataAttr = function (dataAttr) {
+        for (var attr in dataAttr) {
+            var auxAttr = attr.split(/(?=[A-Z])/).join('-').toLowerCase();
+            if (auxAttr !== attr) {
+                dataAttr[auxAttr] = dataAttr[attr];
+                delete dataAttr[attr];
+            }
+        }
+
+        return dataAttr;
+    };
+
+    var getItemField = function (item, field) {
+        var value = item;
+
+        if (typeof field !== 'string' || item.hasOwnProperty(field)) {
+            return item[field];
+        }
+        var props = field.split('.');
+        for (var p in props) {
+            value = value[props[p]];
+        }
+        return value;
+    };
+
+    // BOOTSTRAP TABLE CLASS DEFINITION
+    // ======================
+
+    var BootstrapTable = function (el, options) {
+        this.options = options;
+        this.$el = $(el);
+        this.$el_ = this.$el.clone();
+        this.timeoutId_ = 0;
+        this.timeoutFooter_ = 0;
+
+        this.init();
+    };
+
+    BootstrapTable.DEFAULTS = {
+        classes: 'table table-hover',
+        locale: undefined,
+        height: undefined,
+        undefinedText: '-',
+        sortName: undefined,
+        sortOrder: 'asc',
+        striped: false,
+        columns: [[]],
+        data: [],
+        dataField: 'rows',
+        method: 'get',
+        url: undefined,
+        ajax: undefined,
+        cache: true,
+        contentType: 'application/json',
+        dataType: 'json',
+        ajaxOptions: {},
+        queryParams: function (params) {
+            return params;
+        },
+        queryParamsType: 'limit', // undefined
+        responseHandler: function (res) {
+            return res;
+        },
+        pagination: false,
+        onlyInfoPagination: false,
+        sidePagination: 'client', // client or server
+        totalRows: 0, // server side need to set
+        pageNumber: 1,
+        pageSize: 10,
+        pageList: [10, 25, 50, 100],
+        paginationHAlign: 'right', //right, left
+        paginationVAlign: 'bottom', //bottom, top, both
+        paginationDetailHAlign: 'left', //right, left
+        paginationFirstText: '&laquo;',
+        paginationPreText: '&lsaquo;',
+        paginationNextText: '&rsaquo;',
+        paginationLastText: '&raquo;',
+        search: false,
+        strictSearch: false,
+        searchAlign: 'right',
+        selectItemName: 'btSelectItem',
+        showHeader: true,
+        showFooter: false,
+        showColumns: false,
+        showPaginationSwitch: false,
+        showRefresh: false,
+        showToggle: false,
+        buttonsAlign: 'right',
+        smartDisplay: true,
+        minimumCountColumns: 1,
+        idField: undefined,
+        uniqueId: undefined,
+        cardView: false,
+        detailView: false,
+        detailFormatter: function (index, row) {
+            return '';
+        },
+        trimOnSearch: true,
+        clickToSelect: false,
+        singleSelect: false,
+        toolbar: undefined,
+        toolbarAlign: 'left',
+        checkboxHeader: true,
+        sortable: true,
+        silentSort: true,
+        maintainSelected: false,
+        searchTimeOut: 500,
+        searchText: '',
+        iconSize: undefined,
+        iconsPrefix: 'glyphicon', // glyphicon of fa (font awesome)
+        icons: {
+            paginationSwitchDown: 'glyphicon-collapse-down icon-chevron-down',
+            paginationSwitchUp: 'glyphicon-collapse-up icon-chevron-up',
+            refresh: 'glyphicon-refresh icon-refresh',
+            toggle: 'glyphicon-list-alt icon-list-alt',
+            columns: 'glyphicon-th icon-th',
+            detailOpen: 'glyphicon-plus icon-plus',
+            detailClose: 'glyphicon-minus icon-minus'
+        },
+
+        rowStyle: function (row, index) {
+            return {};
+        },
+
+        rowAttributes: function (row, index) {
+            return {};
+        },
+
+        onAll: function (name, args) {
+            return false;
+        },
+        onClickCell: function (field, value, row, $element) {
+            return false;
+        },
+        onDblClickCell: function (field, value, row, $element) {
+            return false;
+        },
+        onClickRow: function (item, $element) {
+            return false;
+        },
+        onDblClickRow: function (item, $element) {
+            return false;
+        },
+        onSort: function (name, order) {
+            return false;
+        },
+        onCheck: function (row) {
+            return false;
+        },
+        onUncheck: function (row) {
+            return false;
+        },
+        onCheckAll: function (rows) {
+            return false;
+        },
+        onUncheckAll: function (rows) {
+            return false;
+        },
+        onCheckSome: function (rows) {
+            return false;
+        },
+        onUncheckSome: function (rows) {
+            return false;
+        },
+        onLoadSuccess: function (data) {
+            return false;
+        },
+        onLoadError: function (status) {
+            return false;
+        },
+        onColumnSwitch: function (field, checked) {
+            return false;
+        },
+        onPageChange: function (number, size) {
+            return false;
+        },
+        onSearch: function (text) {
+            return false;
+        },
+        onToggle: function (cardView) {
+            return false;
+        },
+        onPreBody: function (data) {
+            return false;
+        },
+        onPostBody: function () {
+            return false;
+        },
+        onPostHeader: function () {
+            return false;
+        },
+        onExpandRow: function (index, row, $detail) {
+            return false;
+        },
+        onCollapseRow: function (index, row) {
+            return false;
+        },
+        onRefreshOptions: function (options) {
+            return false;
+        },
+        onResetView: function () {
+            return false;
+        }
+    };
+
+    BootstrapTable.LOCALES = [];
+
+    BootstrapTable.LOCALES['en-US'] = BootstrapTable.LOCALES['en'] = {
+        formatLoadingMessage: function () {
+            return 'Loading, please wait...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return sprintf('%s records per page', pageNumber);
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return sprintf('Showing %s to %s of %s rows', pageFrom, pageTo, totalRows);
+        },
+        formatDetailPagination: function (totalRows) {
+            return sprintf('Showing %s rows', totalRows);
+        },
+        formatSearch: function () {
+            return 'Search';
+        },
+        formatNoMatches: function () {
+            return 'No matching records found';
+        },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
+        formatRefresh: function () {
+            return 'Refresh';
+        },
+        formatToggle: function () {
+            return 'Toggle';
+        },
+        formatColumns: function () {
+            return 'Columns';
+        },
+        formatAllRows: function () {
+            return 'All';
+        }
+    };
+
+    $.extend(BootstrapTable.DEFAULTS, BootstrapTable.LOCALES['en-US']);
+
+    BootstrapTable.COLUMN_DEFAULTS = {
+        radio: false,
+        checkbox: false,
+        checkboxEnabled: true,
+        field: undefined,
+        title: undefined,
+        titleTooltip: undefined,
+        'class': undefined,
+        align: undefined, // left, right, center
+        halign: undefined, // left, right, center
+        falign: undefined, // left, right, center
+        valign: undefined, // top, middle, bottom
+        width: undefined,
+        sortable: false,
+        order: 'asc', // asc, desc
+        visible: true,
+        switchable: true,
+        clickToSelect: true,
+        formatter: undefined,
+        footerFormatter: undefined,
+        events: undefined,
+        sorter: undefined,
+        sortName: undefined,
+        cellStyle: undefined,
+        searchable: true,
+        searchFormatter: true,
+        cardVisible: true
+    };
+
+    BootstrapTable.EVENTS = {
+        'all.bs.table': 'onAll',
+        'click-cell.bs.table': 'onClickCell',
+        'dbl-click-cell.bs.table': 'onDblClickCell',
+        'click-row.bs.table': 'onClickRow',
+        'dbl-click-row.bs.table': 'onDblClickRow',
+        'sort.bs.table': 'onSort',
+        'check.bs.table': 'onCheck',
+        'uncheck.bs.table': 'onUncheck',
+        'check-all.bs.table': 'onCheckAll',
+        'uncheck-all.bs.table': 'onUncheckAll',
+        'check-some.bs.table': 'onCheckSome',
+        'uncheck-some.bs.table': 'onUncheckSome',
+        'load-success.bs.table': 'onLoadSuccess',
+        'load-error.bs.table': 'onLoadError',
+        'column-switch.bs.table': 'onColumnSwitch',
+        'page-change.bs.table': 'onPageChange',
+        'search.bs.table': 'onSearch',
+        'toggle.bs.table': 'onToggle',
+        'pre-body.bs.table': 'onPreBody',
+        'post-body.bs.table': 'onPostBody',
+        'post-header.bs.table': 'onPostHeader',
+        'expand-row.bs.table': 'onExpandRow',
+        'collapse-row.bs.table': 'onCollapseRow',
+        'refresh-options.bs.table': 'onRefreshOptions',
+        'reset-view.bs.table': 'onResetView'
+    };
+
+    BootstrapTable.prototype.init = function () {
+        this.initLocale();
+        this.initContainer();
+        this.initTable();
+        this.initHeader();
+        this.initData();
+        this.initFooter();
+        this.initToolbar();
+        this.initPagination();
+        this.initBody();
+        this.initSearchText();
+        this.initServer();
+    };
+
+    BootstrapTable.prototype.initLocale = function () {
+        if (this.options.locale) {
+            var parts = this.options.locale.split(/-|_/);
+            parts[0].toLowerCase();
+            parts[1] && parts[1].toUpperCase();
+            if ($.fn.bootstrapTable.locales[this.options.locale]) {
+                // locale as requested
+                $.extend(this.options, $.fn.bootstrapTable.locales[this.options.locale]);
+            } else if ($.fn.bootstrapTable.locales[parts.join('-')]) {
+                // locale with sep set to - (in case original was specified with _)
+                $.extend(this.options, $.fn.bootstrapTable.locales[parts.join('-')]);
+            } else if ($.fn.bootstrapTable.locales[parts[0]]) {
+                // short locale language code (i.e. 'en')
+                $.extend(this.options, $.fn.bootstrapTable.locales[parts[0]]);
+            }
+        }
+    };
+
+    BootstrapTable.prototype.initContainer = function () {
+        this.$container = $([
+            '<div class="bootstrap-table">',
+            '<div class="fixed-table-toolbar"></div>',
+            this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?
+                '<div class="fixed-table-pagination" style="clear: both;"></div>' :
+                '',
+            '<div class="fixed-table-container">',
+            '<div class="fixed-table-header"><table></table></div>',
+            '<div class="fixed-table-body">',
+            '<div class="fixed-table-loading">',
+            this.options.formatLoadingMessage(),
+            '</div>',
+            '</div>',
+            '<div class="fixed-table-footer"><table><tr></tr></table></div>',
+            this.options.paginationVAlign === 'bottom' || this.options.paginationVAlign === 'both' ?
+                '<div class="fixed-table-pagination"></div>' :
+                '',
+            '</div>',
+            '</div>'
+        ].join(''));
+
+        this.$container.insertAfter(this.$el);
+        this.$tableContainer = this.$container.find('.fixed-table-container');
+        this.$tableHeader = this.$container.find('.fixed-table-header');
+        this.$tableBody = this.$container.find('.fixed-table-body');
+        this.$tableLoading = this.$container.find('.fixed-table-loading');
+        this.$tableFooter = this.$container.find('.fixed-table-footer');
+        this.$toolbar = this.$container.find('.fixed-table-toolbar');
+        this.$pagination = this.$container.find('.fixed-table-pagination');
+
+        this.$tableBody.append(this.$el);
+        this.$container.after('<div class="clearfix"></div>');
+
+        this.$el.addClass(this.options.classes);
+        if (this.options.striped) {
+            this.$el.addClass('table-striped');
+        }
+        if ($.inArray('table-no-bordered', this.options.classes.split(' ')) !== -1) {
+            this.$tableContainer.addClass('table-no-bordered');
+        }
+    };
+
+    BootstrapTable.prototype.initTable = function () {
+        var that = this,
+            columns = [],
+            data = [];
+
+        this.$header = this.$el.find('>thead');
+        if (!this.$header.length) {
+            this.$header = $('<thead></thead>').appendTo(this.$el);
+        }
+        this.$header.find('tr').each(function () {
+            var column = [];
+
+            $(this).find('th').each(function () {
+                column.push($.extend({}, {
+                    title: $(this).html(),
+                    'class': $(this).attr('class'),
+                    titleTooltip: $(this).attr('title'),
+                    rowspan: $(this).attr('rowspan') ? +$(this).attr('rowspan') : undefined,
+                    colspan: $(this).attr('colspan') ? +$(this).attr('colspan') : undefined
+                }, $(this).data()));
+            });
+            columns.push(column);
+        });
+        if (!$.isArray(this.options.columns[0])) {
+            this.options.columns = [this.options.columns];
+        }
+        this.options.columns = $.extend(true, [], columns, this.options.columns);
+        this.columns = [];
+
+        setFieldIndex(this.options.columns);
+        $.each(this.options.columns, function (i, columns) {
+            $.each(columns, function (j, column) {
+                column = $.extend({}, BootstrapTable.COLUMN_DEFAULTS, column);
+
+                if (typeof column.fieldIndex !== 'undefined') {
+                    that.columns[column.fieldIndex] = column;
+                }
+
+                that.options.columns[i][j] = column;
+            });
+        });
+
+        // if options.data is setting, do not process tbody data
+        if (this.options.data.length) {
+            return;
+        }
+
+        this.$el.find('>tbody>tr').each(function () {
+            var row = {};
+
+            // save tr's id, class and data-* attributes
+            row._id = $(this).attr('id');
+            row._class = $(this).attr('class');
+            row._data = getRealDataAttr($(this).data());
+
+            $(this).find('td').each(function (i) {
+                var field = that.columns[i].field;
+
+                row[field] = $(this).html();
+                // save td's id, class and data-* attributes
+                row['_' + field + '_id'] = $(this).attr('id');
+                row['_' + field + '_class'] = $(this).attr('class');
+                row['_' + field + '_rowspan'] = $(this).attr('rowspan');
+                row['_' + field + '_title'] = $(this).attr('title');
+                row['_' + field + '_data'] = getRealDataAttr($(this).data());
+            });
+            data.push(row);
+        });
+        this.options.data = data;
+    };
+
+    BootstrapTable.prototype.initHeader = function () {
+        var that = this,
+            visibleColumns = {},
+            html = [];
+
+        this.header = {
+            fields: [],
+            styles: [],
+            classes: [],
+            formatters: [],
+            events: [],
+            sorters: [],
+            sortNames: [],
+            cellStyles: [],
+            searchables: []
+        };
+
+        $.each(this.options.columns, function (i, columns) {
+            html.push('<tr>');
+
+            if (i == 0 && !that.options.cardView && that.options.detailView) {
+                html.push(sprintf('<th class="detail" rowspan="%s"><div class="fht-cell"></div></th>',
+                    that.options.columns.length));
+            }
+
+            $.each(columns, function (j, column) {
+                var text = '',
+                    halign = '', // header align style
+                    align = '', // body align style
+                    style = '',
+                    class_ = sprintf(' class="%s"', column['class']),
+                    order = that.options.sortOrder || column.order,
+                    unitWidth = 'px',
+                    width = column.width;
+
+                if (column.width !== undefined && (!that.options.cardView)) {
+                    if (typeof column.width === 'string') {
+                        if (column.width.indexOf('%') !== -1) {
+                            unitWidth = '%';
+                        }
+                    }
+                }
+                if (column.width && typeof column.width === 'string') {
+                    width = column.width.replace('%', '').replace('px', '');
+                }
+
+                halign = sprintf('text-align: %s; ', column.halign ? column.halign : column.align);
+                align = sprintf('text-align: %s; ', column.align);
+                style = sprintf('vertical-align: %s; ', column.valign);
+                style += sprintf('width: %s; ', (column.checkbox || column.radio) && !width ?
+                    '36px' : (width ? width + unitWidth : undefined));
+
+                if (typeof column.fieldIndex !== 'undefined') {
+                    that.header.fields[column.fieldIndex] = column.field;
+                    that.header.styles[column.fieldIndex] = align + style;
+                    that.header.classes[column.fieldIndex] = class_;
+                    that.header.formatters[column.fieldIndex] = column.formatter;
+                    that.header.events[column.fieldIndex] = column.events;
+                    that.header.sorters[column.fieldIndex] = column.sorter;
+                    that.header.sortNames[column.fieldIndex] = column.sortName;
+                    that.header.cellStyles[column.fieldIndex] = column.cellStyle;
+                    that.header.searchables[column.fieldIndex] = column.searchable;
+
+                    if (!column.visible) {
+                        return;
+                    }
+
+                    if (that.options.cardView && (!column.cardVisible)) {
+                        return;
+                    }
+
+                    visibleColumns[column.field] = column;
+                }
+
+                html.push('<th' + sprintf(' title="%s"', column.titleTooltip),
+                    column.checkbox || column.radio ?
+                        sprintf(' class="bs-checkbox %s"', column['class'] || '') :
+                        class_,
+                    sprintf(' style="%s"', halign + style),
+                    sprintf(' rowspan="%s"', column.rowspan),
+                    sprintf(' colspan="%s"', column.colspan),
+                    sprintf(' data-field="%s"', column.field),
+                    "tabindex='0'",
+                    '>');
+
+                html.push(sprintf('<div class="th-inner %s">', that.options.sortable && column.sortable ?
+                    'sortable both' : ''));
+
+                text = column.title;
+
+                if (column.checkbox) {
+                    if (!that.options.singleSelect && that.options.checkboxHeader) {
+                        text = '<input name="btSelectAll" type="checkbox" />';
+                    }
+                    that.header.stateField = column.field;
+                }
+                if (column.radio) {
+                    text = '';
+                    that.header.stateField = column.field;
+                    that.options.singleSelect = true;
+                }
+
+                html.push(text);
+                html.push('</div>');
+                html.push('<div class="fht-cell"></div>');
+                html.push('</div>');
+                html.push('</th>');
+            });
+            html.push('</tr>');
+        });
+
+        this.$header.html(html.join(''));
+        this.$header.find('th[data-field]').each(function (i) {
+            $(this).data(visibleColumns[$(this).data('field')]);
+        });
+        this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {
+            if (that.options.sortable && $(this).parent().data().sortable) {
+                that.onSort(event);
+            }
+        });
+
+        this.$header.children().children().off('keypress').on('keypress', function (event) {
+            if (that.options.sortable && $(this).data().sortable) {
+                var code = event.keyCode || event.which;
+                if (code == 13) { //Enter keycode
+                    that.onSort(event);
+                }
+            }
+        });
+
+        if (!this.options.showHeader || this.options.cardView) {
+            this.$header.hide();
+            this.$tableHeader.hide();
+            this.$tableLoading.css('top', 0);
+        } else {
+            this.$header.show();
+            this.$tableHeader.show();
+            this.$tableLoading.css('top', this.$header.outerHeight() + 1);
+            // Assign the correct sortable arrow
+            this.getCaret();
+        }
+
+        this.$selectAll = this.$header.find('[name="btSelectAll"]');
+        this.$container.off('click', '[name="btSelectAll"]')
+            .on('click', '[name="btSelectAll"]', function () {
+                var checked = $(this).prop('checked');
+                that[checked ? 'checkAll' : 'uncheckAll']();
+                that.updateSelected();
+            });
+    };
+
+    BootstrapTable.prototype.initFooter = function () {
+        if (!this.options.showFooter || this.options.cardView) {
+            this.$tableFooter.hide();
+        } else {
+            this.$tableFooter.show();
+        }
+    };
+
+    /**
+     * @param data
+     * @param type: append / prepend
+     */
+    BootstrapTable.prototype.initData = function (data, type) {
+        if (type === 'append') {
+            this.data = this.data.concat(data);
+        } else if (type === 'prepend') {
+            this.data = [].concat(data).concat(this.data);
+        } else {
+            this.data = data || this.options.data;
+        }
+
+        // Fix #839 Records deleted when adding new row on filtered table
+        if (type === 'append') {
+            this.options.data = this.options.data.concat(data);
+        } else if (type === 'prepend') {
+            this.options.data = [].concat(data).concat(this.options.data);
+        } else {
+            this.options.data = this.data;
+        }
+
+        if (this.options.sidePagination === 'server') {
+            return;
+        }
+        this.initSort();
+    };
+
+    BootstrapTable.prototype.initSort = function () {
+        var that = this,
+            name = this.options.sortName,
+            order = this.options.sortOrder === 'desc' ? -1 : 1,
+            index = $.inArray(this.options.sortName, this.header.fields);
+
+        if (index !== -1) {
+            this.data.sort(function (a, b) {
+                if (that.header.sortNames[index]) {
+                    name = that.header.sortNames[index];
+                }
+                var aa = getItemField(a, name),
+                    bb = getItemField(b, name),
+                    value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);
+
+                if (value !== undefined) {
+                    return order * value;
+                }
+
+                // Fix #161: undefined or null string sort bug.
+                if (aa === undefined || aa === null) {
+                    aa = '';
+                }
+                if (bb === undefined || bb === null) {
+                    bb = '';
+                }
+
+                // IF both values are numeric, do a numeric comparison
+                if ($.isNumeric(aa) && $.isNumeric(bb)) {
+                    // Convert numerical values form string to float.
+                    aa = parseFloat(aa);
+                    bb = parseFloat(bb);
+                    if (aa < bb) {
+                        return order * -1;
+                    }
+                    return order;
+                }
+
+                if (aa === bb) {
+                    return 0;
+                }
+
+                // If value is not a string, convert to string
+                if (typeof aa !== 'string') {
+                    aa = aa.toString();
+                }
+
+                if (aa.localeCompare(bb) === -1) {
+                    return order * -1;
+                }
+
+                return order;
+            });
+        }
+    };
+
+    BootstrapTable.prototype.onSort = function (event) {
+        var $this = event.type === "keypress" ? $(event.currentTarget) : $(event.currentTarget).parent(),
+            $this_ = this.$header.find('th').eq($this.index());
+
+        this.$header.add(this.$header_).find('span.order').remove();
+
+        if (this.options.sortName === $this.data('field')) {
+            this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';
+        } else {
+            this.options.sortName = $this.data('field');
+            this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';
+        }
+        this.trigger('sort', this.options.sortName, this.options.sortOrder);
+
+        $this.add($this_).data('order', this.options.sortOrder);
+
+        // Assign the correct sortable arrow
+        this.getCaret();
+
+        if (this.options.sidePagination === 'server') {
+            this.initServer(this.options.silentSort);
+            return;
+        }
+
+        this.initSort();
+        this.initBody();
+    };
+
+    BootstrapTable.prototype.initToolbar = function () {
+        var that = this,
+            html = [],
+            timeoutId = 0,
+            $keepOpen,
+            $search,
+            switchableCount = 0;
+
+        this.$toolbar.html('');
+
+        if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {
+            $(sprintf('<div class="bars pull-%s"></div>', this.options.toolbarAlign))
+                .appendTo(this.$toolbar)
+                .append($(this.options.toolbar));
+        }
+
+        // showColumns, showToggle, showRefresh
+        html = [sprintf('<div class="columns columns-%s btn-group pull-%s">',
+            this.options.buttonsAlign, this.options.buttonsAlign)];
+
+        if (typeof this.options.icons === 'string') {
+            this.options.icons = calculateObjectValue(null, this.options.icons);
+        }
+
+        if (this.options.showPaginationSwitch) {
+            html.push(sprintf('<button class="btn btn-default" type="button" name="paginationSwitch" title="%s">',
+                    this.options.formatPaginationSwitch()),
+                sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.paginationSwitchDown),
+                '</button>');
+        }
+
+        if (this.options.showRefresh) {
+            html.push(sprintf('<button class="btn btn-default' +
+                    sprintf(' btn-%s', this.options.iconSize) +
+                    '" type="button" name="refresh" title="%s">',
+                    this.options.formatRefresh()),
+                sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.refresh),
+                '</button>');
+        }
+
+        if (this.options.showToggle) {
+            html.push(sprintf('<button class="btn btn-default' +
+                    sprintf(' btn-%s', this.options.iconSize) +
+                    '" type="button" name="toggle" title="%s">',
+                    this.options.formatToggle()),
+                sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.toggle),
+                '</button>');
+        }
+
+        if (this.options.showColumns) {
+            html.push(sprintf('<div class="keep-open btn-group" title="%s">',
+                    this.options.formatColumns()),
+                '<button type="button" class="btn btn-default' +
+                sprintf(' btn-%s', this.options.iconSize) +
+                ' dropdown-toggle" data-toggle="dropdown">',
+                sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.columns),
+                ' <span class="caret"></span>',
+                '</button>',
+                '<ul class="dropdown-menu" role="menu">');
+
+            $.each(this.columns, function (i, column) {
+                if (column.radio || column.checkbox) {
+                    return;
+                }
+
+                if (that.options.cardView && (!column.cardVisible)) {
+                    return;
+                }
+
+                var checked = column.visible ? ' checked="checked"' : '';
+
+                if (column.switchable) {
+                    html.push(sprintf('<li>' +
+                        '<label><input type="checkbox" data-field="%s" value="%s"%s> %s</label>' +
+                        '</li>', column.field, i, checked, column.title));
+                    switchableCount++;
+                }
+            });
+            html.push('</ul>',
+                '</div>');
+        }
+
+        html.push('</div>');
+
+        // Fix #188: this.showToolbar is for extentions
+        if (this.showToolbar || html.length > 2) {
+            this.$toolbar.append(html.join(''));
+        }
+
+        if (this.options.showPaginationSwitch) {
+            this.$toolbar.find('button[name="paginationSwitch"]')
+                .off('click').on('click', $.proxy(this.togglePagination, this));
+        }
+
+        if (this.options.showRefresh) {
+            this.$toolbar.find('button[name="refresh"]')
+                .off('click').on('click', $.proxy(this.refresh, this));
+        }
+
+        if (this.options.showToggle) {
+            this.$toolbar.find('button[name="toggle"]')
+                .off('click').on('click', function () {
+                    that.toggleView();
+                });
+        }
+
+        if (this.options.showColumns) {
+            $keepOpen = this.$toolbar.find('.keep-open');
+
+            if (switchableCount <= this.options.minimumCountColumns) {
+                $keepOpen.find('input').prop('disabled', true);
+            }
+
+            $keepOpen.find('li').off('click').on('click', function (event) {
+                event.stopImmediatePropagation();
+            });
+            $keepOpen.find('input').off('click').on('click', function () {
+                var $this = $(this);
+
+                that.toggleColumn(getFieldIndex(that.columns,
+                    $(this).data('field')), $this.prop('checked'), false);
+                that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));
+            });
+        }
+
+        if (this.options.search) {
+            html = [];
+            html.push(
+                '<div class="pull-' + this.options.searchAlign + ' search">',
+                sprintf('<input class="form-control' +
+                    sprintf(' input-%s', this.options.iconSize) +
+                    '" type="text" placeholder="%s">',
+                    this.options.formatSearch()),
+                '</div>');
+
+            this.$toolbar.append(html.join(''));
+            $search = this.$toolbar.find('.search input');
+            $search.off('keyup drop').on('keyup drop', function (event) {
+                clearTimeout(timeoutId); // doesn't matter if it's 0
+                timeoutId = setTimeout(function () {
+                    that.onSearch(event);
+                }, that.options.searchTimeOut);
+            });
+        }
+    };
+
+    BootstrapTable.prototype.onSearch = function (event) {
+        var text = $.trim($(event.currentTarget).val());
+
+        // trim search input
+        if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {
+            $(event.currentTarget).val(text);
+        }
+
+        if (text === this.searchText) {
+            return;
+        }
+        this.searchText = text;
+
+        this.options.pageNumber = 1;
+        this.initSearch();
+        this.updatePagination();
+        this.trigger('search', text);
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        var that = this;
+
+        if (this.options.sidePagination !== 'server') {
+            var s = this.searchText && this.searchText.toLowerCase();
+            var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;
+
+            // Check filter
+            this.data = f ? $.grep(this.options.data, function (item, i) {
+                for (var key in f) {
+                    if ($.isArray(f[key])) {
+                        if ($.inArray(item[key], f[key]) === -1) {
+                            return false;
+                        }
+                    } else if (item[key] !== f[key]) {
+                        return false;
+                    }
+                }
+                return true;
+            }) : this.options.data;
+
+            this.data = s ? $.grep(this.data, function (item, i) {
+                for (var key in item) {
+                    key = $.isNumeric(key) ? parseInt(key, 10) : key;
+                    var value = item[key],
+                        column = that.columns[getFieldIndex(that.columns, key)],
+                        j = $.inArray(key, that.header.fields);
+
+                    // Fix #142: search use formated data
+                    if (column && column.searchFormatter) {
+                        value = calculateObjectValue(column,
+                            that.header.formatters[j], [value, item, i], value);
+                    }
+
+                    var index = $.inArray(key, that.header.fields);
+                    if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {
+                        if (that.options.strictSearch) {
+                            if ((value + '').toLowerCase() === s) {
+                                return true;
+                            }
+                        } else {
+                            if ((value + '').toLowerCase().indexOf(s) !== -1) {
+                                return true;
+                            }
+                        }
+                    }
+                }
+                return false;
+            }) : this.data;
+        }
+    };
+
+    BootstrapTable.prototype.initPagination = function () {
+        if (!this.options.pagination) {
+            this.$pagination.hide();
+            return;
+        } else {
+            this.$pagination.show();
+        }
+
+        var that = this,
+            html = [],
+            $allSelected = false,
+            i, from, to,
+            $pageList,
+            $first, $pre,
+            $next, $last,
+            $number,
+            data = this.getData();
+
+        if (this.options.sidePagination !== 'server') {
+            this.options.totalRows = data.length;
+        }
+
+        this.totalPages = 0;
+        if (this.options.totalRows) {
+            if (this.options.pageSize === this.options.formatAllRows()) {
+                this.options.pageSize = this.options.totalRows;
+                $allSelected = true;
+            } else if (this.options.pageSize === this.options.totalRows) {
+                // Fix #667 Table with pagination,
+                // multiple pages and a search that matches to one page throws exception
+                var pageLst = typeof this.options.pageList === 'string' ?
+                    this.options.pageList.replace('[', '').replace(']', '')
+                        .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;
+                if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst)  > -1) {
+                    $allSelected = true;
+                }
+            }
+
+            this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;
+
+            this.options.totalPages = this.totalPages;
+        }
+        if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {
+            this.options.pageNumber = this.totalPages;
+        }
+
+        this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;
+        this.pageTo = this.options.pageNumber * this.options.pageSize;
+        if (this.pageTo > this.options.totalRows) {
+            this.pageTo = this.options.totalRows;
+        }
+
+        html.push(
+            '<div class="pull-' + this.options.paginationDetailHAlign + ' pagination-detail">',
+            '<span class="pagination-info">',
+            this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :
+            this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),
+            '</span>');
+
+        if (!this.options.onlyInfoPagination) {
+            html.push('<span class="page-list">');
+
+            var pageNumber = [
+                    sprintf('<span class="btn-group %s">',
+                        this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?
+                            'dropdown' : 'dropup'),
+                    '<button type="button" class="btn btn-default ' +
+                    sprintf(' btn-%s', this.options.iconSize) +
+                    ' dropdown-toggle" data-toggle="dropdown">',
+                    '<span class="page-size">',
+                    $allSelected ? this.options.formatAllRows() : this.options.pageSize,
+                    '</span>',
+                    ' <span class="caret"></span>',
+                    '</button>',
+                    '<ul class="dropdown-menu" role="menu">'
+                ],
+                pageList = this.options.pageList;
+
+            if (typeof this.options.pageList === 'string') {
+                var list = this.options.pageList.replace('[', '').replace(']', '')
+                    .replace(/ /g, '').split(',');
+
+                pageList = [];
+                $.each(list, function (i, value) {
+                    pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?
+                        that.options.formatAllRows() : +value);
+                });
+            }
+
+            $.each(pageList, function (i, page) {
+                if (!that.options.smartDisplay || i === 0 || pageList[i - 1] <= that.options.totalRows) {
+                    var active;
+                    if ($allSelected) {
+                        active = page === that.options.formatAllRows() ? ' class="active"' : '';
+                    } else {
+                        active = page === that.options.pageSize ? ' class="active"' : '';
+                    }
+                    pageNumber.push(sprintf('<li%s><a href="javascript:void(0)">%s</a></li>', active, page));
+                }
+            });
+            pageNumber.push('</ul></span>');
+
+            html.push(this.options.formatRecordsPerPage(pageNumber.join('')));
+            html.push('</span>');
+
+            html.push('</div>',
+                '<div class="pull-' + this.options.paginationHAlign + ' pagination">',
+                '<ul class="pagination' + sprintf(' pagination-%s', this.options.iconSize) + '">',
+                '<li class="page-first"><a href="javascript:void(0)">' + this.options.paginationFirstText + '</a></li>',
+                '<li class="page-pre"><a href="javascript:void(0)">' + this.options.paginationPreText + '</a></li>');
+
+            if (this.totalPages < 5) {
+                from = 1;
+                to = this.totalPages;
+            } else {
+                from = this.options.pageNumber - 2;
+                to = from + 4;
+                if (from < 1) {
+                    from = 1;
+                    to = 5;
+                }
+                if (to > this.totalPages) {
+                    to = this.totalPages;
+                    from = to - 4;
+                }
+            }
+            for (i = from; i <= to; i++) {
+                html.push('<li class="page-number' + (i === this.options.pageNumber ? ' active' : '') + '">',
+                    '<a href="javascript:void(0)">', i, '</a>',
+                    '</li>');
+            }
+
+            html.push(
+                '<li class="page-next"><a href="javascript:void(0)">' + this.options.paginationNextText + '</a></li>',
+                '<li class="page-last"><a href="javascript:void(0)">' + this.options.paginationLastText + '</a></li>',
+                '</ul>',
+                '</div>');
+
+        }
+        this.$pagination.html(html.join(''));
+
+        if (!this.options.onlyInfoPagination) {
+            $pageList = this.$pagination.find('.page-list a');
+            $first = this.$pagination.find('.page-first');
+            $pre = this.$pagination.find('.page-pre');
+            $next = this.$pagination.find('.page-next');
+            $last = this.$pagination.find('.page-last');
+            $number = this.$pagination.find('.page-number');
+
+            if (this.options.pageNumber <= 1) {
+                $first.addClass('disabled');
+                $pre.addClass('disabled');
+            }
+            if (this.options.pageNumber >= this.totalPages) {
+                $next.addClass('disabled');
+                $last.addClass('disabled');
+            }
+            if (this.options.smartDisplay) {
+                if (this.totalPages <= 1) {
+                    this.$pagination.find('div.pagination').hide();
+                }
+                if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {
+                    this.$pagination.find('span.page-list').hide();
+                }
+
+                // when data is empty, hide the pagination
+                this.$pagination[this.getData().length ? 'show' : 'hide']();
+            }
+            if ($allSelected) {
+                this.options.pageSize = this.options.formatAllRows();
+            }
+            $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));
+            $first.off('click').on('click', $.proxy(this.onPageFirst, this));
+            $pre.off('click').on('click', $.proxy(this.onPagePre, this));
+            $next.off('click').on('click', $.proxy(this.onPageNext, this));
+            $last.off('click').on('click', $.proxy(this.onPageLast, this));
+            $number.off('click').on('click', $.proxy(this.onPageNumber, this));
+        }
+    };
+
+    BootstrapTable.prototype.updatePagination = function (event) {
+        // Fix #171: IE disabled button can be clicked bug.
+        if (event && $(event.currentTarget).hasClass('disabled')) {
+            return;
+        }
+
+        if (!this.options.maintainSelected) {
+            this.resetRows();
+        }
+
+        this.initPagination();
+        if (this.options.sidePagination === 'server') {
+            this.initServer();
+        } else {
+            this.initBody();
+        }
+
+        this.trigger('page-change', this.options.pageNumber, this.options.pageSize);
+    };
+
+    BootstrapTable.prototype.onPageListChange = function (event) {
+        var $this = $(event.currentTarget);
+
+        $this.parent().addClass('active').siblings().removeClass('active');
+        this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?
+            this.options.formatAllRows() : +$this.text();
+        this.$toolbar.find('.page-size').text(this.options.pageSize);
+
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.onPageFirst = function (event) {
+        this.options.pageNumber = 1;
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.onPagePre = function (event) {
+        this.options.pageNumber--;
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.onPageNext = function (event) {
+        this.options.pageNumber++;
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.onPageLast = function (event) {
+        this.options.pageNumber = this.totalPages;
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.onPageNumber = function (event) {
+        if (this.options.pageNumber === +$(event.currentTarget).text()) {
+            return;
+        }
+        this.options.pageNumber = +$(event.currentTarget).text();
+        this.updatePagination(event);
+    };
+
+    BootstrapTable.prototype.initBody = function (fixedScroll) {
+        var that = this,
+            html = [],
+            data = this.getData();
+
+        this.trigger('pre-body', data);
+
+        this.$body = this.$el.find('>tbody');
+        if (!this.$body.length) {
+            this.$body = $('<tbody></tbody>').appendTo(this.$el);
+        }
+
+        //Fix #389 Bootstrap-table-flatJSON is not working
+
+        if (!this.options.pagination || this.options.sidePagination === 'server') {
+            this.pageFrom = 1;
+            this.pageTo = data.length;
+        }
+
+        for (var i = this.pageFrom - 1; i < this.pageTo; i++) {
+            var key,
+                item = data[i],
+                style = {},
+                csses = [],
+                data_ = '',
+                attributes = {},
+                htmlAttributes = [];
+
+            style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);
+
+            if (style && style.css) {
+                for (key in style.css) {
+                    csses.push(key + ': ' + style.css[key]);
+                }
+            }
+
+            attributes = calculateObjectValue(this.options,
+                this.options.rowAttributes, [item, i], attributes);
+
+            if (attributes) {
+                for (key in attributes) {
+                    htmlAttributes.push(sprintf('%s="%s"', key, escapeHTML(attributes[key])));
+                }
+            }
+
+            if (item._data && !$.isEmptyObject(item._data)) {
+                $.each(item._data, function (k, v) {
+                    // ignore data-index
+                    if (k === 'index') {
+                        return;
+                    }
+                    data_ += sprintf(' data-%s="%s"', k, v);
+                });
+            }
+
+            html.push('<tr',
+                sprintf(' %s', htmlAttributes.join(' ')),
+                sprintf(' id="%s"', $.isArray(item) ? undefined : item._id),
+                sprintf(' class="%s"', style.classes || ($.isArray(item) ? undefined : item._class)),
+                sprintf(' data-index="%s"', i),
+                sprintf(' data-uniqueid="%s"', item[this.options.uniqueId]),
+                sprintf('%s', data_),
+                '>'
+            );
+
+            if (this.options.cardView) {
+                html.push(sprintf('<td colspan="%s">', this.header.fields.length));
+            }
+
+            if (!this.options.cardView && this.options.detailView) {
+                html.push('<td>',
+                    '<a class="detail-icon" href="javascript:">',
+                    sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.detailOpen),
+                    '</a>',
+                    '</td>');
+            }
+
+            $.each(this.header.fields, function (j, field) {
+                var text = '',
+                    value = getItemField(item, field),
+                    type = '',
+                    cellStyle = {},
+                    id_ = '',
+                    class_ = that.header.classes[j],
+                    data_ = '',
+                    rowspan_ = '',
+                    title_ = '',
+                    column = that.columns[getFieldIndex(that.columns, field)];
+
+                if (!column.visible) {
+                    return;
+                }
+
+                style = sprintf('style="%s"', csses.concat(that.header.styles[j]).join('; '));
+
+                value = calculateObjectValue(column,
+                    that.header.formatters[j], [value, item, i], value);
+
+                // handle td's id and class
+                if (item['_' + field + '_id']) {
+                    id_ = sprintf(' id="%s"', item['_' + field + '_id']);
+                }
+                if (item['_' + field + '_class']) {
+                    class_ = sprintf(' class="%s"', item['_' + field + '_class']);
+                }
+                if (item['_' + field + '_rowspan']) {
+                    rowspan_ = sprintf(' rowspan="%s"', item['_' + field + '_rowspan']);
+                }
+                if (item['_' + field + '_title']) {
+                    title_ = sprintf(' title="%s"', item['_' + field + '_title']);
+                }
+                cellStyle = calculateObjectValue(that.header,
+                    that.header.cellStyles[j], [value, item, i], cellStyle);
+                if (cellStyle.classes) {
+                    class_ = sprintf(' class="%s"', cellStyle.classes);
+                }
+                if (cellStyle.css) {
+                    var csses_ = [];
+                    for (var key in cellStyle.css) {
+                        csses_.push(key + ': ' + cellStyle.css[key]);
+                    }
+                    style = sprintf('style="%s"', csses_.concat(that.header.styles[j]).join('; '));
+                }
+
+                if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {
+                    $.each(item['_' + field + '_data'], function (k, v) {
+                        // ignore data-index
+                        if (k === 'index') {
+                            return;
+                        }
+                        data_ += sprintf(' data-%s="%s"', k, v);
+                    });
+                }
+
+                if (column.checkbox || column.radio) {
+                    type = column.checkbox ? 'checkbox' : type;
+                    type = column.radio ? 'radio' : type;
+
+                    text = [that.options.cardView ?
+                        '<div class="card-view">' : '<td class="bs-checkbox">',
+                        '<input' +
+                        sprintf(' data-index="%s"', i) +
+                        sprintf(' name="%s"', that.options.selectItemName) +
+                        sprintf(' type="%s"', type) +
+                        sprintf(' value="%s"', item[that.options.idField]) +
+                        sprintf(' checked="%s"', value === true ||
+                        (value && value.checked) ? 'checked' : undefined) +
+                        sprintf(' disabled="%s"', !column.checkboxEnabled ||
+                        (value && value.disabled) ? 'disabled' : undefined) +
+                        ' />',
+                        that.header.formatters[j] && typeof value === 'string' ? value : '',
+                        that.options.cardView ? '</div>' : '</td>'
+                    ].join('');
+
+                    item[that.header.stateField] = value === true || (value && value.checked);
+                } else {
+                    value = typeof value === 'undefined' || value === null ?
+                        that.options.undefinedText : value;
+
+                    text = that.options.cardView ? ['<div class="card-view">',
+                        that.options.showHeader ? sprintf('<span class="title" %s>%s</span>', style,
+                            getPropertyFromOther(that.columns, 'field', 'title', field)) : '',
+                        sprintf('<span class="value">%s</span>', value),
+                        '</div>'
+                    ].join('') : [sprintf('<td%s %s %s %s %s %s>', id_, class_, style, data_, rowspan_, title_),
+                        value,
+                        '</td>'
+                    ].join('');
+
+                    // Hide empty data on Card view when smartDisplay is set to true.
+                    if (that.options.cardView && that.options.smartDisplay && value === '') {
+                        // Should set a placeholder for event binding correct fieldIndex
+                        text = '<div class="card-view"></div>';
+                    }
+                }
+
+                html.push(text);
+            });
+
+            if (this.options.cardView) {
+                html.push('</td>');
+            }
+
+            html.push('</tr>');
+        }
+
+        // show no records
+        if (!html.length) {
+            html.push('<tr class="no-records-found">',
+                sprintf('<td colspan="%s">%s</td>',
+                    this.$header.find('th').length, this.options.formatNoMatches()),
+                '</tr>');
+        }
+
+        this.$body.html(html.join(''));
+
+        if (!fixedScroll) {
+            this.scrollTo(0);
+        }
+
+        // click to select by column
+        this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {
+            var $td = $(this),
+                $tr = $td.parent(),
+                item = that.data[$tr.data('index')],
+                index = $td[0].cellIndex,
+                field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],
+                column = that.columns[getFieldIndex(that.columns, field)],
+                value = getItemField(item, field);
+
+            if ($td.find('.detail-icon').length) {
+                return;
+            }
+
+            that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);
+            that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);
+
+            // if click to select - then trigger the checkbox/radio click
+            if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {
+                var $selectItem = $tr.find(sprintf('[name="%s"]', that.options.selectItemName));
+                if ($selectItem.length) {
+                    $selectItem[0].click(); // #144: .trigger('click') bug
+                }
+            }
+        });
+
+        this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {
+            var $this = $(this),
+                $tr = $this.parent().parent(),
+                index = $tr.data('index'),
+                row = data[index]; // Fix #980 Detail view, when searching, returns wrong row
+
+            // remove and update
+            if ($tr.next().is('tr.detail-view')) {
+                $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));
+                $tr.next().remove();
+                that.trigger('collapse-row', index, row);
+            } else {
+                $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));
+                $tr.after(sprintf('<tr class="detail-view"><td colspan="%s">%s</td></tr>',
+                    $tr.find('td').length, calculateObjectValue(that.options,
+                        that.options.detailFormatter, [index, row], '')));
+                that.trigger('expand-row', index, row, $tr.next().find('td'));
+            }
+            that.resetView();
+        });
+
+        this.$selectItem = this.$body.find(sprintf('[name="%s"]', this.options.selectItemName));
+        this.$selectItem.off('click').on('click', function (event) {
+            event.stopImmediatePropagation();
+
+            var $this = $(this),
+                checked = $this.prop('checked'),
+                row = that.data[$this.data('index')];
+
+            if (that.options.maintainSelected && $(this).is(':radio')) {
+                $.each(that.options.data, function (i, row) {
+                    row[that.header.stateField] = false;
+                });
+            }
+
+            row[that.header.stateField] = checked;
+
+            if (that.options.singleSelect) {
+                that.$selectItem.not(this).each(function () {
+                    that.data[$(this).data('index')][that.header.stateField] = false;
+                });
+                that.$selectItem.filter(':checked').not(this).prop('checked', false);
+            }
+
+            that.updateSelected();
+            that.trigger(checked ? 'check' : 'uncheck', row, $this);
+        });
+
+        $.each(this.header.events, function (i, events) {
+            if (!events) {
+                return;
+            }
+            // fix bug, if events is defined with namespace
+            if (typeof events === 'string') {
+                events = calculateObjectValue(null, events);
+            }
+
+            var field = that.header.fields[i],
+                fieldIndex = $.inArray(field, that.getVisibleFields());
+
+            if (that.options.detailView && !that.options.cardView) {
+                fieldIndex += 1;
+            }
+
+            for (var key in events) {
+                that.$body.find('>tr:not(.no-records-found)').each(function () {
+                    var $tr = $(this),
+                        $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),
+                        index = key.indexOf(' '),
+                        name = key.substring(0, index),
+                        el = key.substring(index + 1),
+                        func = events[key];
+
+                    $td.find(el).off(name).on(name, function (e) {
+                        var index = $tr.data('index'),
+                            row = that.data[index],
+                            value = row[field];
+
+                        func.apply(this, [e, value, row, index]);
+                    });
+                });
+            }
+        });
+
+        this.updateSelected();
+        this.resetView();
+
+        this.trigger('post-body');
+    };
+
+    BootstrapTable.prototype.initServer = function (silent, query) {
+        var that = this,
+            data = {},
+            params = {
+                pageSize: this.options.pageSize === this.options.formatAllRows() ?
+                    this.options.totalRows : this.options.pageSize,
+                pageNumber: this.options.pageNumber,
+                searchText: this.searchText,
+                sortName: this.options.sortName,
+                sortOrder: this.options.sortOrder
+            },
+            request;
+
+        if (!this.options.url && !this.options.ajax) {
+            return;
+        }
+
+        if (this.options.queryParamsType === 'limit') {
+            params = {
+                search: params.searchText,
+                sort: params.sortName,
+                order: params.sortOrder
+            };
+            if (this.options.pagination) {
+                params.limit = this.options.pageSize === this.options.formatAllRows() ?
+                    this.options.totalRows : this.options.pageSize;
+                params.offset = this.options.pageSize === this.options.formatAllRows() ?
+                    0 : this.options.pageSize * (this.options.pageNumber - 1);
+            }
+        }
+
+        if (!($.isEmptyObject(this.filterColumnsPartial))) {
+            params['filter'] = JSON.stringify(this.filterColumnsPartial, null);
+        }
+
+        data = calculateObjectValue(this.options, this.options.queryParams, [params], data);
+
+        $.extend(data, query || {});
+
+        // false to stop request
+        if (data === false) {
+            return;
+        }
+
+        if (!silent) {
+            this.$tableLoading.show();
+        }
+        request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {
+            type: this.options.method,
+            url: this.options.url,
+            data: this.options.contentType === 'application/json' && this.options.method === 'post' ?
+                JSON.stringify(data) : data,
+            cache: this.options.cache,
+            contentType: this.options.contentType,
+            dataType: this.options.dataType,
+            success: function (res) {
+                res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);
+
+                that.load(res);
+                that.trigger('load-success', res);
+            },
+            error: function (res) {
+                that.trigger('load-error', res.status, res);
+            },
+            complete: function () {
+                if (!silent) {
+                    that.$tableLoading.hide();
+                }
+            }
+        });
+
+        if (this.options.ajax) {
+            calculateObjectValue(this, this.options.ajax, [request], null);
+        } else {
+            $.ajax(request);
+        }
+    };
+
+    BootstrapTable.prototype.initSearchText = function () {
+        if (this.options.search) {
+            if (this.options.searchText !== '') {
+                var $search = this.$toolbar.find('.search input');
+                $search.val(this.options.searchText);
+                this.onSearch({currentTarget: $search});
+            }
+        }
+    };
+
+    BootstrapTable.prototype.getCaret = function () {
+        var that = this;
+
+        $.each(this.$header.find('th'), function (i, th) {
+            $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');
+        });
+    };
+
+    BootstrapTable.prototype.updateSelected = function () {
+        var checkAll = this.$selectItem.filter(':enabled').length &&
+            this.$selectItem.filter(':enabled').length ===
+            this.$selectItem.filter(':enabled').filter(':checked').length;
+
+        this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);
+
+        this.$selectItem.each(function () {
+            $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');
+        });
+    };
+
+    BootstrapTable.prototype.updateRows = function () {
+        var that = this;
+
+        this.$selectItem.each(function () {
+            that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');
+        });
+    };
+
+    BootstrapTable.prototype.resetRows = function () {
+        var that = this;
+
+        $.each(this.data, function (i, row) {
+            that.$selectAll.prop('checked', false);
+            that.$selectItem.prop('checked', false);
+            if (that.header.stateField) {
+                row[that.header.stateField] = false;
+            }
+        });
+    };
+
+    BootstrapTable.prototype.trigger = function (name) {
+        var args = Array.prototype.slice.call(arguments, 1);
+
+        name += '.bs.table';
+        this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);
+        this.$el.trigger($.Event(name), args);
+
+        this.options.onAll(name, args);
+        this.$el.trigger($.Event('all.bs.table'), [name, args]);
+    };
+
+    BootstrapTable.prototype.resetHeader = function () {
+        // fix #61: the hidden table reset header bug.
+        // fix bug: get $el.css('width') error sometime (height = 500)
+        clearTimeout(this.timeoutId_);
+        this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);
+    };
+
+    BootstrapTable.prototype.fitHeader = function () {
+        var that = this,
+            fixedBody,
+            scrollWidth,
+            focused,
+            focusedTemp;
+
+        if (that.$el.is(':hidden')) {
+            that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);
+            return;
+        }
+        fixedBody = this.$tableBody.get(0);
+
+        scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&
+        fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?
+            getScrollBarWidth() : 0;
+
+        this.$el.css('margin-top', -this.$header.outerHeight());
+
+        focused = $(':focus');
+        if (focused.length > 0) {
+            var $th = focused.parents('th');
+            if ($th.length > 0) {
+                var dataField = $th.attr('data-field');
+                if (dataField !== undefined) {
+                    var $headerTh = this.$header.find("[data-field='" + dataField + "']");
+                    if ($headerTh.length > 0) {
+                        $headerTh.find(":input").addClass("focus-temp");
+                    }
+                }
+            }
+        }
+
+        this.$header_ = this.$header.clone(true, true);
+        this.$selectAll_ = this.$header_.find('[name="btSelectAll"]');
+        this.$tableHeader.css({
+            'margin-right': scrollWidth
+        }).find('table').css('width', this.$el.outerWidth())
+            .html('').attr('class', this.$el.attr('class'))
+            .append(this.$header_);
+
+
+        focusedTemp = $('.focus-temp:visible:eq(0)');
+        if (focusedTemp.length > 0) {
+            focusedTemp.focus();
+            this.$header.find('.focus-temp').removeClass('focus-temp');
+        }
+
+        // fix bug: $.data() is not working as expected after $.append()
+        this.$header.find('th[data-field]').each(function (i) {
+            that.$header_.find(sprintf('th[data-field="%s"]', $(this).data('field'))).data($(this).data());
+        });
+
+        var visibleFields = this.getVisibleFields();
+
+        this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {
+            var $this = $(this),
+                index = i;
+
+            if (that.options.detailView && !that.options.cardView) {
+                if (i === 0) {
+                    that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());
+                }
+                index = i - 1;
+            }
+
+            that.$header_.find(sprintf('th[data-field="%s"]', visibleFields[index]))
+                .find('.fht-cell').width($this.innerWidth());
+        });
+        // horizontal scroll event
+        // TODO: it's probably better improving the layout than binding to scroll event
+        this.$tableBody.off('scroll').on('scroll', function () {
+            that.$tableHeader.scrollLeft($(this).scrollLeft());
+
+            if (that.options.showFooter && !that.options.cardView) {
+                that.$tableFooter.scrollLeft($(this).scrollLeft());
+            }
+        });
+        that.trigger('post-header');
+    };
+
+    BootstrapTable.prototype.resetFooter = function () {
+        var that = this,
+            data = that.getData(),
+            html = [];
+
+        if (!this.options.showFooter || this.options.cardView) { //do nothing
+            return;
+        }
+
+        if (!this.options.cardView && this.options.detailView) {
+            html.push('<td><div class="th-inner">&nbsp;</div><div class="fht-cell"></div></td>');
+        }
+
+        $.each(this.columns, function (i, column) {
+            var falign = '', // footer align style
+                style = '',
+                class_ = sprintf(' class="%s"', column['class']);
+
+            if (!column.visible) {
+                return;
+            }
+
+            if (that.options.cardView && (!column.cardVisible)) {
+                return;
+            }
+
+            falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);
+            style = sprintf('vertical-align: %s; ', column.valign);
+
+            html.push('<td', class_, sprintf(' style="%s"', falign + style), '>');
+            html.push('<div class="th-inner">');
+
+            html.push(calculateObjectValue(column, column.footerFormatter, [data], '&nbsp;') || '&nbsp;');
+
+            html.push('</div>');
+            html.push('<div class="fht-cell"></div>');
+            html.push('</div>');
+            html.push('</td>');
+        });
+
+        this.$tableFooter.find('tr').html(html.join(''));
+        clearTimeout(this.timeoutFooter_);
+        this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),
+            this.$el.is(':hidden') ? 100 : 0);
+    };
+
+    BootstrapTable.prototype.fitFooter = function () {
+        var that = this,
+            $footerTd,
+            elWidth,
+            scrollWidth;
+
+        clearTimeout(this.timeoutFooter_);
+        if (this.$el.is(':hidden')) {
+            this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);
+            return;
+        }
+
+        elWidth = this.$el.css('width');
+        scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;
+
+        this.$tableFooter.css({
+            'margin-right': scrollWidth
+        }).find('table').css('width', elWidth)
+            .attr('class', this.$el.attr('class'));
+
+        $footerTd = this.$tableFooter.find('td');
+
+        this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {
+            var $this = $(this);
+
+            $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());
+        });
+    };
+
+    BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {
+        if (index === -1) {
+            return;
+        }
+        this.columns[index].visible = checked;
+        this.initHeader();
+        this.initSearch();
+        this.initPagination();
+        this.initBody();
+
+        if (this.options.showColumns) {
+            var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);
+
+            if (needUpdate) {
+                $items.filter(sprintf('[value="%s"]', index)).prop('checked', checked);
+            }
+
+            if ($items.filter(':checked').length <= this.options.minimumCountColumns) {
+                $items.filter(':checked').prop('disabled', true);
+            }
+        }
+    };
+
+    BootstrapTable.prototype.toggleRow = function (index, uniqueId, visible) {
+        if (index === -1) {
+            return;
+        }
+
+        this.$body.find(typeof index !== 'undefined' ?
+            sprintf('tr[data-index="%s"]', index) :
+            sprintf('tr[data-uniqueid="%s"]', uniqueId))
+            [visible ? 'show' : 'hide']();
+    };
+
+    BootstrapTable.prototype.getVisibleFields = function () {
+        var that = this,
+            visibleFields = [];
+
+        $.each(this.header.fields, function (j, field) {
+            var column = that.columns[getFieldIndex(that.columns, field)];
+
+            if (!column.visible) {
+                return;
+            }
+            visibleFields.push(field);
+        });
+        return visibleFields;
+    };
+
+    // PUBLIC FUNCTION DEFINITION
+    // =======================
+
+    BootstrapTable.prototype.resetView = function (params) {
+        var padding = 0;
+
+        if (params && params.height) {
+            this.options.height = params.height;
+        }
+
+        this.$selectAll.prop('checked', this.$selectItem.length > 0 &&
+            this.$selectItem.length === this.$selectItem.filter(':checked').length);
+
+        if (this.options.height) {
+            var toolbarHeight = getRealHeight(this.$toolbar),
+                paginationHeight = getRealHeight(this.$pagination),
+                height = this.options.height - toolbarHeight - paginationHeight;
+
+            this.$tableContainer.css('height', height + 'px');
+        }
+
+        if (this.options.cardView) {
+            // remove the element css
+            this.$el.css('margin-top', '0');
+            this.$tableContainer.css('padding-bottom', '0');
+            return;
+        }
+
+        if (this.options.showHeader && this.options.height) {
+            this.$tableHeader.show();
+            this.resetHeader();
+            padding += this.$header.outerHeight();
+        } else {
+            this.$tableHeader.hide();
+            this.trigger('post-header');
+        }
+
+        if (this.options.showFooter) {
+            this.resetFooter();
+            if (this.options.height) {
+                padding += this.$tableFooter.outerHeight() + 1;
+            }
+        }
+
+        // Assign the correct sortable arrow
+        this.getCaret();
+        this.$tableContainer.css('padding-bottom', padding + 'px');
+        this.trigger('reset-view');
+    };
+
+    BootstrapTable.prototype.getData = function (useCurrentPage) {
+        return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?
+            (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :
+            (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);
+    };
+
+    BootstrapTable.prototype.load = function (data) {
+        var fixedScroll = false;
+
+        // #431: support pagination
+        if (this.options.sidePagination === 'server') {
+            this.options.totalRows = data.total;
+            fixedScroll = data.fixedScroll;
+            data = data[this.options.dataField];
+        } else if (!$.isArray(data)) { // support fixedScroll
+            fixedScroll = data.fixedScroll;
+            data = data.data;
+        }
+
+        this.initData(data);
+        this.initSearch();
+        this.initPagination();
+        this.initBody(fixedScroll);
+    };
+
+    BootstrapTable.prototype.append = function (data) {
+        this.initData(data, 'append');
+        this.initSearch();
+        this.initPagination();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.prepend = function (data) {
+        this.initData(data, 'prepend');
+        this.initSearch();
+        this.initPagination();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.remove = function (params) {
+        var len = this.options.data.length,
+            i, row;
+
+        if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {
+            return;
+        }
+
+        for (i = len - 1; i >= 0; i--) {
+            row = this.options.data[i];
+
+            if (!row.hasOwnProperty(params.field)) {
+                continue;
+            }
+            if ($.inArray(row[params.field], params.values) !== -1) {
+                this.options.data.splice(i, 1);
+            }
+        }
+
+        if (len === this.options.data.length) {
+            return;
+        }
+
+        this.initSearch();
+        this.initPagination();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.removeAll = function () {
+        if (this.options.data.length > 0) {
+            this.options.data.splice(0, this.options.data.length);
+            this.initSearch();
+            this.initPagination();
+            this.initBody(true);
+        }
+    };
+
+    BootstrapTable.prototype.getRowByUniqueId = function (id) {
+        var uniqueId = this.options.uniqueId,
+            len = this.options.data.length,
+            dataRow = null,
+            i, row, rowUniqueId;
+
+        for (i = len - 1; i >= 0; i--) {
+            row = this.options.data[i];
+
+            if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column
+                rowUniqueId = row[uniqueId];
+            } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property
+                rowUniqueId = row._data[uniqueId];
+            } else {
+                continue;
+            }
+
+            if (typeof rowUniqueId === 'string') {
+                id = id.toString();
+            } else if (typeof rowUniqueId === 'number') {
+                if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {
+                    id = parseInt(id);
+                } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {
+                    id = parseFloat(id);
+                }
+            }
+
+            if (rowUniqueId === id) {
+                dataRow = row;
+                break;
+            }
+        }
+
+        return dataRow;
+    };
+
+    BootstrapTable.prototype.removeByUniqueId = function (id) {
+        var len = this.options.data.length,
+            row = this.getRowByUniqueId(id);
+
+        if (row) {
+            this.options.data.splice(this.options.data.indexOf(row), 1);
+        }
+
+        if (len === this.options.data.length) {
+            return;
+        }
+
+        this.initSearch();
+        this.initPagination();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.updateByUniqueId = function (params) {
+        var rowId;
+
+        if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {
+            return;
+        }
+
+        rowId = $.inArray(this.getRowByUniqueId(params.id), this.options.data);
+
+        if (rowId === -1) {
+            return;
+        }
+
+        $.extend(this.data[rowId], params.row);
+        this.initSort();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.insertRow = function (params) {
+        if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {
+            return;
+        }
+        this.data.splice(params.index, 0, params.row);
+        this.initSearch();
+        this.initPagination();
+        this.initSort();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.updateRow = function (params) {
+        if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {
+            return;
+        }
+        $.extend(this.data[params.index], params.row);
+        this.initSort();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.showRow = function (params) {
+        if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {
+            return;
+        }
+        this.toggleRow(params.index, params.uniqueId, true);
+    };
+
+    BootstrapTable.prototype.hideRow = function (params) {
+        if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {
+            return;
+        }
+        this.toggleRow(params.index, params.uniqueId, false);
+    };
+
+    BootstrapTable.prototype.getRowsHidden = function (show) {
+        var rows = $(this.$body[0]).children().filter(':hidden'),
+            i = 0;
+        if (show) {
+            for (; i < rows.length; i++) {
+                $(rows[i]).show();
+            }
+        }
+        return rows;
+    };
+
+    BootstrapTable.prototype.mergeCells = function (options) {
+        var row = options.index,
+            col = $.inArray(options.field, this.getVisibleFields()),
+            rowspan = options.rowspan || 1,
+            colspan = options.colspan || 1,
+            i, j,
+            $tr = this.$body.find('>tr'),
+            $td;
+
+        if (this.options.detailView && !this.options.cardView) {
+            col += 1;
+        }
+
+        $td = $tr.eq(row).find('>td').eq(col);
+
+        if (row < 0 || col < 0 || row >= this.data.length) {
+            return;
+        }
+
+        for (i = row; i < row + rowspan; i++) {
+            for (j = col; j < col + colspan; j++) {
+                $tr.eq(i).find('>td').eq(j).hide();
+            }
+        }
+
+        $td.attr('rowspan', rowspan).attr('colspan', colspan).show();
+    };
+
+    BootstrapTable.prototype.updateCell = function (params) {
+        if (!params.hasOwnProperty('index') ||
+            !params.hasOwnProperty('field') ||
+            !params.hasOwnProperty('value')) {
+            return;
+        }
+        this.data[params.index][params.field] = params.value;
+        this.initSort();
+        this.initBody(true);
+    };
+
+    BootstrapTable.prototype.getOptions = function () {
+        return this.options;
+    };
+
+    BootstrapTable.prototype.getSelections = function () {
+        var that = this;
+
+        return $.grep(this.data, function (row) {
+            return row[that.header.stateField];
+        });
+    };
+
+    BootstrapTable.prototype.getAllSelections = function () {
+        var that = this;
+
+        return $.grep(this.options.data, function (row) {
+            return row[that.header.stateField];
+        });
+    };
+
+    BootstrapTable.prototype.checkAll = function () {
+        this.checkAll_(true);
+    };
+
+    BootstrapTable.prototype.uncheckAll = function () {
+        this.checkAll_(false);
+    };
+
+    BootstrapTable.prototype.checkAll_ = function (checked) {
+        var rows;
+        if (!checked) {
+            rows = this.getSelections();
+        }
+        this.$selectAll.add(this.$selectAll_).prop('checked', checked);
+        this.$selectItem.filter(':enabled').prop('checked', checked);
+        this.updateRows();
+        if (checked) {
+            rows = this.getSelections();
+        }
+        this.trigger(checked ? 'check-all' : 'uncheck-all', rows);
+    };
+
+    BootstrapTable.prototype.check = function (index) {
+        this.check_(true, index);
+    };
+
+    BootstrapTable.prototype.uncheck = function (index) {
+        this.check_(false, index);
+    };
+
+    BootstrapTable.prototype.check_ = function (checked, index) {
+        var $el = this.$selectItem.filter(sprintf('[data-index="%s"]', index)).prop('checked', checked);
+        this.data[index][this.header.stateField] = checked;
+        this.updateSelected();
+        this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);
+    };
+
+    BootstrapTable.prototype.checkBy = function (obj) {
+        this.checkBy_(true, obj);
+    };
+
+    BootstrapTable.prototype.uncheckBy = function (obj) {
+        this.checkBy_(false, obj);
+    };
+
+    BootstrapTable.prototype.checkBy_ = function (checked, obj) {
+        if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {
+            return;
+        }
+
+        var that = this,
+            rows = [];
+        $.each(this.options.data, function (index, row) {
+            if (!row.hasOwnProperty(obj.field)) {
+                return false;
+            }
+            if ($.inArray(row[obj.field], obj.values) !== -1) {
+                var $el = that.$selectItem.filter(':enabled')
+                    .filter(sprintf('[data-index="%s"]', index)).prop('checked', checked);
+                row[that.header.stateField] = checked;
+                rows.push(row);
+                that.trigger(checked ? 'check' : 'uncheck', row, $el);
+            }
+        });
+        this.updateSelected();
+        this.trigger(checked ? 'check-some' : 'uncheck-some', rows);
+    };
+
+    BootstrapTable.prototype.destroy = function () {
+        this.$el.insertBefore(this.$container);
+        $(this.options.toolbar).insertBefore(this.$el);
+        this.$container.next().remove();
+        this.$container.remove();
+        this.$el.html(this.$el_.html())
+            .css('margin-top', '0')
+            .attr('class', this.$el_.attr('class') || ''); // reset the class
+    };
+
+    BootstrapTable.prototype.showLoading = function () {
+        this.$tableLoading.show();
+    };
+
+    BootstrapTable.prototype.hideLoading = function () {
+        this.$tableLoading.hide();
+    };
+
+    BootstrapTable.prototype.togglePagination = function () {
+        this.options.pagination = !this.options.pagination;
+        var button = this.$toolbar.find('button[name="paginationSwitch"] i');
+        if (this.options.pagination) {
+            button.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchDown);
+        } else {
+            button.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchUp);
+        }
+        this.updatePagination();
+    };
+
+    BootstrapTable.prototype.refresh = function (params) {
+        if (params && params.url) {
+            this.options.url = params.url;
+            this.options.pageNumber = 1;
+        }
+        this.initServer(params && params.silent, params && params.query);
+    };
+
+    BootstrapTable.prototype.resetWidth = function () {
+        if (this.options.showHeader && this.options.height) {
+            this.fitHeader();
+        }
+        if (this.options.showFooter) {
+            this.fitFooter();
+        }
+    };
+
+    BootstrapTable.prototype.showColumn = function (field) {
+        this.toggleColumn(getFieldIndex(this.columns, field), true, true);
+    };
+
+    BootstrapTable.prototype.hideColumn = function (field) {
+        this.toggleColumn(getFieldIndex(this.columns, field), false, true);
+    };
+
+    BootstrapTable.prototype.getHiddenColumns = function () {
+        return $.grep(this.columns, function (column) {
+            return !column.visible;
+        });
+    };
+
+    BootstrapTable.prototype.filterBy = function (columns) {
+        this.filterColumns = $.isEmptyObject(columns) ? {} : columns;
+        this.options.pageNumber = 1;
+        this.initSearch();
+        this.updatePagination();
+    };
+
+    BootstrapTable.prototype.scrollTo = function (value) {
+        if (typeof value === 'string') {
+            value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;
+        }
+        if (typeof value === 'number') {
+            this.$tableBody.scrollTop(value);
+        }
+        if (typeof value === 'undefined') {
+            return this.$tableBody.scrollTop();
+        }
+    };
+
+    BootstrapTable.prototype.getScrollPosition = function () {
+        return this.scrollTo();
+    };
+
+    BootstrapTable.prototype.selectPage = function (page) {
+        if (page > 0 && page <= this.options.totalPages) {
+            this.options.pageNumber = page;
+            this.updatePagination();
+        }
+    };
+
+    BootstrapTable.prototype.prevPage = function () {
+        if (this.options.pageNumber > 1) {
+            this.options.pageNumber--;
+            this.updatePagination();
+        }
+    };
+
+    BootstrapTable.prototype.nextPage = function () {
+        if (this.options.pageNumber < this.options.totalPages) {
+            this.options.pageNumber++;
+            this.updatePagination();
+        }
+    };
+
+    BootstrapTable.prototype.toggleView = function () {
+        this.options.cardView = !this.options.cardView;
+        this.initHeader();
+        // Fixed remove toolbar when click cardView button.
+        //that.initToolbar();
+        this.initBody();
+        this.trigger('toggle', this.options.cardView);
+    };
+
+    BootstrapTable.prototype.refreshOptions = function (options) {
+        //If the objects are equivalent then avoid the call of destroy / init methods
+        if (compareObjects(this.options, options, false)) {
+            return;
+        }
+        this.options = $.extend(this.options, options);
+        this.trigger('refresh-options', this.options);
+        this.destroy();
+        this.init();
+    };
+
+    BootstrapTable.prototype.resetSearch = function (text) {
+        var $search = this.$toolbar.find('.search input');
+        $search.val(text || '');
+        this.onSearch({currentTarget: $search});
+    };
+
+    BootstrapTable.prototype.expandRow_ = function (expand, index) {
+        var $tr = this.$body.find(sprintf('> tr[data-index="%s"]', index));
+        if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {
+            $tr.find('> td > .detail-icon').click();
+        }
+    };
+
+    BootstrapTable.prototype.expandRow = function (index) {
+        this.expandRow_(true, index);
+    };
+
+    BootstrapTable.prototype.collapseRow = function (index) {
+        this.expandRow_(false, index);
+    };
+
+    BootstrapTable.prototype.expandAllRows = function (isSubTable) {
+        if (isSubTable) {
+            var $tr = this.$body.find(sprintf('> tr[data-index="%s"]', 0)),
+                that = this,
+                detailIcon = null,
+                executeInterval = false,
+                idInterval = -1;
+
+            if (!$tr.next().is('tr.detail-view')) {
+                $tr.find('> td > .detail-icon').click();
+                executeInterval = true;
+            } else if (!$tr.next().next().is('tr.detail-view')) {
+                $tr.next().find(".detail-icon").click();
+                executeInterval = true;
+            }
+
+            if (executeInterval) {
+                try {
+                    idInterval = setInterval(function () {
+                        detailIcon = that.$body.find("tr.detail-view").last().find(".detail-icon");
+                        if (detailIcon.length > 0) {
+                            detailIcon.click();
+                        } else {
+                            clearInterval(idInterval);
+                        }
+                    }, 1);
+                } catch (ex) {
+                    clearInterval(idInterval);
+                }
+            }
+        } else {
+            var trs = this.$body.children();
+            for (var i = 0; i < trs.length; i++) {
+                this.expandRow_(true, $(trs[i]).data("index"));
+            }
+        }
+    };
+
+    BootstrapTable.prototype.collapseAllRows = function (isSubTable) {
+        if (isSubTable) {
+            this.expandRow_(false, 0);
+        } else {
+            var trs = this.$body.children();
+            for (var i = 0; i < trs.length; i++) {
+                this.expandRow_(false, $(trs[i]).data("index"));
+            }
+        }
+    };
+
+    // BOOTSTRAP TABLE PLUGIN DEFINITION
+    // =======================
+
+    var allowedMethods = [
+        'getOptions',
+        'getSelections', 'getAllSelections', 'getData',
+        'load', 'append', 'prepend', 'remove', 'removeAll',
+        'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',
+        'getRowByUniqueId', 'showRow', 'hideRow', 'getRowsHidden',
+        'mergeCells',
+        'checkAll', 'uncheckAll',
+        'check', 'uncheck',
+        'checkBy', 'uncheckBy',
+        'refresh',
+        'resetView',
+        'resetWidth',
+        'destroy',
+        'showLoading', 'hideLoading',
+        'showColumn', 'hideColumn', 'getHiddenColumns',
+        'filterBy',
+        'scrollTo',
+        'getScrollPosition',
+        'selectPage', 'prevPage', 'nextPage',
+        'togglePagination',
+        'toggleView',
+        'refreshOptions',
+        'resetSearch',
+        'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows'
+    ];
+
+    $.fn.bootstrapTable = function (option) {
+        var value,
+            args = Array.prototype.slice.call(arguments, 1);
+
+        this.each(function () {
+            var $this = $(this),
+                data = $this.data('bootstrap.table'),
+                options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),
+                    typeof option === 'object' && option);
+
+            if (typeof option === 'string') {
+                if ($.inArray(option, allowedMethods) < 0) {
+                    throw new Error("Unknown method: " + option);
+                }
+
+                if (!data) {
+                    return;
+                }
+
+                value = data[option].apply(data, args);
+
+                if (option === 'destroy') {
+                    $this.removeData('bootstrap.table');
+                }
+            }
+
+            if (!data) {
+                $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));
+            }
+        });
+
+        return typeof value === 'undefined' ? this : value;
+    };
+
+    $.fn.bootstrapTable.Constructor = BootstrapTable;
+    $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;
+    $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;
+    $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;
+    $.fn.bootstrapTable.methods = allowedMethods;
+    $.fn.bootstrapTable.utils = {
+        sprintf: sprintf,
+        getFieldIndex: getFieldIndex,
+        compareObjects: compareObjects,
+        calculateObjectValue: calculateObjectValue
+    };
+
+    // BOOTSTRAP TABLE INIT
+    // =======================
+
+    $(function () {
+        $('[data-toggle="table"]').bootstrapTable();
+    });
+
+}(jQuery);
diff --git a/js/table/bootstrap-table.min.css b/js/table/bootstrap-table.min.css
new file mode 100644
index 0000000..5ab17e4
--- /dev/null
+++ b/js/table/bootstrap-table.min.css
@@ -0,0 +1 @@
+.fixed-table-container .bs-checkbox,.fixed-table-container .no-records-found{text-align:center}.fixed-table-body thead th .th-inner,.table td,.table th{box-sizing:border-box}.bootstrap-table .table{margin-bottom:0!important;border-bottom:1px solid #ddd;border-collapse:collapse!important;border-radius:1px}.bootstrap-table .table:not(.table-condensed),.bootstrap-table .table:not(.table-condensed)>tbody>tr>td,.bootstrap-table .table:not(.table-condensed)>tbody>tr>th,.bootstrap-table .table:not(.table-condensed)>tfoot>tr>td,.bootstrap-table .table:not(.table-condensed)>tfoot>tr>th,.bootstrap-table .table:not(.table-condensed)>thead>tr>td{padding:8px!important}.bootstrap-table .table.table-no-bordered>tbody>tr>td,.bootstrap-table .table.table-no-bordered>thead>tr>th{border-right:2px solid transparent}.fixed-table-container{position:relative;clear:both;border:1px solid #ddd;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.fixed-table-container.table-no-bordered{border:1px solid transparent}.fixed-table-footer,.fixed-table-header{overflow:hidden}.fixed-table-footer{border-top:1px solid #ddd}.fixed-table-body{overflow-x:auto;overflow-y:auto;height:100%}.fixed-table-container table{width:100%}.fixed-table-container thead th{height:0;padding:0;margin:0;border-left:1px solid #ddd}.fixed-table-container thead th:first-child{border-left:none;border-top-left-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px}.fixed-table-container tbody td .th-inner,.fixed-table-container thead th .th-inner{padding:8px;line-height:24px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-table-container thead th .sortable{cursor:pointer;background-position:right;background-repeat:no-repeat;padding-right:30px}.fixed-table-container thead th .both{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC')}.fixed-table-container thead th .asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==)}.fixed-table-container thead th .desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII=)}.fixed-table-container th.detail{width:30px}.fixed-table-container tbody td{border-left:1px solid #ddd}.fixed-table-container tbody tr:first-child td{border-top:none}.fixed-table-container tbody td:first-child{border-left:none}.fixed-table-container tbody .selected td{background-color:#f5f5f5}.fixed-table-container .bs-checkbox .th-inner{padding:8px 0}.fixed-table-container input[type=radio],.fixed-table-container input[type=checkbox]{margin:0 auto!important}.fixed-table-pagination .pagination-detail,.fixed-table-pagination div.pagination{margin-top:10px;margin-bottom:10px}.fixed-table-pagination div.pagination .pagination{margin:0}.fixed-table-pagination .pagination a{padding:6px 12px;line-height:1.428571429}.fixed-table-pagination .pagination-info{line-height:34px;margin-right:5px}.fixed-table-pagination .btn-group{position:relative;display:inline-block;vertical-align:middle}.fixed-table-pagination .dropup .dropdown-menu{margin-bottom:0}.fixed-table-pagination .page-list{display:inline-block}.fixed-table-toolbar .columns-left{margin-right:5px}.fixed-table-toolbar .columns-right{margin-left:5px}.fixed-table-toolbar .columns label{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429}.fixed-table-toolbar .bars,.fixed-table-toolbar .columns,.fixed-table-toolbar .search{position:relative;margin-top:10px;margin-bottom:10px;line-height:34px}.fixed-table-pagination li.disabled a{pointer-events:none;cursor:default}.fixed-table-loading{display:none;position:absolute;top:42px;right:0;bottom:0;left:0;z-index:99;background-color:#fff;text-align:center}.fixed-table-body .card-view .title{font-weight:700;display:inline-block;min-width:30%;text-align:left!important}.table td,.table th{vertical-align:middle}.fixed-table-toolbar .dropdown-menu{text-align:left;max-height:300px;overflow:auto}.fixed-table-toolbar .btn-group>.btn-group{display:inline-block;margin-left:-1px!important}.fixed-table-toolbar .btn-group>.btn-group>.btn{border-radius:0}.fixed-table-toolbar .btn-group>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.fixed-table-toolbar .btn-group>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.bootstrap-table .table>thead>tr>th{vertical-align:bottom;border-bottom:1px solid #ddd}.bootstrap-table .table thead>tr>th{padding:0;margin:0}.bootstrap-table .fixed-table-footer tbody>tr>td{padding:0!important}.bootstrap-table .fixed-table-footer .table{border-bottom:none;border-radius:0}.pull-right .dropdown-menu{right:0;left:auto}p.fixed-table-scroll-inner{width:100%;height:200px}div.fixed-table-scroll-outer{top:0;left:0;visibility:hidden;width:200px;height:150px;overflow:hidden}
\ No newline at end of file
diff --git a/js/table/bootstrap-table.min.js b/js/table/bootstrap-table.min.js
new file mode 100644
index 0000000..065ce66
--- /dev/null
+++ b/js/table/bootstrap-table.min.js
@@ -0,0 +1,9 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=null,c=function(a){var b=arguments,c=!0,d=1;return a=a.replace(/%s/g,function(){var a=b[d++];return"undefined"==typeof a?(c=!1,""):a}),c?a:""},d=function(b,c,d,e){var f="";return a.each(b,function(a,b){return b[c]===e?(f=b[d],!1):!0}),f},e=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},f=function(b){var c,d,e,f=0,g=[];for(c=0;c<b[0].length;c++)f+=b[0][c].colspan||1;for(c=0;c<b.length;c++)for(g[c]=[],d=0;f>d;d++)g[c][d]=!1;for(c=0;c<b.length;c++)for(d=0;d<b[c].length;d++){var h=b[c][d],i=h.rowspan||1,j=h.colspan||1,k=a.inArray(!1,g[c]);for(1===j&&(h.fieldIndex=k,"undefined"==typeof h.field&&(h.field=k)),e=0;i>e;e++)g[c+e][k]=!0;for(e=0;j>e;e++)g[c][k+e]=!0}},g=function(){if(null===b){var c,d,e=a("<p/>").addClass("fixed-table-scroll-inner"),f=a("<div/>").addClass("fixed-table-scroll-outer");f.append(e),a("body").append(f),c=e[0].offsetWidth,f.css("overflow","scroll"),d=e[0].offsetWidth,c===d&&(d=f[0].clientWidth),f.remove(),b=c-d}return b},h=function(b,d,e,f){var g=d;if("string"==typeof d){var h=d.split(".");h.length>1?(g=window,a.each(h,function(a,b){g=g[b]})):g=window[d]}return"object"==typeof g?g:"function"==typeof g?g.apply(b,e):!g&&"string"==typeof d&&c.apply(this,[d].concat(e))?c.apply(this,[d].concat(e)):f},i=function(b,c,d){var e=Object.getOwnPropertyNames(b),f=Object.getOwnPropertyNames(c),g="";if(d&&e.length!==f.length)return!1;for(var h=0;h<e.length;h++)if(g=e[h],a.inArray(g,f)>-1&&b[g]!==c[g])return!1;return!0},j=function(a){return"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"):a},k=function(b){var c=0;return b.children().each(function(){c<a(this).outerHeight(!0)&&(c=a(this).outerHeight(!0))}),c},l=function(a){for(var b in a){var c=b.split(/(?=[A-Z])/).join("-").toLowerCase();c!==b&&(a[c]=a[b],delete a[b])}return a},m=function(a,b){var c=a;if("string"!=typeof b||a.hasOwnProperty(b))return a[b];var d=b.split(".");for(var e in d)c=c[d[e]];return c},n=function(b,c){this.options=c,this.$el=a(b),this.$el_=this.$el.clone(),this.timeoutId_=0,this.timeoutFooter_=0,this.init()};n.DEFAULTS={classes:"table table-hover",locale:void 0,height:void 0,undefinedText:"-",sortName:void 0,sortOrder:"asc",striped:!1,columns:[[]],data:[],dataField:"rows",method:"get",url:void 0,ajax:void 0,cache:!0,contentType:"application/json",dataType:"json",ajaxOptions:{},queryParams:function(a){return a},queryParamsType:"limit",responseHandler:function(a){return a},pagination:!1,onlyInfoPagination:!1,sidePagination:"client",totalRows:0,pageNumber:1,pageSize:10,pageList:[10,25,50,100],paginationHAlign:"right",paginationVAlign:"bottom",paginationDetailHAlign:"left",paginationFirstText:"&laquo;",paginationPreText:"&lsaquo;",paginationNextText:"&rsaquo;",paginationLastText:"&raquo;",search:!1,strictSearch:!1,searchAlign:"right",selectItemName:"btSelectItem",showHeader:!0,showFooter:!1,showColumns:!1,showPaginationSwitch:!1,showRefresh:!1,showToggle:!1,buttonsAlign:"right",smartDisplay:!0,minimumCountColumns:1,idField:void 0,uniqueId:void 0,cardView:!1,detailView:!1,detailFormatter:function(){return""},trimOnSearch:!0,clickToSelect:!1,singleSelect:!1,toolbar:void 0,toolbarAlign:"left",checkboxHeader:!0,sortable:!0,silentSort:!0,maintainSelected:!1,searchTimeOut:500,searchText:"",iconSize:void 0,iconsPrefix:"glyphicon",icons:{paginationSwitchDown:"glyphicon-collapse-down icon-chevron-down",paginationSwitchUp:"glyphicon-collapse-up icon-chevron-up",refresh:"glyphicon-refresh icon-refresh",toggle:"glyphicon-list-alt icon-list-alt",columns:"glyphicon-th icon-th",detailOpen:"glyphicon-plus icon-plus",detailClose:"glyphicon-minus icon-minus"},rowStyle:function(){return{}},rowAttributes:function(){return{}},onAll:function(){return!1},onClickCell:function(){return!1},onDblClickCell:function(){return!1},onClickRow:function(){return!1},onDblClickRow:function(){return!1},onSort:function(){return!1},onCheck:function(){return!1},onUncheck:function(){return!1},onCheckAll:function(){return!1},onUncheckAll:function(){return!1},onCheckSome:function(){return!1},onUncheckSome:function(){return!1},onLoadSuccess:function(){return!1},onLoadError:function(){return!1},onColumnSwitch:function(){return!1},onPageChange:function(){return!1},onSearch:function(){return!1},onToggle:function(){return!1},onPreBody:function(){return!1},onPostBody:function(){return!1},onPostHeader:function(){return!1},onExpandRow:function(){return!1},onCollapseRow:function(){return!1},onRefreshOptions:function(){return!1},onResetView:function(){return!1}},n.LOCALES=[],n.LOCALES["en-US"]=n.LOCALES.en={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return c("%s records per page",a)},formatShowingRows:function(a,b,d){return c("Showing %s to %s of %s rows",a,b,d)},formatDetailPagination:function(a){return c("Showing %s rows",a)},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(n.DEFAULTS,n.LOCALES["en-US"]),n.COLUMN_DEFAULTS={radio:!1,checkbox:!1,checkboxEnabled:!0,field:void 0,title:void 0,titleTooltip:void 0,"class":void 0,align:void 0,halign:void 0,falign:void 0,valign:void 0,width:void 0,sortable:!1,order:"asc",visible:!0,switchable:!0,clickToSelect:!0,formatter:void 0,footerFormatter:void 0,events:void 0,sorter:void 0,sortName:void 0,cellStyle:void 0,searchable:!0,searchFormatter:!0,cardVisible:!0},n.EVENTS={"all.bs.table":"onAll","click-cell.bs.table":"onClickCell","dbl-click-cell.bs.table":"onDblClickCell","click-row.bs.table":"onClickRow","dbl-click-row.bs.table":"onDblClickRow","sort.bs.table":"onSort","check.bs.table":"onCheck","uncheck.bs.table":"onUncheck","check-all.bs.table":"onCheckAll","uncheck-all.bs.table":"onUncheckAll","check-some.bs.table":"onCheckSome","uncheck-some.bs.table":"onUncheckSome","load-success.bs.table":"onLoadSuccess","load-error.bs.table":"onLoadError","column-switch.bs.table":"onColumnSwitch","page-change.bs.table":"onPageChange","search.bs.table":"onSearch","toggle.bs.table":"onToggle","pre-body.bs.table":"onPreBody","post-body.bs.table":"onPostBody","post-header.bs.table":"onPostHeader","expand-row.bs.table":"onExpandRow","collapse-row.bs.table":"onCollapseRow","refresh-options.bs.table":"onRefreshOptions","reset-view.bs.table":"onResetView"},n.prototype.init=function(){this.initLocale(),this.initContainer(),this.initTable(),this.initHeader(),this.initData(),this.initFooter(),this.initToolbar(),this.initPagination(),this.initBody(),this.initSearchText(),this.initServer()},n.prototype.initLocale=function(){if(this.options.locale){var b=this.options.locale.split(/-|_/);b[0].toLowerCase(),b[1]&&b[1].toUpperCase(),a.fn.bootstrapTable.locales[this.options.locale]?a.extend(this.options,a.fn.bootstrapTable.locales[this.options.locale]):a.fn.bootstrapTable.locales[b.join("-")]?a.extend(this.options,a.fn.bootstrapTable.locales[b.join("-")]):a.fn.bootstrapTable.locales[b[0]]&&a.extend(this.options,a.fn.bootstrapTable.locales[b[0]])}},n.prototype.initContainer=function(){this.$container=a(['<div class="bootstrap-table">','<div class="fixed-table-toolbar"></div>',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'<div class="fixed-table-pagination" style="clear: both;"></div>':"",'<div class="fixed-table-container">','<div class="fixed-table-header"><table></table></div>','<div class="fixed-table-body">','<div class="fixed-table-loading">',this.options.formatLoadingMessage(),"</div>","</div>",'<div class="fixed-table-footer"><table><tr></tr></table></div>',"bottom"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'<div class="fixed-table-pagination"></div>':"","</div>","</div>"].join("")),this.$container.insertAfter(this.$el),this.$tableContainer=this.$container.find(".fixed-table-container"),this.$tableHeader=this.$container.find(".fixed-table-header"),this.$tableBody=this.$container.find(".fixed-table-body"),this.$tableLoading=this.$container.find(".fixed-table-loading"),this.$tableFooter=this.$container.find(".fixed-table-footer"),this.$toolbar=this.$container.find(".fixed-table-toolbar"),this.$pagination=this.$container.find(".fixed-table-pagination"),this.$tableBody.append(this.$el),this.$container.after('<div class="clearfix"></div>'),this.$el.addClass(this.options.classes),this.options.striped&&this.$el.addClass("table-striped"),-1!==a.inArray("table-no-bordered",this.options.classes.split(" "))&&this.$tableContainer.addClass("table-no-bordered")},n.prototype.initTable=function(){var b=this,c=[],d=[];this.$header=this.$el.find(">thead"),this.$header.length||(this.$header=a("<thead></thead>").appendTo(this.$el)),this.$header.find("tr").each(function(){var b=[];a(this).find("th").each(function(){b.push(a.extend({},{title:a(this).html(),"class":a(this).attr("class"),titleTooltip:a(this).attr("title"),rowspan:a(this).attr("rowspan")?+a(this).attr("rowspan"):void 0,colspan:a(this).attr("colspan")?+a(this).attr("colspan"):void 0},a(this).data()))}),c.push(b)}),a.isArray(this.options.columns[0])||(this.options.columns=[this.options.columns]),this.options.columns=a.extend(!0,[],c,this.options.columns),this.columns=[],f(this.options.columns),a.each(this.options.columns,function(c,d){a.each(d,function(d,e){e=a.extend({},n.COLUMN_DEFAULTS,e),"undefined"!=typeof e.fieldIndex&&(b.columns[e.fieldIndex]=e),b.options.columns[c][d]=e})}),this.options.data.length||(this.$el.find(">tbody>tr").each(function(){var c={};c._id=a(this).attr("id"),c._class=a(this).attr("class"),c._data=l(a(this).data()),a(this).find("td").each(function(d){var e=b.columns[d].field;c[e]=a(this).html(),c["_"+e+"_id"]=a(this).attr("id"),c["_"+e+"_class"]=a(this).attr("class"),c["_"+e+"_rowspan"]=a(this).attr("rowspan"),c["_"+e+"_title"]=a(this).attr("title"),c["_"+e+"_data"]=l(a(this).data())}),d.push(c)}),this.options.data=d)},n.prototype.initHeader=function(){var b=this,d={},e=[];this.header={fields:[],styles:[],classes:[],formatters:[],events:[],sorters:[],sortNames:[],cellStyles:[],searchables:[]},a.each(this.options.columns,function(f,g){e.push("<tr>"),0==f&&!b.options.cardView&&b.options.detailView&&e.push(c('<th class="detail" rowspan="%s"><div class="fht-cell"></div></th>',b.options.columns.length)),a.each(g,function(a,f){var g="",h="",i="",j="",k=c(' class="%s"',f["class"]),l=(b.options.sortOrder||f.order,"px"),m=f.width;if(void 0===f.width||b.options.cardView||"string"==typeof f.width&&-1!==f.width.indexOf("%")&&(l="%"),f.width&&"string"==typeof f.width&&(m=f.width.replace("%","").replace("px","")),h=c("text-align: %s; ",f.halign?f.halign:f.align),i=c("text-align: %s; ",f.align),j=c("vertical-align: %s; ",f.valign),j+=c("width: %s; ",!f.checkbox&&!f.radio||m?m?m+l:void 0:"36px"),"undefined"!=typeof f.fieldIndex){if(b.header.fields[f.fieldIndex]=f.field,b.header.styles[f.fieldIndex]=i+j,b.header.classes[f.fieldIndex]=k,b.header.formatters[f.fieldIndex]=f.formatter,b.header.events[f.fieldIndex]=f.events,b.header.sorters[f.fieldIndex]=f.sorter,b.header.sortNames[f.fieldIndex]=f.sortName,b.header.cellStyles[f.fieldIndex]=f.cellStyle,b.header.searchables[f.fieldIndex]=f.searchable,!f.visible)return;if(b.options.cardView&&!f.cardVisible)return;d[f.field]=f}e.push("<th"+c(' title="%s"',f.titleTooltip),f.checkbox||f.radio?c(' class="bs-checkbox %s"',f["class"]||""):k,c(' style="%s"',h+j),c(' rowspan="%s"',f.rowspan),c(' colspan="%s"',f.colspan),c(' data-field="%s"',f.field),"tabindex='0'",">"),e.push(c('<div class="th-inner %s">',b.options.sortable&&f.sortable?"sortable both":"")),g=f.title,f.checkbox&&(!b.options.singleSelect&&b.options.checkboxHeader&&(g='<input name="btSelectAll" type="checkbox" />'),b.header.stateField=f.field),f.radio&&(g="",b.header.stateField=f.field,b.options.singleSelect=!0),e.push(g),e.push("</div>"),e.push('<div class="fht-cell"></div>'),e.push("</div>"),e.push("</th>")}),e.push("</tr>")}),this.$header.html(e.join("")),this.$header.find("th[data-field]").each(function(){a(this).data(d[a(this).data("field")])}),this.$container.off("click",".th-inner").on("click",".th-inner",function(c){b.options.sortable&&a(this).parent().data().sortable&&b.onSort(c)}),this.$header.children().children().off("keypress").on("keypress",function(c){if(b.options.sortable&&a(this).data().sortable){var d=c.keyCode||c.which;13==d&&b.onSort(c)}}),!this.options.showHeader||this.options.cardView?(this.$header.hide(),this.$tableHeader.hide(),this.$tableLoading.css("top",0)):(this.$header.show(),this.$tableHeader.show(),this.$tableLoading.css("top",this.$header.outerHeight()+1),this.getCaret()),this.$selectAll=this.$header.find('[name="btSelectAll"]'),this.$container.off("click",'[name="btSelectAll"]').on("click",'[name="btSelectAll"]',function(){var c=a(this).prop("checked");b[c?"checkAll":"uncheckAll"](),b.updateSelected()})},n.prototype.initFooter=function(){!this.options.showFooter||this.options.cardView?this.$tableFooter.hide():this.$tableFooter.show()},n.prototype.initData=function(a,b){this.data="append"===b?this.data.concat(a):"prepend"===b?[].concat(a).concat(this.data):a||this.options.data,this.options.data="append"===b?this.options.data.concat(a):"prepend"===b?[].concat(a).concat(this.options.data):this.data,"server"!==this.options.sidePagination&&this.initSort()},n.prototype.initSort=function(){var b=this,c=this.options.sortName,d="desc"===this.options.sortOrder?-1:1,e=a.inArray(this.options.sortName,this.header.fields);-1!==e&&this.data.sort(function(f,g){b.header.sortNames[e]&&(c=b.header.sortNames[e]);var i=m(f,c),j=m(g,c),k=h(b.header,b.header.sorters[e],[i,j]);return void 0!==k?d*k:((void 0===i||null===i)&&(i=""),(void 0===j||null===j)&&(j=""),a.isNumeric(i)&&a.isNumeric(j)?(i=parseFloat(i),j=parseFloat(j),j>i?-1*d:d):i===j?0:("string"!=typeof i&&(i=i.toString()),-1===i.localeCompare(j)?-1*d:d))})},n.prototype.onSort=function(b){var c="keypress"===b.type?a(b.currentTarget):a(b.currentTarget).parent(),d=this.$header.find("th").eq(c.index());return this.$header.add(this.$header_).find("span.order").remove(),this.options.sortName===c.data("field")?this.options.sortOrder="asc"===this.options.sortOrder?"desc":"asc":(this.options.sortName=c.data("field"),this.options.sortOrder="asc"===c.data("order")?"desc":"asc"),this.trigger("sort",this.options.sortName,this.options.sortOrder),c.add(d).data("order",this.options.sortOrder),this.getCaret(),"server"===this.options.sidePagination?void this.initServer(this.options.silentSort):(this.initSort(),void this.initBody())},n.prototype.initToolbar=function(){var b,d,f=this,g=[],i=0,j=0;this.$toolbar.html(""),("string"==typeof this.options.toolbar||"object"==typeof this.options.toolbar)&&a(c('<div class="bars pull-%s"></div>',this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)),g=[c('<div class="columns columns-%s btn-group pull-%s">',this.options.buttonsAlign,this.options.buttonsAlign)],"string"==typeof this.options.icons&&(this.options.icons=h(null,this.options.icons)),this.options.showPaginationSwitch&&g.push(c('<button class="btn btn-default" type="button" name="paginationSwitch" title="%s">',this.options.formatPaginationSwitch()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.paginationSwitchDown),"</button>"),this.options.showRefresh&&g.push(c('<button class="btn btn-default'+c(" btn-%s",this.options.iconSize)+'" type="button" name="refresh" title="%s">',this.options.formatRefresh()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.refresh),"</button>"),this.options.showToggle&&g.push(c('<button class="btn btn-default'+c(" btn-%s",this.options.iconSize)+'" type="button" name="toggle" title="%s">',this.options.formatToggle()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.toggle),"</button>"),this.options.showColumns&&(g.push(c('<div class="keep-open btn-group" title="%s">',this.options.formatColumns()),'<button type="button" class="btn btn-default'+c(" btn-%s",this.options.iconSize)+' dropdown-toggle" data-toggle="dropdown">',c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.columns),' <span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">'),a.each(this.columns,function(a,b){if(!(b.radio||b.checkbox||f.options.cardView&&!b.cardVisible)){var d=b.visible?' checked="checked"':"";b.switchable&&(g.push(c('<li><label><input type="checkbox" data-field="%s" value="%s"%s> %s</label></li>',b.field,a,d,b.title)),j++)}}),g.push("</ul>","</div>")),g.push("</div>"),(this.showToolbar||g.length>2)&&this.$toolbar.append(g.join("")),this.options.showPaginationSwitch&&this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click",a.proxy(this.togglePagination,this)),this.options.showRefresh&&this.$toolbar.find('button[name="refresh"]').off("click").on("click",a.proxy(this.refresh,this)),this.options.showToggle&&this.$toolbar.find('button[name="toggle"]').off("click").on("click",function(){f.toggleView()}),this.options.showColumns&&(b=this.$toolbar.find(".keep-open"),j<=this.options.minimumCountColumns&&b.find("input").prop("disabled",!0),b.find("li").off("click").on("click",function(a){a.stopImmediatePropagation()}),b.find("input").off("click").on("click",function(){var b=a(this);f.toggleColumn(e(f.columns,a(this).data("field")),b.prop("checked"),!1),f.trigger("column-switch",a(this).data("field"),b.prop("checked"))})),this.options.search&&(g=[],g.push('<div class="pull-'+this.options.searchAlign+' search">',c('<input class="form-control'+c(" input-%s",this.options.iconSize)+'" type="text" placeholder="%s">',this.options.formatSearch()),"</div>"),this.$toolbar.append(g.join("")),d=this.$toolbar.find(".search input"),d.off("keyup drop").on("keyup drop",function(a){clearTimeout(i),i=setTimeout(function(){f.onSearch(a)},f.options.searchTimeOut)}))},n.prototype.onSearch=function(b){var c=a.trim(a(b.currentTarget).val());this.options.trimOnSearch&&a(b.currentTarget).val()!==c&&a(b.currentTarget).val(c),c!==this.searchText&&(this.searchText=c,this.options.pageNumber=1,this.initSearch(),this.updatePagination(),this.trigger("search",c))},n.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){var c=this.searchText&&this.searchText.toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(b){for(var c in d)if(a.isArray(d[c])){if(-1===a.inArray(b[c],d[c]))return!1}else if(b[c]!==d[c])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g in d){g=a.isNumeric(g)?parseInt(g,10):g;var i=d[g],j=b.columns[e(b.columns,g)],k=a.inArray(g,b.header.fields);j&&j.searchFormatter&&(i=h(j,b.header.formatters[k],[i,d,f],i));var l=a.inArray(g,b.header.fields);if(-1!==l&&b.header.searchables[l]&&("string"==typeof i||"number"==typeof i))if(b.options.strictSearch){if((i+"").toLowerCase()===c)return!0}else if(-1!==(i+"").toLowerCase().indexOf(c))return!0}return!1}):this.data}},n.prototype.initPagination=function(){if(!this.options.pagination)return void this.$pagination.hide();this.$pagination.show();var b,d,e,f,g,h,i,j,k,l=this,m=[],n=!1,o=this.getData();if("server"!==this.options.sidePagination&&(this.options.totalRows=o.length),this.totalPages=0,this.options.totalRows){if(this.options.pageSize===this.options.formatAllRows())this.options.pageSize=this.options.totalRows,n=!0;else if(this.options.pageSize===this.options.totalRows){var p="string"==typeof this.options.pageList?this.options.pageList.replace("[","").replace("]","").replace(/ /g,"").toLowerCase().split(","):this.options.pageList;a.inArray(this.options.formatAllRows().toLowerCase(),p)>-1&&(n=!0)}this.totalPages=~~((this.options.totalRows-1)/this.options.pageSize)+1,this.options.totalPages=this.totalPages}if(this.totalPages>0&&this.options.pageNumber>this.totalPages&&(this.options.pageNumber=this.totalPages),this.pageFrom=(this.options.pageNumber-1)*this.options.pageSize+1,this.pageTo=this.options.pageNumber*this.options.pageSize,this.pageTo>this.options.totalRows&&(this.pageTo=this.options.totalRows),m.push('<div class="pull-'+this.options.paginationDetailHAlign+' pagination-detail">','<span class="pagination-info">',this.options.onlyInfoPagination?this.options.formatDetailPagination(this.options.totalRows):this.options.formatShowingRows(this.pageFrom,this.pageTo,this.options.totalRows),"</span>"),!this.options.onlyInfoPagination){m.push('<span class="page-list">');var q=[c('<span class="btn-group %s">',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?"dropdown":"dropup"),'<button type="button" class="btn btn-default '+c(" btn-%s",this.options.iconSize)+' dropdown-toggle" data-toggle="dropdown">','<span class="page-size">',n?this.options.formatAllRows():this.options.pageSize,"</span>",' <span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">'],r=this.options.pageList;if("string"==typeof this.options.pageList){var s=this.options.pageList.replace("[","").replace("]","").replace(/ /g,"").split(",");r=[],a.each(s,function(a,b){r.push(b.toUpperCase()===l.options.formatAllRows().toUpperCase()?l.options.formatAllRows():+b)})}for(a.each(r,function(a,b){if(!l.options.smartDisplay||0===a||r[a-1]<=l.options.totalRows){var d;d=n?b===l.options.formatAllRows()?' class="active"':"":b===l.options.pageSize?' class="active"':"",q.push(c('<li%s><a href="javascript:void(0)">%s</a></li>',d,b))}}),q.push("</ul></span>"),m.push(this.options.formatRecordsPerPage(q.join(""))),m.push("</span>"),m.push("</div>",'<div class="pull-'+this.options.paginationHAlign+' pagination">','<ul class="pagination'+c(" pagination-%s",this.options.iconSize)+'">','<li class="page-first"><a href="javascript:void(0)">'+this.options.paginationFirstText+"</a></li>",'<li class="page-pre"><a href="javascript:void(0)">'+this.options.paginationPreText+"</a></li>"),this.totalPages<5?(d=1,e=this.totalPages):(d=this.options.pageNumber-2,e=d+4,1>d&&(d=1,e=5),e>this.totalPages&&(e=this.totalPages,d=e-4)),b=d;e>=b;b++)m.push('<li class="page-number'+(b===this.options.pageNumber?" active":"")+'">','<a href="javascript:void(0)">',b,"</a>","</li>");m.push('<li class="page-next"><a href="javascript:void(0)">'+this.options.paginationNextText+"</a></li>",'<li class="page-last"><a href="javascript:void(0)">'+this.options.paginationLastText+"</a></li>","</ul>","</div>")}this.$pagination.html(m.join("")),this.options.onlyInfoPagination||(f=this.$pagination.find(".page-list a"),g=this.$pagination.find(".page-first"),h=this.$pagination.find(".page-pre"),i=this.$pagination.find(".page-next"),j=this.$pagination.find(".page-last"),k=this.$pagination.find(".page-number"),this.options.pageNumber<=1&&(g.addClass("disabled"),h.addClass("disabled")),this.options.pageNumber>=this.totalPages&&(i.addClass("disabled"),j.addClass("disabled")),this.options.smartDisplay&&(this.totalPages<=1&&this.$pagination.find("div.pagination").hide(),(r.length<2||this.options.totalRows<=r[0])&&this.$pagination.find("span.page-list").hide(),this.$pagination[this.getData().length?"show":"hide"]()),n&&(this.options.pageSize=this.options.formatAllRows()),f.off("click").on("click",a.proxy(this.onPageListChange,this)),g.off("click").on("click",a.proxy(this.onPageFirst,this)),h.off("click").on("click",a.proxy(this.onPagePre,this)),i.off("click").on("click",a.proxy(this.onPageNext,this)),j.off("click").on("click",a.proxy(this.onPageLast,this)),k.off("click").on("click",a.proxy(this.onPageNumber,this)))},n.prototype.updatePagination=function(b){b&&a(b.currentTarget).hasClass("disabled")||(this.options.maintainSelected||this.resetRows(),this.initPagination(),"server"===this.options.sidePagination?this.initServer():this.initBody(),this.trigger("page-change",this.options.pageNumber,this.options.pageSize))},n.prototype.onPageListChange=function(b){var c=a(b.currentTarget);c.parent().addClass("active").siblings().removeClass("active"),this.options.pageSize=c.text().toUpperCase()===this.options.formatAllRows().toUpperCase()?this.options.formatAllRows():+c.text(),this.$toolbar.find(".page-size").text(this.options.pageSize),this.updatePagination(b)},n.prototype.onPageFirst=function(a){this.options.pageNumber=1,this.updatePagination(a)},n.prototype.onPagePre=function(a){this.options.pageNumber--,this.updatePagination(a)},n.prototype.onPageNext=function(a){this.options.pageNumber++,this.updatePagination(a)},n.prototype.onPageLast=function(a){this.options.pageNumber=this.totalPages,this.updatePagination(a)},n.prototype.onPageNumber=function(b){this.options.pageNumber!==+a(b.currentTarget).text()&&(this.options.pageNumber=+a(b.currentTarget).text(),this.updatePagination(b))},n.prototype.initBody=function(b){var f=this,g=[],i=this.getData();this.trigger("pre-body",i),this.$body=this.$el.find(">tbody"),this.$body.length||(this.$body=a("<tbody></tbody>").appendTo(this.$el)),this.options.pagination&&"server"!==this.options.sidePagination||(this.pageFrom=1,this.pageTo=i.length);for(var k=this.pageFrom-1;k<this.pageTo;k++){var l,n=i[k],o={},p=[],q="",r={},s=[];if(o=h(this.options,this.options.rowStyle,[n,k],o),o&&o.css)for(l in o.css)p.push(l+": "+o.css[l]);if(r=h(this.options,this.options.rowAttributes,[n,k],r))for(l in r)s.push(c('%s="%s"',l,j(r[l])));n._data&&!a.isEmptyObject(n._data)&&a.each(n._data,function(a,b){"index"!==a&&(q+=c(' data-%s="%s"',a,b))}),g.push("<tr",c(" %s",s.join(" ")),c(' id="%s"',a.isArray(n)?void 0:n._id),c(' class="%s"',o.classes||(a.isArray(n)?void 0:n._class)),c(' data-index="%s"',k),c(' data-uniqueid="%s"',n[this.options.uniqueId]),c("%s",q),">"),this.options.cardView&&g.push(c('<td colspan="%s">',this.header.fields.length)),!this.options.cardView&&this.options.detailView&&g.push("<td>",'<a class="detail-icon" href="javascript:">',c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.detailOpen),"</a>","</td>"),a.each(this.header.fields,function(b,i){var j="",l=m(n,i),q="",r={},s="",t=f.header.classes[b],u="",v="",w="",x=f.columns[e(f.columns,i)];if(x.visible){if(o=c('style="%s"',p.concat(f.header.styles[b]).join("; ")),l=h(x,f.header.formatters[b],[l,n,k],l),n["_"+i+"_id"]&&(s=c(' id="%s"',n["_"+i+"_id"])),n["_"+i+"_class"]&&(t=c(' class="%s"',n["_"+i+"_class"])),n["_"+i+"_rowspan"]&&(v=c(' rowspan="%s"',n["_"+i+"_rowspan"])),n["_"+i+"_title"]&&(w=c(' title="%s"',n["_"+i+"_title"])),r=h(f.header,f.header.cellStyles[b],[l,n,k],r),r.classes&&(t=c(' class="%s"',r.classes)),r.css){var y=[];for(var z in r.css)y.push(z+": "+r.css[z]);o=c('style="%s"',y.concat(f.header.styles[b]).join("; "))}n["_"+i+"_data"]&&!a.isEmptyObject(n["_"+i+"_data"])&&a.each(n["_"+i+"_data"],function(a,b){"index"!==a&&(u+=c(' data-%s="%s"',a,b))}),x.checkbox||x.radio?(q=x.checkbox?"checkbox":q,q=x.radio?"radio":q,j=[f.options.cardView?'<div class="card-view">':'<td class="bs-checkbox">',"<input"+c(' data-index="%s"',k)+c(' name="%s"',f.options.selectItemName)+c(' type="%s"',q)+c(' value="%s"',n[f.options.idField])+c(' checked="%s"',l===!0||l&&l.checked?"checked":void 0)+c(' disabled="%s"',!x.checkboxEnabled||l&&l.disabled?"disabled":void 0)+" />",f.header.formatters[b]&&"string"==typeof l?l:"",f.options.cardView?"</div>":"</td>"].join(""),n[f.header.stateField]=l===!0||l&&l.checked):(l="undefined"==typeof l||null===l?f.options.undefinedText:l,j=f.options.cardView?['<div class="card-view">',f.options.showHeader?c('<span class="title" %s>%s</span>',o,d(f.columns,"field","title",i)):"",c('<span class="value">%s</span>',l),"</div>"].join(""):[c("<td%s %s %s %s %s %s>",s,t,o,u,v,w),l,"</td>"].join(""),f.options.cardView&&f.options.smartDisplay&&""===l&&(j='<div class="card-view"></div>')),g.push(j)}}),this.options.cardView&&g.push("</td>"),g.push("</tr>")}g.length||g.push('<tr class="no-records-found">',c('<td colspan="%s">%s</td>',this.$header.find("th").length,this.options.formatNoMatches()),"</tr>"),this.$body.html(g.join("")),b||this.scrollTo(0),this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick",function(b){var d=a(this),g=d.parent(),h=f.data[g.data("index")],i=d[0].cellIndex,j=f.header.fields[f.options.detailView&&!f.options.cardView?i-1:i],k=f.columns[e(f.columns,j)],l=m(h,j);if(!d.find(".detail-icon").length&&(f.trigger("click"===b.type?"click-cell":"dbl-click-cell",j,l,h,d),f.trigger("click"===b.type?"click-row":"dbl-click-row",h,g),"click"===b.type&&f.options.clickToSelect&&k.clickToSelect)){var n=g.find(c('[name="%s"]',f.options.selectItemName));n.length&&n[0].click()}}),this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click",function(){var b=a(this),d=b.parent().parent(),e=d.data("index"),g=i[e];d.next().is("tr.detail-view")?(b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailOpen)),d.next().remove(),f.trigger("collapse-row",e,g)):(b.find("i").attr("class",c("%s %s",f.options.iconsPrefix,f.options.icons.detailClose)),d.after(c('<tr class="detail-view"><td colspan="%s">%s</td></tr>',d.find("td").length,h(f.options,f.options.detailFormatter,[e,g],""))),f.trigger("expand-row",e,g,d.next().find("td"))),f.resetView()}),this.$selectItem=this.$body.find(c('[name="%s"]',this.options.selectItemName)),this.$selectItem.off("click").on("click",function(b){b.stopImmediatePropagation();var c=a(this),d=c.prop("checked"),e=f.data[c.data("index")];f.options.maintainSelected&&a(this).is(":radio")&&a.each(f.options.data,function(a,b){b[f.header.stateField]=!1}),e[f.header.stateField]=d,f.options.singleSelect&&(f.$selectItem.not(this).each(function(){f.data[a(this).data("index")][f.header.stateField]=!1}),f.$selectItem.filter(":checked").not(this).prop("checked",!1)),f.updateSelected(),f.trigger(d?"check":"uncheck",e,c)}),a.each(this.header.events,function(b,c){if(c){"string"==typeof c&&(c=h(null,c));var d=f.header.fields[b],e=a.inArray(d,f.getVisibleFields());f.options.detailView&&!f.options.cardView&&(e+=1);for(var g in c)f.$body.find(">tr:not(.no-records-found)").each(function(){var b=a(this),h=b.find(f.options.cardView?".card-view":"td").eq(e),i=g.indexOf(" "),j=g.substring(0,i),k=g.substring(i+1),l=c[g];h.find(k).off(j).on(j,function(a){var c=b.data("index"),e=f.data[c],g=e[d];l.apply(this,[a,g,e,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body")},n.prototype.initServer=function(b,c){var d,e=this,f={},g={pageSize:this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,pageNumber:this.options.pageNumber,searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};(this.options.url||this.options.ajax)&&("limit"===this.options.queryParamsType&&(g={search:g.searchText,sort:g.sortName,order:g.sortOrder},this.options.pagination&&(g.limit=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,g.offset=this.options.pageSize===this.options.formatAllRows()?0:this.options.pageSize*(this.options.pageNumber-1))),a.isEmptyObject(this.filterColumnsPartial)||(g.filter=JSON.stringify(this.filterColumnsPartial,null)),f=h(this.options,this.options.queryParams,[g],f),a.extend(f,c||{}),f!==!1&&(b||this.$tableLoading.show(),d=a.extend({},h(null,this.options.ajaxOptions),{type:this.options.method,url:this.options.url,data:"application/json"===this.options.contentType&&"post"===this.options.method?JSON.stringify(f):f,cache:this.options.cache,contentType:this.options.contentType,dataType:this.options.dataType,success:function(a){a=h(e.options,e.options.responseHandler,[a],a),e.load(a),e.trigger("load-success",a)},error:function(a){e.trigger("load-error",a.status,a)},complete:function(){b||e.$tableLoading.hide()}}),this.options.ajax?h(this,this.options.ajax,[d],null):a.ajax(d)));
+
+},n.prototype.initSearchText=function(){if(this.options.search&&""!==this.options.searchText){var a=this.$toolbar.find(".search input");a.val(this.options.searchText),this.onSearch({currentTarget:a})}},n.prototype.getCaret=function(){var b=this;a.each(this.$header.find("th"),function(c,d){a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field")===b.options.sortName?b.options.sortOrder:"both")})},n.prototype.updateSelected=function(){var b=this.$selectItem.filter(":enabled").length&&this.$selectItem.filter(":enabled").length===this.$selectItem.filter(":enabled").filter(":checked").length;this.$selectAll.add(this.$selectAll_).prop("checked",b),this.$selectItem.each(function(){a(this).closest("tr")[a(this).prop("checked")?"addClass":"removeClass"]("selected")})},n.prototype.updateRows=function(){var b=this;this.$selectItem.each(function(){b.data[a(this).data("index")][b.header.stateField]=a(this).prop("checked")})},n.prototype.resetRows=function(){var b=this;a.each(this.data,function(a,c){b.$selectAll.prop("checked",!1),b.$selectItem.prop("checked",!1),b.header.stateField&&(c[b.header.stateField]=!1)})},n.prototype.trigger=function(b){var c=Array.prototype.slice.call(arguments,1);b+=".bs.table",this.options[n.EVENTS[b]].apply(this.options,c),this.$el.trigger(a.Event(b),c),this.options.onAll(b,c),this.$el.trigger(a.Event("all.bs.table"),[b,c])},n.prototype.resetHeader=function(){clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(a.proxy(this.fitHeader,this),this.$el.is(":hidden")?100:0)},n.prototype.fitHeader=function(){var b,d,e,f,h=this;if(h.$el.is(":hidden"))return void(h.timeoutId_=setTimeout(a.proxy(h.fitHeader,h),100));if(b=this.$tableBody.get(0),d=b.scrollWidth>b.clientWidth&&b.scrollHeight>b.clientHeight+this.$header.outerHeight()?g():0,this.$el.css("margin-top",-this.$header.outerHeight()),e=a(":focus"),e.length>0){var i=e.parents("th");if(i.length>0){var j=i.attr("data-field");if(void 0!==j){var k=this.$header.find("[data-field='"+j+"']");k.length>0&&k.find(":input").addClass("focus-temp")}}}this.$header_=this.$header.clone(!0,!0),this.$selectAll_=this.$header_.find('[name="btSelectAll"]'),this.$tableHeader.css({"margin-right":d}).find("table").css("width",this.$el.outerWidth()).html("").attr("class",this.$el.attr("class")).append(this.$header_),f=a(".focus-temp:visible:eq(0)"),f.length>0&&(f.focus(),this.$header.find(".focus-temp").removeClass("focus-temp")),this.$header.find("th[data-field]").each(function(){h.$header_.find(c('th[data-field="%s"]',a(this).data("field"))).data(a(this).data())});var l=this.getVisibleFields();this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(b){var d=a(this),e=b;h.options.detailView&&!h.options.cardView&&(0===b&&h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()),e=b-1),h.$header_.find(c('th[data-field="%s"]',l[e])).find(".fht-cell").width(d.innerWidth())}),this.$tableBody.off("scroll").on("scroll",function(){h.$tableHeader.scrollLeft(a(this).scrollLeft()),h.options.showFooter&&!h.options.cardView&&h.$tableFooter.scrollLeft(a(this).scrollLeft())}),h.trigger("post-header")},n.prototype.resetFooter=function(){var b=this,d=b.getData(),e=[];this.options.showFooter&&!this.options.cardView&&(!this.options.cardView&&this.options.detailView&&e.push('<td><div class="th-inner">&nbsp;</div><div class="fht-cell"></div></td>'),a.each(this.columns,function(a,f){var g="",i="",j=c(' class="%s"',f["class"]);f.visible&&(!b.options.cardView||f.cardVisible)&&(g=c("text-align: %s; ",f.falign?f.falign:f.align),i=c("vertical-align: %s; ",f.valign),e.push("<td",j,c(' style="%s"',g+i),">"),e.push('<div class="th-inner">'),e.push(h(f,f.footerFormatter,[d],"&nbsp;")||"&nbsp;"),e.push("</div>"),e.push('<div class="fht-cell"></div>'),e.push("</div>"),e.push("</td>"))}),this.$tableFooter.find("tr").html(e.join("")),clearTimeout(this.timeoutFooter_),this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),this.$el.is(":hidden")?100:0))},n.prototype.fitFooter=function(){var b,c,d;return clearTimeout(this.timeoutFooter_),this.$el.is(":hidden")?void(this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),100)):(c=this.$el.css("width"),d=c>this.$tableBody.width()?g():0,this.$tableFooter.css({"margin-right":d}).find("table").css("width",c).attr("class",this.$el.attr("class")),b=this.$tableFooter.find("td"),void this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(c){var d=a(this);b.eq(c).find(".fht-cell").width(d.innerWidth())}))},n.prototype.toggleColumn=function(a,b,d){if(-1!==a&&(this.columns[a].visible=b,this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns)){var e=this.$toolbar.find(".keep-open input").prop("disabled",!1);d&&e.filter(c('[value="%s"]',a)).prop("checked",b),e.filter(":checked").length<=this.options.minimumCountColumns&&e.filter(":checked").prop("disabled",!0)}},n.prototype.toggleRow=function(a,b,d){-1!==a&&this.$body.find("undefined"!=typeof a?c('tr[data-index="%s"]',a):c('tr[data-uniqueid="%s"]',b))[d?"show":"hide"]()},n.prototype.getVisibleFields=function(){var b=this,c=[];return a.each(this.header.fields,function(a,d){var f=b.columns[e(b.columns,d)];f.visible&&c.push(d)}),c},n.prototype.resetView=function(a){var b=0;if(a&&a.height&&(this.options.height=a.height),this.$selectAll.prop("checked",this.$selectItem.length>0&&this.$selectItem.length===this.$selectItem.filter(":checked").length),this.options.height){var c=k(this.$toolbar),d=k(this.$pagination),e=this.options.height-c-d;this.$tableContainer.css("height",e+"px")}return this.options.cardView?(this.$el.css("margin-top","0"),void this.$tableContainer.css("padding-bottom","0")):(this.options.showHeader&&this.options.height?(this.$tableHeader.show(),this.resetHeader(),b+=this.$header.outerHeight()):(this.$tableHeader.hide(),this.trigger("post-header")),this.options.showFooter&&(this.resetFooter(),this.options.height&&(b+=this.$tableFooter.outerHeight()+1)),this.getCaret(),this.$tableContainer.css("padding-bottom",b+"px"),void this.trigger("reset-view"))},n.prototype.getData=function(b){return!this.searchText&&a.isEmptyObject(this.filterColumns)&&a.isEmptyObject(this.filterColumnsPartial)?b?this.options.data.slice(this.pageFrom-1,this.pageTo):this.options.data:b?this.data.slice(this.pageFrom-1,this.pageTo):this.data},n.prototype.load=function(b){var c=!1;"server"===this.options.sidePagination?(this.options.totalRows=b.total,c=b.fixedScroll,b=b[this.options.dataField]):a.isArray(b)||(c=b.fixedScroll,b=b.data),this.initData(b),this.initSearch(),this.initPagination(),this.initBody(c)},n.prototype.append=function(a){this.initData(a,"append"),this.initSearch(),this.initPagination(),this.initBody(!0)},n.prototype.prepend=function(a){this.initData(a,"prepend"),this.initSearch(),this.initPagination(),this.initBody(!0)},n.prototype.remove=function(b){var c,d,e=this.options.data.length;if(b.hasOwnProperty("field")&&b.hasOwnProperty("values")){for(c=e-1;c>=0;c--)d=this.options.data[c],d.hasOwnProperty(b.field)&&-1!==a.inArray(d[b.field],b.values)&&this.options.data.splice(c,1);e!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))}},n.prototype.removeAll=function(){this.options.data.length>0&&(this.options.data.splice(0,this.options.data.length),this.initSearch(),this.initPagination(),this.initBody(!0))},n.prototype.getRowByUniqueId=function(a){var b,c,d,e=this.options.uniqueId,f=this.options.data.length,g=null;for(b=f-1;b>=0;b--){if(c=this.options.data[b],c.hasOwnProperty(e))d=c[e];else{if(!c._data.hasOwnProperty(e))continue;d=c._data[e]}if("string"==typeof d?a=a.toString():"number"==typeof d&&(Number(d)===d&&d%1===0?a=parseInt(a):d===Number(d)&&0!==d&&(a=parseFloat(a))),d===a){g=c;break}}return g},n.prototype.removeByUniqueId=function(a){var b=this.options.data.length,c=this.getRowByUniqueId(a);c&&this.options.data.splice(this.options.data.indexOf(c),1),b!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))},n.prototype.updateByUniqueId=function(b){var c;b.hasOwnProperty("id")&&b.hasOwnProperty("row")&&(c=a.inArray(this.getRowByUniqueId(b.id),this.options.data),-1!==c&&(a.extend(this.data[c],b.row),this.initSort(),this.initBody(!0)))},n.prototype.insertRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("row")&&(this.data.splice(a.index,0,a.row),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))},n.prototype.updateRow=function(b){b.hasOwnProperty("index")&&b.hasOwnProperty("row")&&(a.extend(this.data[b.index],b.row),this.initSort(),this.initBody(!0))},n.prototype.showRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("uniqueId")&&this.toggleRow(a.index,a.uniqueId,!0)},n.prototype.hideRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("uniqueId")&&this.toggleRow(a.index,a.uniqueId,!1)},n.prototype.getRowsHidden=function(b){var c=a(this.$body[0]).children().filter(":hidden"),d=0;if(b)for(;d<c.length;d++)a(c[d]).show();return c},n.prototype.mergeCells=function(b){var c,d,e,f=b.index,g=a.inArray(b.field,this.getVisibleFields()),h=b.rowspan||1,i=b.colspan||1,j=this.$body.find(">tr");if(this.options.detailView&&!this.options.cardView&&(g+=1),e=j.eq(f).find(">td").eq(g),!(0>f||0>g||f>=this.data.length)){for(c=f;f+h>c;c++)for(d=g;g+i>d;d++)j.eq(c).find(">td").eq(d).hide();e.attr("rowspan",h).attr("colspan",i).show()}},n.prototype.updateCell=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("field")&&a.hasOwnProperty("value")&&(this.data[a.index][a.field]=a.value,this.initSort(),this.initBody(!0))},n.prototype.getOptions=function(){return this.options},n.prototype.getSelections=function(){var b=this;return a.grep(this.data,function(a){return a[b.header.stateField]})},n.prototype.getAllSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},n.prototype.checkAll=function(){this.checkAll_(!0)},n.prototype.uncheckAll=function(){this.checkAll_(!1)},n.prototype.checkAll_=function(a){var b;a||(b=this.getSelections()),this.$selectAll.add(this.$selectAll_).prop("checked",a),this.$selectItem.filter(":enabled").prop("checked",a),this.updateRows(),a&&(b=this.getSelections()),this.trigger(a?"check-all":"uncheck-all",b)},n.prototype.check=function(a){this.check_(!0,a)},n.prototype.uncheck=function(a){this.check_(!1,a)},n.prototype.check_=function(a,b){var d=this.$selectItem.filter(c('[data-index="%s"]',b)).prop("checked",a);this.data[b][this.header.stateField]=a,this.updateSelected(),this.trigger(a?"check":"uncheck",this.data[b],d)},n.prototype.checkBy=function(a){this.checkBy_(!0,a)},n.prototype.uncheckBy=function(a){this.checkBy_(!1,a)},n.prototype.checkBy_=function(b,d){if(d.hasOwnProperty("field")&&d.hasOwnProperty("values")){var e=this,f=[];a.each(this.options.data,function(g,h){if(!h.hasOwnProperty(d.field))return!1;if(-1!==a.inArray(h[d.field],d.values)){var i=e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]',g)).prop("checked",b);h[e.header.stateField]=b,f.push(h),e.trigger(b?"check":"uncheck",h,i)}}),this.updateSelected(),this.trigger(b?"check-some":"uncheck-some",f)}},n.prototype.destroy=function(){this.$el.insertBefore(this.$container),a(this.options.toolbar).insertBefore(this.$el),this.$container.next().remove(),this.$container.remove(),this.$el.html(this.$el_.html()).css("margin-top","0").attr("class",this.$el_.attr("class")||"")},n.prototype.showLoading=function(){this.$tableLoading.show()},n.prototype.hideLoading=function(){this.$tableLoading.hide()},n.prototype.togglePagination=function(){this.options.pagination=!this.options.pagination;var a=this.$toolbar.find('button[name="paginationSwitch"] i');this.options.pagination?a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchDown):a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchUp),this.updatePagination()},n.prototype.refresh=function(a){a&&a.url&&(this.options.url=a.url,this.options.pageNumber=1),this.initServer(a&&a.silent,a&&a.query)},n.prototype.resetWidth=function(){this.options.showHeader&&this.options.height&&this.fitHeader(),this.options.showFooter&&this.fitFooter()},n.prototype.showColumn=function(a){this.toggleColumn(e(this.columns,a),!0,!0)},n.prototype.hideColumn=function(a){this.toggleColumn(e(this.columns,a),!1,!0)},n.prototype.getHiddenColumns=function(){return a.grep(this.columns,function(a){return!a.visible})},n.prototype.filterBy=function(b){this.filterColumns=a.isEmptyObject(b)?{}:b,this.options.pageNumber=1,this.initSearch(),this.updatePagination()},n.prototype.scrollTo=function(a){return"string"==typeof a&&(a="bottom"===a?this.$tableBody[0].scrollHeight:0),"number"==typeof a&&this.$tableBody.scrollTop(a),"undefined"==typeof a?this.$tableBody.scrollTop():void 0},n.prototype.getScrollPosition=function(){return this.scrollTo()},n.prototype.selectPage=function(a){a>0&&a<=this.options.totalPages&&(this.options.pageNumber=a,this.updatePagination())},n.prototype.prevPage=function(){this.options.pageNumber>1&&(this.options.pageNumber--,this.updatePagination())},n.prototype.nextPage=function(){this.options.pageNumber<this.options.totalPages&&(this.options.pageNumber++,this.updatePagination())},n.prototype.toggleView=function(){this.options.cardView=!this.options.cardView,this.initHeader(),this.initBody(),this.trigger("toggle",this.options.cardView)},n.prototype.refreshOptions=function(b){i(this.options,b,!1)||(this.options=a.extend(this.options,b),this.trigger("refresh-options",this.options),this.destroy(),this.init())},n.prototype.resetSearch=function(a){var b=this.$toolbar.find(".search input");b.val(a||""),this.onSearch({currentTarget:b})},n.prototype.expandRow_=function(a,b){var d=this.$body.find(c('> tr[data-index="%s"]',b));d.next().is("tr.detail-view")===(a?!1:!0)&&d.find("> td > .detail-icon").click()},n.prototype.expandRow=function(a){this.expandRow_(!0,a)},n.prototype.collapseRow=function(a){this.expandRow_(!1,a)},n.prototype.expandAllRows=function(b){if(b){var d=this.$body.find(c('> tr[data-index="%s"]',0)),e=this,f=null,g=!1,h=-1;if(d.next().is("tr.detail-view")?d.next().next().is("tr.detail-view")||(d.next().find(".detail-icon").click(),g=!0):(d.find("> td > .detail-icon").click(),g=!0),g)try{h=setInterval(function(){f=e.$body.find("tr.detail-view").last().find(".detail-icon"),f.length>0?f.click():clearInterval(h)},1)}catch(i){clearInterval(h)}}else for(var j=this.$body.children(),k=0;k<j.length;k++)this.expandRow_(!0,a(j[k]).data("index"))},n.prototype.collapseAllRows=function(b){if(b)this.expandRow_(!1,0);else for(var c=this.$body.children(),d=0;d<c.length;d++)this.expandRow_(!1,a(c[d]).data("index"))};var o=["getOptions","getSelections","getAllSelections","getData","load","append","prepend","remove","removeAll","insertRow","updateRow","updateCell","updateByUniqueId","removeByUniqueId","getRowByUniqueId","showRow","hideRow","getRowsHidden","mergeCells","checkAll","uncheckAll","check","uncheck","checkBy","uncheckBy","refresh","resetView","resetWidth","destroy","showLoading","hideLoading","showColumn","hideColumn","getHiddenColumns","filterBy","scrollTo","getScrollPosition","selectPage","prevPage","nextPage","togglePagination","toggleView","refreshOptions","resetSearch","expandRow","collapseRow","expandAllRows","collapseAllRows"];a.fn.bootstrapTable=function(b){var c,d=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=a(this),f=e.data("bootstrap.table"),g=a.extend({},n.DEFAULTS,e.data(),"object"==typeof b&&b);if("string"==typeof b){if(a.inArray(b,o)<0)throw new Error("Unknown method: "+b);if(!f)return;c=f[b].apply(f,d),"destroy"===b&&e.removeData("bootstrap.table")}f||e.data("bootstrap.table",f=new n(this,g))}),"undefined"==typeof c?this:c},a.fn.bootstrapTable.Constructor=n,a.fn.bootstrapTable.defaults=n.DEFAULTS,a.fn.bootstrapTable.columnDefaults=n.COLUMN_DEFAULTS,a.fn.bootstrapTable.locales=n.LOCALES,a.fn.bootstrapTable.methods=o,a.fn.bootstrapTable.utils={sprintf:c,getFieldIndex:e,compareObjects:i,calculateObjectValue:h},a(function(){a('[data-toggle="table"]').bootstrapTable()})}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js b/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js
new file mode 100644
index 0000000..dc7b4f0
--- /dev/null
+++ b/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js
@@ -0,0 +1,182 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    var diacriticsMap = {};
+    var defaultAccentsDiacritics = [
+        {'base':'A', 'letters':'\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F'},
+        {'base':'AA','letters':'\uA732'},
+        {'base':'AE','letters':'\u00C6\u01FC\u01E2'},
+        {'base':'AO','letters':'\uA734'},
+        {'base':'AU','letters':'\uA736'},
+        {'base':'AV','letters':'\uA738\uA73A'},
+        {'base':'AY','letters':'\uA73C'},
+        {'base':'B', 'letters':'\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181'},
+        {'base':'C', 'letters':'\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E'},
+        {'base':'D', 'letters':'\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779'},
+        {'base':'DZ','letters':'\u01F1\u01C4'},
+        {'base':'Dz','letters':'\u01F2\u01C5'},
+        {'base':'E', 'letters':'\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E'},
+        {'base':'F', 'letters':'\u0046\u24BB\uFF26\u1E1E\u0191\uA77B'},
+        {'base':'G', 'letters':'\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E'},
+        {'base':'H', 'letters':'\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D'},
+        {'base':'I', 'letters':'\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197'},
+        {'base':'J', 'letters':'\u004A\u24BF\uFF2A\u0134\u0248'},
+        {'base':'K', 'letters':'\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2'},
+        {'base':'L', 'letters':'\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780'},
+        {'base':'LJ','letters':'\u01C7'},
+        {'base':'Lj','letters':'\u01C8'},
+        {'base':'M', 'letters':'\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C'},
+        {'base':'N', 'letters':'\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4'},
+        {'base':'NJ','letters':'\u01CA'},
+        {'base':'Nj','letters':'\u01CB'},
+        {'base':'O', 'letters':'\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C'},
+        {'base':'OI','letters':'\u01A2'},
+        {'base':'OO','letters':'\uA74E'},
+        {'base':'OU','letters':'\u0222'},
+        {'base':'OE','letters':'\u008C\u0152'},
+        {'base':'oe','letters':'\u009C\u0153'},
+        {'base':'P', 'letters':'\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754'},
+        {'base':'Q', 'letters':'\u0051\u24C6\uFF31\uA756\uA758\u024A'},
+        {'base':'R', 'letters':'\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782'},
+        {'base':'S', 'letters':'\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784'},
+        {'base':'T', 'letters':'\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786'},
+        {'base':'TZ','letters':'\uA728'},
+        {'base':'U', 'letters':'\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244'},
+        {'base':'V', 'letters':'\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245'},
+        {'base':'VY','letters':'\uA760'},
+        {'base':'W', 'letters':'\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72'},
+        {'base':'X', 'letters':'\u0058\u24CD\uFF38\u1E8A\u1E8C'},
+        {'base':'Y', 'letters':'\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE'},
+        {'base':'Z', 'letters':'\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762'},
+        {'base':'a', 'letters':'\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250'},
+        {'base':'aa','letters':'\uA733'},
+        {'base':'ae','letters':'\u00E6\u01FD\u01E3'},
+        {'base':'ao','letters':'\uA735'},
+        {'base':'au','letters':'\uA737'},
+        {'base':'av','letters':'\uA739\uA73B'},
+        {'base':'ay','letters':'\uA73D'},
+        {'base':'b', 'letters':'\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253'},
+        {'base':'c', 'letters':'\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184'},
+        {'base':'d', 'letters':'\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A'},
+        {'base':'dz','letters':'\u01F3\u01C6'},
+        {'base':'e', 'letters':'\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD'},
+        {'base':'f', 'letters':'\u0066\u24D5\uFF46\u1E1F\u0192\uA77C'},
+        {'base':'g', 'letters':'\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F'},
+        {'base':'h', 'letters':'\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265'},
+        {'base':'hv','letters':'\u0195'},
+        {'base':'i', 'letters':'\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131'},
+        {'base':'j', 'letters':'\u006A\u24D9\uFF4A\u0135\u01F0\u0249'},
+        {'base':'k', 'letters':'\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3'},
+        {'base':'l', 'letters':'\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747'},
+        {'base':'lj','letters':'\u01C9'},
+        {'base':'m', 'letters':'\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F'},
+        {'base':'n', 'letters':'\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5'},
+        {'base':'nj','letters':'\u01CC'},
+        {'base':'o', 'letters':'\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275'},
+        {'base':'oi','letters':'\u01A3'},
+        {'base':'ou','letters':'\u0223'},
+        {'base':'oo','letters':'\uA74F'},
+        {'base':'p','letters':'\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755'},
+        {'base':'q','letters':'\u0071\u24E0\uFF51\u024B\uA757\uA759'},
+        {'base':'r','letters':'\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783'},
+        {'base':'s','letters':'\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B'},
+        {'base':'t','letters':'\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787'},
+        {'base':'tz','letters':'\uA729'},
+        {'base':'u','letters': '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289'},
+        {'base':'v','letters':'\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C'},
+        {'base':'vy','letters':'\uA761'},
+        {'base':'w','letters':'\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73'},
+        {'base':'x','letters':'\u0078\u24E7\uFF58\u1E8B\u1E8D'},
+        {'base':'y','letters':'\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF'},
+        {'base':'z','letters':'\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763'}
+    ];
+
+    var initNeutraliser = function () {
+        for (var i=0; i < defaultAccentsDiacritics.length; i++){
+            var letters = defaultAccentsDiacritics[i].letters;
+            for (var j=0; j < letters.length ; j++){
+                diacriticsMap[letters[j]] = defaultAccentsDiacritics[i].base;
+            }
+        }
+    };
+
+    var removeDiacritics = function (str) {
+        return str.replace(/[^\u0000-\u007E]/g, function(a){
+            return diacriticsMap[a] || a;
+        });
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        searchAccentNeutralise: false
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.init = function () {
+        if (this.options.searchAccentNeutralise) {
+            initNeutraliser();
+        }
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        var that = this;
+
+        if (this.options.sidePagination !== 'server') {
+            var s = this.searchText && this.searchText.toLowerCase();
+            var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;
+
+            // Check filter
+            this.data = f ? $.grep(this.options.data, function (item, i) {
+                for (var key in f) {
+                    if (item[key] !== f[key]) {
+                        return false;
+                    }
+                }
+                return true;
+            }) : this.options.data;
+
+            this.data = s ? $.grep(this.data, function (item, i) {
+                for (var key in item) {
+                    key = $.isNumeric(key) ? parseInt(key, 10) : key;
+                    var value = item[key],
+                        column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)],
+                        j = $.inArray(key, that.header.fields);
+
+                    if (column && column.searchFormatter) {
+                        value = $.fn.bootstrapTable.utils.calculateObjectValue(column,
+                            that.header.formatters[j], [value, item, i], value);
+                    }
+
+                    var index = $.inArray(key, that.header.fields);
+                    if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {
+                        if (that.options.searchAccentNeutralise) {
+                            value = removeDiacritics(value);
+                            s = removeDiacritics(s);
+                        }
+                        if (that.options.strictSearch) {
+                            if ((value + '').toLowerCase() === s) {
+                                return true;
+                            }
+                        } else {
+                            if ((value + '').toLowerCase().indexOf(s) !== -1) {
+                                return true;
+                            }
+                        }
+                    }
+                }
+                return false;
+            }) : this.data;
+        }
+    };
+
+}(jQuery);
diff --git a/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js b/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js
new file mode 100644
index 0000000..d7aa598
--- /dev/null
+++ b/js/table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b={},c=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"ŒŒ"},{base:"oe",letters:"œœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],d=function(){for(var a=0;a<c.length;a++)for(var d=c[a].letters,e=0;e<d.length;e++)b[d[e]]=c[a].base},e=function(a){return a.replace(/[^\u0000-\u007E]/g,function(a){return b[a]||a})};a.extend(a.fn.bootstrapTable.defaults,{searchAccentNeutralise:!1});{var f=a.fn.bootstrapTable.Constructor,g=f.prototype.init;f.prototype.initSearch}f.prototype.init=function(){this.options.searchAccentNeutralise&&d(),g.apply(this,Array.prototype.slice.apply(arguments))},f.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){var c=this.searchText&&this.searchText.toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(a){for(var b in d)if(a[b]!==d[b])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g in d){g=a.isNumeric(g)?parseInt(g,10):g;var h=d[g],i=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,g)],j=a.inArray(g,b.header.fields);i&&i.searchFormatter&&(h=a.fn.bootstrapTable.utils.calculateObjectValue(i,b.header.formatters[j],[h,d,f],h));var k=a.inArray(g,b.header.fields);if(-1!==k&&b.header.searchables[k]&&("string"==typeof h||"number"==typeof h))if(b.options.searchAccentNeutralise&&(h=e(h),c=e(c)),b.options.strictSearch){if((h+"").toLowerCase()===c)return!0}else if(-1!==(h+"").toLowerCase().indexOf(c))return!0}return!1}):this.data}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/angular/bootstrap-table-angular.js b/js/table/extensions/angular/bootstrap-table-angular.js
new file mode 100644
index 0000000..84c4ed3
--- /dev/null
+++ b/js/table/extensions/angular/bootstrap-table-angular.js
@@ -0,0 +1,105 @@
+// JavaScript source code
+(function () {
+  if (typeof angular === 'undefined') {
+    return;
+  }
+  angular.module('bsTable', []).directive('bsTableControl', function () {
+    var CONTAINER_SELECTOR = '.bootstrap-table';
+    var SCROLLABLE_SELECTOR = '.fixed-table-body';
+    var SEARCH_SELECTOR = '.search input';
+    var bsTables = {};
+    function getBsTable (el) {
+      var result;
+      $.each(bsTables, function (id, bsTable) {
+        if (!bsTable.$el.closest(CONTAINER_SELECTOR).has(el).length) return;
+        result = bsTable;
+        return true;
+      });
+      return result;
+    }
+
+    $(window).resize(function () {
+      $.each(bsTables, function (id, bsTable) {
+        bsTable.$el.bootstrapTable('resetView');
+      });
+    });
+    function onScroll () {
+      var bsTable = this;
+      var state = bsTable.$s.bsTableControl.state;
+      bsTable.$s.$applyAsync(function () {
+        state.scroll = bsTable.$el.bootstrapTable('getScrollPosition');
+      });
+    }
+    $(document)
+      .on('post-header.bs.table', CONTAINER_SELECTOR+' table', function (evt) { // bootstrap-table calls .off('scroll') in initHeader so reattach here
+        var bsTable = getBsTable(evt.target);
+        if (!bsTable) return;
+        bsTable.$el
+          .closest(CONTAINER_SELECTOR)
+          .find(SCROLLABLE_SELECTOR)
+          .on('scroll', onScroll.bind(bsTable));
+      })
+      .on('sort.bs.table', CONTAINER_SELECTOR+' table', function (evt, sortName, sortOrder) {
+        var bsTable = getBsTable(evt.target);
+        if (!bsTable) return;
+        var state = bsTable.$s.bsTableControl.state;
+        bsTable.$s.$applyAsync(function () {
+          state.sortName = sortName;
+          state.sortOrder = sortOrder;
+        });
+      })
+      .on('page-change.bs.table', CONTAINER_SELECTOR+' table', function (evt, pageNumber, pageSize) {
+        var bsTable = getBsTable(evt.target);
+        if (!bsTable) return;
+        var state = bsTable.$s.bsTableControl.state;
+        bsTable.$s.$applyAsync(function () {
+          state.pageNumber = pageNumber;
+          state.pageSize = pageSize;
+        });
+      })
+      .on('search.bs.table', CONTAINER_SELECTOR+' table', function (evt, searchText) {
+        var bsTable = getBsTable(evt.target);
+        if (!bsTable) return;
+        var state = bsTable.$s.bsTableControl.state;
+        bsTable.$s.$applyAsync(function () {
+          state.searchText = searchText;
+        });
+      })
+      .on('focus blur', CONTAINER_SELECTOR+' '+SEARCH_SELECTOR, function (evt) {
+        var bsTable = getBsTable(evt.target);
+        if (!bsTable) return;
+        var state = bsTable.$s.bsTableControl.state;
+        bsTable.$s.$applyAsync(function () {
+          state.searchHasFocus = $(evt.target).is(':focus');
+        });
+      });
+
+    return {
+      restrict: 'EA',
+      scope: {bsTableControl: '='},
+      link: function ($s, $el) {
+        var bsTable = bsTables[$s.$id] = {$s: $s, $el: $el};
+        $s.instantiated = false;
+        $s.$watch('bsTableControl.options', function (options) {
+          if (!options) options = $s.bsTableControl.options = {};
+          var state = $s.bsTableControl.state || {};
+
+          if ($s.instantiated) $el.bootstrapTable('destroy');
+          $el.bootstrapTable(angular.extend(angular.copy(options), state));
+          $s.instantiated = true;
+
+          // Update the UI for state that isn't settable via options
+          if ('scroll' in state) $el.bootstrapTable('scrollTo', state.scroll);
+          if ('searchHasFocus' in state) $el.closest(CONTAINER_SELECTOR).find(SEARCH_SELECTOR).focus(); // $el gets detached so have to recompute whole chain
+        }, true);
+        $s.$watch('bsTableControl.state', function (state) {
+          if (!state) state = $s.bsTableControl.state = {};
+          $el.trigger('directive-updated.bs.table', [state]);
+        }, true);
+        $s.$on('$destroy', function () {
+          delete bsTables[$s.$id];
+        });
+      }
+    };
+  })
+})();
diff --git a/js/table/extensions/angular/bootstrap-table-angular.min.js b/js/table/extensions/angular/bootstrap-table-angular.min.js
new file mode 100644
index 0000000..43c3d7d
--- /dev/null
+++ b/js/table/extensions/angular/bootstrap-table-angular.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(){"undefined"!=typeof angular&&angular.module("bsTable",[]).directive("bsTableControl",function(){function a(a){var b;return $.each(f,function(d,e){return e.$el.closest(c).has(a).length?(b=e,!0):void 0}),b}function b(){var a=this,b=a.$s.bsTableControl.state;a.$s.$applyAsync(function(){b.scroll=a.$el.bootstrapTable("getScrollPosition")})}var c=".bootstrap-table",d=".fixed-table-body",e=".search input",f={};return $(window).resize(function(){$.each(f,function(a,b){b.$el.bootstrapTable("resetView")})}),$(document).on("post-header.bs.table",c+" table",function(e){var f=a(e.target);f&&f.$el.closest(c).find(d).on("scroll",b.bind(f))}).on("sort.bs.table",c+" table",function(b,c,d){var e=a(b.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.sortName=c,f.sortOrder=d})}}).on("page-change.bs.table",c+" table",function(b,c,d){var e=a(b.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.pageNumber=c,f.pageSize=d})}}).on("search.bs.table",c+" table",function(b,c){var d=a(b.target);if(d){var e=d.$s.bsTableControl.state;d.$s.$applyAsync(function(){e.searchText=c})}}).on("focus blur",c+" "+e,function(b){var c=a(b.target);if(c){var d=c.$s.bsTableControl.state;c.$s.$applyAsync(function(){d.searchHasFocus=$(b.target).is(":focus")})}}),{restrict:"EA",scope:{bsTableControl:"="},link:function(a,b){f[a.$id]={$s:a,$el:b};a.instantiated=!1,a.$watch("bsTableControl.options",function(d){d||(d=a.bsTableControl.options={});var f=a.bsTableControl.state||{};a.instantiated&&b.bootstrapTable("destroy"),b.bootstrapTable(angular.extend(angular.copy(d),f)),a.instantiated=!0,"scroll"in f&&b.bootstrapTable("scrollTo",f.scroll),"searchHasFocus"in f&&b.closest(c).find(e).focus()},!0),a.$watch("bsTableControl.state",function(c){c||(c=a.bsTableControl.state={}),b.trigger("directive-updated.bs.table",[c])},!0),a.$on("$destroy",function(){delete f[a.$id]})}}})}();
\ No newline at end of file
diff --git a/js/table/extensions/cookie/bootstrap-table-cookie.js b/js/table/extensions/cookie/bootstrap-table-cookie.js
new file mode 100644
index 0000000..3192bde
--- /dev/null
+++ b/js/table/extensions/cookie/bootstrap-table-cookie.js
@@ -0,0 +1,331 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.2.0
+ *
+ * @update zhixin wen <wenzhixin2010@gmail.com>
+ */
+
+(function ($) {
+    'use strict';
+
+    var cookieIds = {
+        sortOrder: 'bs.table.sortOrder',
+        sortName: 'bs.table.sortName',
+        pageNumber: 'bs.table.pageNumber',
+        pageList: 'bs.table.pageList',
+        columns: 'bs.table.columns',
+        searchText: 'bs.table.searchText',
+        filterControl: 'bs.table.filterControl'
+    };
+
+    var getCurrentHeader = function (that) {
+        var header = that.$header;
+        if (that.options.height) {
+            header = that.$tableHeader;
+        }
+
+        return header;
+    };
+
+    var getCurrentSearchControls = function (that) {
+        var searchControls = 'select, input';
+        if (that.options.height) {
+            searchControls = 'table select, table input';
+        }
+
+        return searchControls;
+    };
+
+    var cookieEnabled = function () {
+        return !!(navigator.cookieEnabled);
+    };
+
+    var inArrayCookiesEnabled = function (cookieName, cookiesEnabled) {
+        var index = -1;
+
+        for (var i = 0; i < cookiesEnabled.length; i++) {
+            if (cookieName.toLowerCase() === cookiesEnabled[i].toLowerCase()) {
+                index = i;
+                break;
+            }
+        }
+
+        return index;
+    };
+
+    var setCookie = function (that, cookieName, cookieValue) {
+        if ((!that.options.cookie) || (!cookieEnabled()) || (that.options.cookieIdTable === '')) {
+            return;
+        }
+
+        if (inArrayCookiesEnabled(cookieName, that.options.cookiesEnabled) === -1) {
+            return;
+        }
+
+        cookieName = that.options.cookieIdTable + '.' + cookieName;
+        if (!cookieName || /^(?:expires|max\-age|path|domain|secure)$/i.test(cookieName)) {
+            return false;
+        }
+
+        document.cookie = encodeURIComponent(cookieName) + '=' + encodeURIComponent(cookieValue) + calculateExpiration(that.options.cookieExpire) + (that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '') + (that.options.cookiePath ? '; path=' + that.options.cookiePath : '') + (that.cookieSecure ? '; secure' : '');
+        return true;
+    };
+
+    var getCookie = function (that, tableName, cookieName) {
+        if (!cookieName) {
+            return null;
+        }
+
+        if (inArrayCookiesEnabled(cookieName, that.options.cookiesEnabled) === -1) {
+            return null;
+        }
+
+        cookieName = tableName + '.' + cookieName;
+
+        return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
+    };
+
+    var hasCookie = function (cookieName) {
+        if (!cookieName) {
+            return false;
+        }
+        return (new RegExp('(?:^|;\\s*)' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=')).test(document.cookie);
+    };
+
+    var deleteCookie = function (tableName, cookieName, sPath, sDomain) {
+        cookieName = tableName + '.' + cookieName;
+        if (!hasCookie(cookieName)) {
+            return false;
+        }
+        document.cookie = encodeURIComponent(cookieName) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '');
+        return true;
+    };
+
+    var calculateExpiration = function(cookieExpire) {
+        var time = cookieExpire.replace(/[0-9]*/, ''); //s,mi,h,d,m,y
+        cookieExpire = cookieExpire.replace(/[A-Za-z]/, ''); //number
+
+        switch (time.toLowerCase()) {
+            case 's':
+                cookieExpire = +cookieExpire;
+                break;
+            case 'mi':
+                cookieExpire = cookieExpire * 60;
+                break;
+            case 'h':
+                cookieExpire = cookieExpire * 60 * 60;
+                break;
+            case 'd':
+                cookieExpire = cookieExpire * 24 * 60 * 60;
+                break;
+            case 'm':
+                cookieExpire = cookieExpire * 30 * 24 * 60 * 60;
+                break;
+            case 'y':
+                cookieExpire = cookieExpire * 365 * 30 * 24 * 60 * 60;
+                break;
+            default:
+                cookieExpire = undefined;
+                break;
+        }
+
+        return cookieExpire === undefined ? '' : '; max-age=' + cookieExpire;
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        cookie: false,
+        cookieExpire: '2h',
+        cookiePath: null,
+        cookieDomain: null,
+        cookieSecure: null,
+        cookieIdTable: '',
+        cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.columns', 'bs.table.searchText', 'bs.table.filterControl'],
+        //internal variable
+        filterControls: [],
+        filterControlValuesLoaded: false
+    });
+
+    $.fn.bootstrapTable.methods.push('deleteCookie');
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initTable = BootstrapTable.prototype.initTable,
+        _onSort = BootstrapTable.prototype.onSort,
+        _onPageNumber = BootstrapTable.prototype.onPageNumber,
+        _onPageListChange = BootstrapTable.prototype.onPageListChange,
+        _onPageFirst = BootstrapTable.prototype.onPageFirst,
+        _onPagePre = BootstrapTable.prototype.onPagePre,
+        _onPageNext = BootstrapTable.prototype.onPageNext,
+        _onPageLast = BootstrapTable.prototype.onPageLast,
+        _toggleColumn = BootstrapTable.prototype.toggleColumn,
+        _selectPage = BootstrapTable.prototype.selectPage,
+        _onSearch = BootstrapTable.prototype.onSearch;
+
+    BootstrapTable.prototype.init = function () {
+        var timeoutId = 0;
+        this.options.filterControls = [];
+        this.options.filterControlValuesLoaded = false;
+
+
+        this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ?
+            this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/ /g, '').toLowerCase().split(',') : this.options.cookiesEnabled;
+
+        if (this.options.filterControl) {
+            var that = this;
+            this.$el.on('column-search.bs.table', function (e, field, text) {
+                var isNewField = true;
+
+                for (var i = 0; i < that.options.filterControls.length; i++) {
+                    if (that.options.filterControls[i].field === field) {
+                        that.options.filterControls[i].text = text;
+                        isNewField = false;
+                        break;
+                    }
+                }
+                if (isNewField) {
+                    that.options.filterControls.push({
+                        field: field,
+                        text: text
+                    });
+                }
+
+                setCookie(that, cookieIds.filterControl, JSON.stringify(that.options.filterControls));
+            }).on('post-body.bs.table', function () {
+                setTimeout(function () {
+                    if (!that.options.filterControlValuesLoaded) {
+                        that.options.filterControlValuesLoaded = true;
+                        var filterControl = JSON.parse(getCookie(that, that.options.cookieIdTable, cookieIds.filterControl));
+                        if (filterControl) {
+                            var field = null,
+                                result = [],
+                                header = getCurrentHeader(that),
+                                searchControls = getCurrentSearchControls(that);
+
+                            header.find(searchControls).each(function (index, ele) {
+                                field = $(this).parent().parent().parent().data('field');
+                                result = $.grep(filterControl, function (valueObj) {
+                                    return valueObj.field === field;
+                                });
+
+                                if (result.length > 0) {
+                                    $(this).val(result[0].text);
+                                    that.onColumnSearch({currentTarget: $(this)});
+                                }
+                            });
+                        }
+                    }
+                }, 250);
+            });
+        }
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+    };
+
+    BootstrapTable.prototype.initTable = function () {
+        _initTable.apply(this, Array.prototype.slice.apply(arguments));
+        this.initCookie();
+    };
+
+    BootstrapTable.prototype.initCookie = function () {
+        if (!this.options.cookie) {
+            return;
+        }
+
+        if ((this.options.cookieIdTable === '') || (this.options.cookieExpire === '') || (!cookieEnabled())) {
+            throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");
+            return;
+        }
+
+        var sortOrderCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortOrder),
+            sortOrderNameCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortName),
+            pageNumberCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageNumber),
+            pageListCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageList),
+            columnsCookie = JSON.parse(getCookie(this, this.options.cookieIdTable, cookieIds.columns)),
+            searchTextCookie = getCookie(this, this.options.cookieIdTable, cookieIds.searchText);
+
+        //sortOrder
+        this.options.sortOrder = sortOrderCookie ? sortOrderCookie : this.options.sortOrder;
+        //sortName
+        this.options.sortName = sortOrderNameCookie ? sortOrderNameCookie : this.options.sortName;
+        //pageNumber
+        this.options.pageNumber = pageNumberCookie ? +pageNumberCookie : this.options.pageNumber;
+        //pageSize
+        this.options.pageSize = pageListCookie ? pageListCookie === this.options.formatAllRows() ? pageListCookie : +pageListCookie : this.options.pageSize;
+        //searchText
+        this.options.searchText = searchTextCookie ? searchTextCookie : '';
+
+        if (columnsCookie) {
+            $.each(this.columns, function (i, column) {
+                column.visible = $.inArray(column.field, columnsCookie) !== -1;
+            });
+        }
+    };
+
+    BootstrapTable.prototype.onSort = function () {
+        _onSort.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.sortOrder, this.options.sortOrder);
+        setCookie(this, cookieIds.sortName, this.options.sortName);
+    };
+
+    BootstrapTable.prototype.onPageNumber = function () {
+        _onPageNumber.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
+    };
+
+    BootstrapTable.prototype.onPageListChange = function () {
+        _onPageListChange.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageList, this.options.pageSize);
+    };
+
+    BootstrapTable.prototype.onPageFirst = function () {
+        _onPageFirst.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
+    };
+
+    BootstrapTable.prototype.onPagePre = function () {
+        _onPagePre.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
+    };
+
+    BootstrapTable.prototype.onPageNext = function () {
+        _onPageNext.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
+    };
+
+    BootstrapTable.prototype.onPageLast = function () {
+        _onPageLast.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
+    };
+
+    BootstrapTable.prototype.toggleColumn = function () {
+        _toggleColumn.apply(this, Array.prototype.slice.apply(arguments));
+
+        var visibleColumns = [];
+
+        $.each(this.columns, function (i, column) {
+            if (column.visible) {
+                visibleColumns.push(column.field);
+            }
+        });
+
+        setCookie(this, cookieIds.columns, JSON.stringify(visibleColumns));
+    };
+    
+    BootstrapTable.prototype.selectPage = function (page) {
+        _selectPage.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.pageNumber, page);
+    };
+
+    BootstrapTable.prototype.onSearch = function () {
+        _onSearch.apply(this, Array.prototype.slice.apply(arguments));
+        setCookie(this, cookieIds.searchText, this.searchText);
+    };
+
+    BootstrapTable.prototype.deleteCookie = function (cookieName) {
+        if ((cookieName === '') || (!cookieEnabled())) {
+            return;
+        }
+
+        deleteCookie(this.options.cookieIdTable, cookieIds[cookieName], this.options.cookiePath, this.options.cookieDomain);
+    };
+})(jQuery);
diff --git a/js/table/extensions/cookie/bootstrap-table-cookie.min.js b/js/table/extensions/cookie/bootstrap-table-cookie.min.js
new file mode 100644
index 0000000..0a3c257
--- /dev/null
+++ b/js/table/extensions/cookie/bootstrap-table-cookie.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b={sortOrder:"bs.table.sortOrder",sortName:"bs.table.sortName",pageNumber:"bs.table.pageNumber",pageList:"bs.table.pageList",columns:"bs.table.columns",searchText:"bs.table.searchText",filterControl:"bs.table.filterControl"},c=function(a){var b=a.$header;return a.options.height&&(b=a.$tableHeader),b},d=function(a){var b="select, input";return a.options.height&&(b="table select, table input"),b},e=function(){return!!navigator.cookieEnabled},f=function(a,b){for(var c=-1,d=0;d<b.length;d++)if(a.toLowerCase()===b[d].toLowerCase()){c=d;break}return c},g=function(a,b,c){return a.options.cookie&&e()&&""!==a.options.cookieIdTable&&-1!==f(b,a.options.cookiesEnabled)?(b=a.options.cookieIdTable+"."+b,!b||/^(?:expires|max\-age|path|domain|secure)$/i.test(b)?!1:(document.cookie=encodeURIComponent(b)+"="+encodeURIComponent(c)+k(a.options.cookieExpire)+(a.options.cookieDomain?"; domain="+a.options.cookieDomain:"")+(a.options.cookiePath?"; path="+a.options.cookiePath:"")+(a.cookieSecure?"; secure":""),!0)):void 0},h=function(a,b,c){return c?-1===f(c,a.options.cookiesEnabled)?null:(c=b+"."+c,decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(c).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null):null},i=function(a){return a?new RegExp("(?:^|;\\s*)"+encodeURIComponent(a).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(document.cookie):!1},j=function(a,b,c,d){return b=a+"."+b,i(b)?(document.cookie=encodeURIComponent(b)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(d?"; domain="+d:"")+(c?"; path="+c:""),!0):!1},k=function(a){var b=a.replace(/[0-9]*/,"");switch(a=a.replace(/[A-Za-z]/,""),b.toLowerCase()){case"s":a=+a;break;case"mi":a=60*a;break;case"h":a=60*a*60;break;case"d":a=24*a*60*60;break;case"m":a=30*a*24*60*60;break;case"y":a=365*a*30*24*60*60;break;default:a=void 0}return void 0===a?"":"; max-age="+a};a.extend(a.fn.bootstrapTable.defaults,{cookie:!1,cookieExpire:"2h",cookiePath:null,cookieDomain:null,cookieSecure:null,cookieIdTable:"",cookiesEnabled:["bs.table.sortOrder","bs.table.sortName","bs.table.pageNumber","bs.table.pageList","bs.table.columns","bs.table.searchText","bs.table.filterControl"],filterControls:[],filterControlValuesLoaded:!1}),a.fn.bootstrapTable.methods.push("deleteCookie");var l=a.fn.bootstrapTable.Constructor,m=l.prototype.init,n=l.prototype.initTable,o=l.prototype.onSort,p=l.prototype.onPageNumber,q=l.prototype.onPageListChange,r=l.prototype.onPageFirst,s=l.prototype.onPagePre,t=l.prototype.onPageNext,u=l.prototype.onPageLast,v=l.prototype.toggleColumn,w=l.prototype.selectPage,x=l.prototype.onSearch;l.prototype.init=function(){if(this.options.filterControls=[],this.options.filterControlValuesLoaded=!1,this.options.cookiesEnabled="string"==typeof this.options.cookiesEnabled?this.options.cookiesEnabled.replace("[","").replace("]","").replace(/ /g,"").toLowerCase().split(","):this.options.cookiesEnabled,this.options.filterControl){var e=this;this.$el.on("column-search.bs.table",function(a,c,d){for(var f=!0,h=0;h<e.options.filterControls.length;h++)if(e.options.filterControls[h].field===c){e.options.filterControls[h].text=d,f=!1;break}f&&e.options.filterControls.push({field:c,text:d}),g(e,b.filterControl,JSON.stringify(e.options.filterControls))}).on("post-body.bs.table",function(){setTimeout(function(){if(!e.options.filterControlValuesLoaded){e.options.filterControlValuesLoaded=!0;var f=JSON.parse(h(e,e.options.cookieIdTable,b.filterControl));if(f){var g=null,i=[],j=c(e),k=d(e);j.find(k).each(function(){g=a(this).parent().parent().parent().data("field"),i=a.grep(f,function(a){return a.field===g}),i.length>0&&(a(this).val(i[0].text),e.onColumnSearch({currentTarget:a(this)}))})}}},250)})}m.apply(this,Array.prototype.slice.apply(arguments))},l.prototype.initTable=function(){n.apply(this,Array.prototype.slice.apply(arguments)),this.initCookie()},l.prototype.initCookie=function(){if(this.options.cookie){if(""===this.options.cookieIdTable||""===this.options.cookieExpire||!e())throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");var c=h(this,this.options.cookieIdTable,b.sortOrder),d=h(this,this.options.cookieIdTable,b.sortName),f=h(this,this.options.cookieIdTable,b.pageNumber),g=h(this,this.options.cookieIdTable,b.pageList),i=JSON.parse(h(this,this.options.cookieIdTable,b.columns)),j=h(this,this.options.cookieIdTable,b.searchText);this.options.sortOrder=c?c:this.options.sortOrder,this.options.sortName=d?d:this.options.sortName,this.options.pageNumber=f?+f:this.options.pageNumber,this.options.pageSize=g?g===this.options.formatAllRows()?g:+g:this.options.pageSize,this.options.searchText=j?j:"",i&&a.each(this.columns,function(b,c){c.visible=-1!==a.inArray(c.field,i)})}},l.prototype.onSort=function(){o.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.sortOrder,this.options.sortOrder),g(this,b.sortName,this.options.sortName)},l.prototype.onPageNumber=function(){p.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},l.prototype.onPageListChange=function(){q.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageList,this.options.pageSize)},l.prototype.onPageFirst=function(){r.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},l.prototype.onPagePre=function(){s.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},l.prototype.onPageNext=function(){t.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},l.prototype.onPageLast=function(){u.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},l.prototype.toggleColumn=function(){v.apply(this,Array.prototype.slice.apply(arguments));var c=[];a.each(this.columns,function(a,b){b.visible&&c.push(b.field)}),g(this,b.columns,JSON.stringify(c))},l.prototype.selectPage=function(a){w.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,a)},l.prototype.onSearch=function(){x.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.searchText,this.searchText)},l.prototype.deleteCookie=function(a){""!==a&&e()&&j(this.options.cookieIdTable,b[a],this.options.cookiePath,this.options.cookieDomain)}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/editable/bootstrap-table-editable.js b/js/table/extensions/editable/bootstrap-table-editable.js
new file mode 100644
index 0000000..0bb43a6
--- /dev/null
+++ b/js/table/extensions/editable/bootstrap-table-editable.js
@@ -0,0 +1,107 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * extensions: https://github.com/vitalets/x-editable
+ */
+
+!function ($) {
+
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        editable: true,
+        onEditableInit: function () {
+            return false;
+        },
+        onEditableSave: function (field, row, oldValue, $el) {
+            return false;
+        },
+        onEditableShown: function (field, row, $el, editable) {
+            return false;
+        },
+        onEditableHidden: function (field, row, $el, reason) {
+            return false;
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'editable-init.bs.table': 'onEditableInit',
+        'editable-save.bs.table': 'onEditableSave',
+        'editable-shown.bs.table': 'onEditableShown',
+        'editable-hidden.bs.table': 'onEditableHidden'
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initTable = BootstrapTable.prototype.initTable,
+        _initBody = BootstrapTable.prototype.initBody;
+
+    BootstrapTable.prototype.initTable = function () {
+        var that = this;
+        _initTable.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.editable) {
+            return;
+        }
+
+        $.each(this.columns, function (i, column) {
+            if (!column.editable) {
+                return;
+            }
+
+            var _formatter = column.formatter;
+            column.formatter = function (value, row, index) {
+                var result = _formatter ? _formatter(value, row, index) : value;
+
+                return ['<a href="javascript:void(0)"',
+                    ' data-name="' + column.field + '"',
+                    ' data-pk="' + row[that.options.idField] + '"',
+                    ' data-value="' + result + '"',
+                    '>' + '</a>'
+                ].join('');
+            };
+        });
+    };
+
+    BootstrapTable.prototype.initBody = function () {
+        var that = this;
+        _initBody.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.editable) {
+            return;
+        }
+
+        $.each(this.columns, function (i, column) {
+            if (!column.editable) {
+                return;
+            }
+
+            that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
+                .off('save').on('save', function (e, params) {
+                    var data = that.getData(),
+                        index = $(this).parents('tr[data-index]').data('index'),
+                        row = data[index],
+                        oldValue = row[column.field];
+
+                    row[column.field] = params.submitValue;
+                    that.trigger('editable-save', column.field, row, oldValue, $(this));
+                });
+            that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
+                .off('shown').on('shown', function (e, editable) {
+                    var data = that.getData(),
+                        index = $(this).parents('tr[data-index]').data('index'),
+                        row = data[index];
+                    
+                    that.trigger('editable-shown', column.field, row, $(this), editable);
+                });
+            that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
+                .off('hidden').on('hidden', function (e, reason) {
+                    var data = that.getData(),
+                        index = $(this).parents('tr[data-index]').data('index'),
+                        row = data[index];
+                    
+                    that.trigger('editable-hidden', column.field, row, $(this), reason);
+                });
+        });
+        this.trigger('editable-init');
+    };
+
+}(jQuery);
diff --git a/js/table/extensions/editable/bootstrap-table-editable.min.js b/js/table/extensions/editable/bootstrap-table-editable.min.js
new file mode 100644
index 0000000..5c95094
--- /dev/null
+++ b/js/table/extensions/editable/bootstrap-table-editable.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{editable:!0,onEditableInit:function(){return!1},onEditableSave:function(){return!1},onEditableShown:function(){return!1},onEditableHidden:function(){return!1}}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"editable-init.bs.table":"onEditableInit","editable-save.bs.table":"onEditableSave","editable-shown.bs.table":"onEditableShown","editable-hidden.bs.table":"onEditableHidden"});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initTable,d=b.prototype.initBody;b.prototype.initTable=function(){var b=this;c.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&a.each(this.columns,function(a,c){if(c.editable){var d=c.formatter;c.formatter=function(a,e,f){var g=d?d(a,e,f):a;return['<a href="javascript:void(0)"',' data-name="'+c.field+'"',' data-pk="'+e[b.options.idField]+'"',' data-value="'+g+'"',"></a>"].join("")}}})},b.prototype.initBody=function(){var b=this;d.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&(a.each(this.columns,function(c,d){d.editable&&(b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("save").on("save",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g],i=h[d.field];h[d.field]=e.submitValue,b.trigger("editable-save",d.field,h,i,a(this))}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("shown").on("shown",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-shown",d.field,h,a(this),e)}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("hidden").on("hidden",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-hidden",d.field,h,a(this),e)}))}),this.trigger("editable-init"))}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/export/bootstrap-table-export.js b/js/table/extensions/export/bootstrap-table-export.js
new file mode 100644
index 0000000..06fe03b
--- /dev/null
+++ b/js/table/extensions/export/bootstrap-table-export.js
@@ -0,0 +1,105 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * extensions: https://github.com/kayalshri/tableExport.jquery.plugin
+ */
+
+(function ($) {
+    'use strict';
+
+    var TYPE_NAME = {
+        json: 'JSON',
+        xml: 'XML',
+        png: 'PNG',
+        csv: 'CSV',
+        txt: 'TXT',
+        sql: 'SQL',
+        doc: 'MS-Word',
+        excel: 'MS-Excel',
+        powerpoint: 'MS-Powerpoint',
+        pdf: 'PDF'
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        showExport: false,
+        exportDataType: 'basic', // basic, all, selected
+        // 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf'
+        exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
+        exportOptions: {}
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initToolbar = BootstrapTable.prototype.initToolbar;
+
+    BootstrapTable.prototype.initToolbar = function () {
+        this.showToolbar = this.options.showExport;
+
+        _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.showExport) {
+            var that = this,
+                $btnGroup = this.$toolbar.find('>.btn-group'),
+                $export = $btnGroup.find('div.export');
+
+            if (!$export.length) {
+                $export = $([
+                    '<div class="export btn-group">',
+                        '<button class="btn btn-default dropdown-toggle" ' +
+                            'data-toggle="dropdown" type="button">',
+                            '<i class="glyphicon glyphicon-export icon-share"></i> ',
+                            '<span class="caret"></span>',
+                        '</button>',
+                        '<ul class="dropdown-menu" role="menu">',
+                        '</ul>',
+                    '</div>'].join('')).appendTo($btnGroup);
+
+                var $menu = $export.find('.dropdown-menu'),
+                    exportTypes = this.options.exportTypes;
+
+                if (typeof this.options.exportTypes === 'string') {
+                    var types = this.options.exportTypes.slice(1, -1).replace(/ /g, '').split(',');
+
+                    exportTypes = [];
+                    $.each(types, function (i, value) {
+                        exportTypes.push(value.slice(1, -1));
+                    });
+                }
+                $.each(exportTypes, function (i, type) {
+                    if (TYPE_NAME.hasOwnProperty(type)) {
+                        $menu.append(['<li data-type="' + type + '">',
+                                '<a href="javascript:void(0)">',
+                                    TYPE_NAME[type],
+                                '</a>',
+                            '</li>'].join(''));
+                    }
+                });
+
+                $menu.find('li').click(function () {
+                    var type = $(this).data('type'),
+                        doExport = function () {
+                            that.$el.tableExport($.extend({}, that.options.exportOptions, {
+                                type: type,
+                                escape: false
+                            }));
+                        };
+
+                    if (that.options.exportDataType === 'all' && that.options.pagination) {
+                        that.$el.one('load-success.bs.table page-change.bs.table', function () {
+                            doExport();
+                            that.togglePagination();
+                        });
+                        that.togglePagination();
+                    } else if (that.options.exportDataType === 'selected') {
+                        var data = that.getData(),
+                            selectedData = that.getAllSelections();
+
+                        that.load(selectedData);
+                        doExport();
+                        that.load(data);
+                    } else {
+                        doExport();
+                    }
+                });
+            }
+        }
+    };
+})(jQuery);
diff --git a/js/table/extensions/export/bootstrap-table-export.min.js b/js/table/extensions/export/bootstrap-table-export.min.js
new file mode 100644
index 0000000..f8ba702
--- /dev/null
+++ b/js/table/extensions/export/bootstrap-table-export.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b={json:"JSON",xml:"XML",png:"PNG",csv:"CSV",txt:"TXT",sql:"SQL",doc:"MS-Word",excel:"MS-Excel",powerpoint:"MS-Powerpoint",pdf:"PDF"};a.extend(a.fn.bootstrapTable.defaults,{showExport:!1,exportDataType:"basic",exportTypes:["json","xml","csv","txt","sql","excel"],exportOptions:{}});var c=a.fn.bootstrapTable.Constructor,d=c.prototype.initToolbar;c.prototype.initToolbar=function(){if(this.showToolbar=this.options.showExport,d.apply(this,Array.prototype.slice.apply(arguments)),this.options.showExport){var c=this,e=this.$toolbar.find(">.btn-group"),f=e.find("div.export");if(!f.length){f=a(['<div class="export btn-group">','<button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button">','<i class="glyphicon glyphicon-export icon-share"></i> ','<span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">',"</ul>","</div>"].join("")).appendTo(e);var g=f.find(".dropdown-menu"),h=this.options.exportTypes;if("string"==typeof this.options.exportTypes){var i=this.options.exportTypes.slice(1,-1).replace(/ /g,"").split(",");h=[],a.each(i,function(a,b){h.push(b.slice(1,-1))})}a.each(h,function(a,c){b.hasOwnProperty(c)&&g.append(['<li data-type="'+c+'">','<a href="javascript:void(0)">',b[c],"</a>","</li>"].join(""))}),g.find("li").click(function(){var b=a(this).data("type"),d=function(){c.$el.tableExport(a.extend({},c.options.exportOptions,{type:b,escape:!1}))};if("all"===c.options.exportDataType&&c.options.pagination)c.$el.one("load-success.bs.table page-change.bs.table",function(){d(),c.togglePagination()}),c.togglePagination();else if("selected"===c.options.exportDataType){var e=c.getData(),f=c.getAllSelections();c.load(f),d(),c.load(e)}else d()})}}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/filter-control/bootstrap-table-filter-control.js b/js/table/extensions/filter-control/bootstrap-table-filter-control.js
new file mode 100644
index 0000000..fa696d3
--- /dev/null
+++ b/js/table/extensions/filter-control/bootstrap-table-filter-control.js
@@ -0,0 +1,436 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    var sprintf = $.fn.bootstrapTable.utils.sprintf;
+
+    var addOptionToSelectControl = function (selectControl, value, text) {
+        selectControl = $(selectControl.get(selectControl.length - 1));
+        if (existsOptionInSelectControl(selectControl, value)) {
+            selectControl.append($("<option></option>")
+                .attr("value", value)
+                .text($('<div />').html(text).text()));
+
+            // Sort it. Not overly efficient to do this here
+            var $opts = selectControl.find('option:gt(0)');
+            $opts.sort(function (a, b) {
+                a = $(a).text().toLowerCase();
+                b = $(b).text().toLowerCase();
+                if ($.isNumeric(a) && $.isNumeric(b)) {
+                    // Convert numerical values from string to float.
+                    a = parseFloat(a);
+                    b = parseFloat(b);
+                }
+                return a > b ? 1 : a < b ? -1 : 0;
+            });
+
+            selectControl.find('option:gt(0)').remove();
+            selectControl.append($opts);
+        }
+    };
+
+    var existsOptionInSelectControl = function (selectControl, value) {
+        var options = selectControl.get(selectControl.length - 1).options;
+        for (var i = 0; i < options.length; i++) {
+            if (options[i].value === value.toString()) {
+                //The value is nor valid to add
+                return false;
+            }
+        }
+
+        //If we get here, the value is valid to add
+        return true;
+    };
+
+    var fixHeaderCSS = function (that) {
+        that.$tableHeader.css('height', '77px');
+    };
+
+    var getCurrentHeader = function (that) {
+        var header = that.$header;
+        if (that.options.height) {
+            header = that.$tableHeader;
+        }
+
+        return header;
+    };
+
+    var getCurrentSearchControls = function (that) {
+        var searchControls = 'select, input';
+        if (that.options.height) {
+            searchControls = 'table select, table input';
+        }
+
+        return searchControls;
+    };
+
+    var copyValues = function (that) {
+        var header = getCurrentHeader(that),
+            searchControls = getCurrentSearchControls(that);
+
+        that.options.values = [];
+
+        header.find(searchControls).each(function () {
+            that.options.values.push(
+                {
+                    field: $(this).parent().parent().parent().data('field'),
+                    value: $(this).val()
+                });
+        });
+    };
+
+    var setValues = function(that) {
+        var field = null,
+            result = [],
+            header = getCurrentHeader(that),
+            searchControls = getCurrentSearchControls(that);
+
+        if (that.options.values.length > 0) {
+            header.find(searchControls).each(function (index, ele) {
+                field = $(this).parent().parent().parent().data('field');
+                result = $.grep(that.options.values, function (valueObj) {
+                    return valueObj.field === field;
+                });
+
+                if (result.length > 0) {
+                    $(this).val(result[0].value);
+                }
+            });
+        }
+    };
+
+    var createControls = function (that, header) {
+        var addedFilterControl = false,
+            isVisible,
+            html,
+            timeoutId = 0;
+
+        $.each(that.columns, function (i, column) {
+            isVisible = 'hidden';
+            html = [];
+
+            if (!column.visible) {
+                return;
+            }
+
+            if (!column.filterControl) {
+                html.push('<div style="height: 34px;"></div>');
+            } else {
+                html.push('<div style="margin: 0px 2px 2px 2px;" class="filterControl">');
+
+                if (column.filterControl && column.searchable) {
+                    addedFilterControl = true;
+                    isVisible = 'visible'
+                }
+                switch (column.filterControl.toLowerCase()) {
+                    case 'input' :
+                        html.push(sprintf('<input type="text" class="form-control" style="width: 100%; visibility: %s">', isVisible));
+                        break;
+                    case 'select':
+                        html.push(sprintf('<select class="%s form-control" style="width: 100%; visibility: %s"></select>',
+                            column.field, isVisible))
+                        break;
+                    case 'datepicker':
+                        html.push(sprintf('<input type="text" class="date-filter-control %s form-control" style="width: 100%; visibility: %s">',
+                            column.field, isVisible));
+                        break;
+                }
+            }
+
+            $.each(header.children().children(), function (i, tr) {
+                tr = $(tr);
+                if (tr.data('field') === column.field) {
+                    tr.find('.fht-cell').append(html.join(''));
+                    return false;
+                }
+            });
+            if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
+                var filterDataType = column.filterData.substring(0, 3);
+                var filterDataSource = column.filterData.substring(4, column.filterData.length);
+                var selectControl = $('.' + column.field);
+                addOptionToSelectControl(selectControl, '', '');
+
+                switch (filterDataType) {
+                    case 'url':
+                        $.ajax({
+                            url: filterDataSource,
+                            dataType: 'json',
+                            success: function (data) {
+                                $.each(data, function (key, value) {
+                                    addOptionToSelectControl(selectControl, key, value);
+                                });
+                            }
+                        });
+                        break;
+                    case 'var':
+                        var variableValues = window[filterDataSource];
+                        for (var key in variableValues) {
+                            addOptionToSelectControl(selectControl, key, variableValues[key]);
+                        }
+                        break;
+                }
+            }
+        });
+
+        if (addedFilterControl) {
+            header.off('keyup', 'input').on('keyup', 'input', function (event) {
+                clearTimeout(timeoutId);
+                timeoutId = setTimeout(function () {
+                    that.onColumnSearch(event);
+                }, that.options.searchTimeOut);
+            });
+
+            header.off('change', 'select').on('change', 'select', function (event) {
+                clearTimeout(timeoutId);
+                timeoutId = setTimeout(function () {
+                    that.onColumnSearch(event);
+                }, that.options.searchTimeOut);
+            });
+
+            header.off('mouseup', 'input').on('mouseup', 'input', function (event) {
+                var $input = $(this),
+                oldValue = $input.val();
+
+                if (oldValue === "") {
+                    return;
+                }
+
+                setTimeout(function(){
+                    var newValue = $input.val();
+
+                    if (newValue === "") {
+                        clearTimeout(timeoutId);
+                        timeoutId = setTimeout(function () {
+                            that.onColumnSearch(event);
+                        }, that.options.searchTimeOut);
+                    }
+                }, 1);
+            });
+
+            if (header.find('.date-filter-control').length > 0) {
+                $.each(that.columns, function (i, column) {
+                    if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'datepicker') {
+                        header.find('.date-filter-control.' + column.field).datepicker(column.filterDatepickerOptions)
+                            .on('changeDate', function (e) {
+                                //Fired the keyup event
+                                $(e.currentTarget).keyup();
+                            });
+                    }
+                });
+            }
+        } else {
+            header.find('.filterControl').hide();
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        filterControl: false,
+        onColumnSearch: function (field, text) {
+            return false;
+        },
+        filterShowClear: false,
+        //internal variables
+        values: []
+    });
+
+    $.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
+        filterControl: undefined,
+        filterData: undefined,
+        filterDatepickerOptions: undefined,
+        filterStrictSearch: false
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'column-search.bs.table': 'onColumnSearch'
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initToolbar = BootstrapTable.prototype.initToolbar,
+        _initHeader = BootstrapTable.prototype.initHeader,
+        _initBody = BootstrapTable.prototype.initBody,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.init = function () {
+        //Make sure that the filtercontrol option is set
+        if (this.options.filterControl) {
+            var that = this;
+            //Make sure that the internal variables are set correctly
+            this.options.values = [];
+
+            this.$el.on('reset-view.bs.table', function () {
+                //Create controls on $tableHeader if the height is set
+                if (!that.options.height) {
+                    return;
+                }
+
+                //Avoid recreate the controls
+                if (that.$tableHeader.find('select').length > 0 || that.$tableHeader.find('input').length > 0) {
+                    return;
+                }
+
+                createControls(that, that.$tableHeader);
+            }).on('post-header.bs.table', function () {
+                setValues(that);
+            }).on('post-body.bs.table', function () {
+                if (that.options.height) {
+                    fixHeaderCSS(that);
+                }
+            }).on('column-switch.bs.table', function(field, checked) {
+                setValues(that);
+            });
+        }
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+    };
+
+    BootstrapTable.prototype.initToolbar = function () {
+        if ((!this.showToolbar) && (this.options.filterControl)) {
+            this.showToolbar = this.options.filterControl;
+        }
+
+        _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.filterControl && this.options.filterShowClear) {
+            var $btnGroup = this.$toolbar.find('>.btn-group'),
+                $btnClear = $btnGroup.find('div.export');
+
+            if (!$btnClear.length) {
+              $btnClear = $([
+                    '<button class="btn btn-default " ' +
+                        'type="button">',
+                    '<i class="glyphicon glyphicon-trash icon-share"></i> ',
+                    '</button>',
+                    '</ul>'].join('')).appendTo($btnGroup);
+
+                $btnClear.off('click').on('click', $.proxy(this.clearFilterControl, this));
+            }
+        }
+    };
+
+    BootstrapTable.prototype.initHeader = function () {
+        _initHeader.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.filterControl) {
+            return;
+        }
+        createControls(this, this.$header);
+    };
+
+    BootstrapTable.prototype.initBody = function () {
+        _initBody.apply(this, Array.prototype.slice.apply(arguments));
+
+        var that = this,
+            data = this.options.data,
+            pageTo = this.pageTo < this.options.data.length ? this.options.data.length : this.pageTo;
+
+        for (var i = this.pageFrom - 1; i < pageTo; i++) {
+            var item = data[i];
+
+            $.each(this.header.fields, function (j, field) {
+                var value = item[field],
+                    column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, field)];
+
+                value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[j], [value, item, i], value);
+
+                if ((!column.checkbox) || (!column.radio)) {
+                    if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'select' && column.searchable) {
+                        if (column.filterData === undefined || column.filterData.toLowerCase() === 'column') {
+                            var selectControl = $('.' + column.field);
+                            if (selectControl !== undefined && selectControl.length > 0) {
+                                if (selectControl.get(selectControl.length - 1).options.length === 0) {
+                                    //Added the default option
+                                    addOptionToSelectControl(selectControl, '', '');
+                                }
+
+                                //Added a new value
+                                addOptionToSelectControl(selectControl, value, value);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+
+        var that = this;
+        var fp = $.isEmptyObject(this.filterColumnsPartial) ? null : this.filterColumnsPartial;
+
+        //Check partial column filter
+        this.data = fp ? $.grep(this.data, function (item, i) {
+            for (var key in fp) {
+                var thisColumn = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)];
+                var fval = fp[key].toLowerCase();
+                var value = item[key];
+                value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header,
+                    that.header.formatters[$.inArray(key, that.header.fields)],
+                    [value, item, i], value);
+
+                if(thisColumn.filterStrictSearch){
+                    if (!($.inArray(key, that.header.fields) !== -1 &&
+                        (typeof value === 'string' || typeof value === 'number') &&
+                        value.toString().toLowerCase() === fval.toString().toLowerCase())) {
+                        return false;
+                    }
+                }
+                else{
+                    if (!($.inArray(key, that.header.fields) !== -1 &&
+                        (typeof value === 'string' || typeof value === 'number') &&
+                        (value + '').toLowerCase().indexOf(fval) !== -1)) {
+                        return false;
+                    }
+                };
+            }
+            return true;
+        }) : this.data;
+    };
+
+    BootstrapTable.prototype.onColumnSearch = function (event) {
+        copyValues(this);
+        var text = $.trim($(event.currentTarget).val());
+        var $field = $(event.currentTarget).parent().parent().parent().data('field')
+
+        if ($.isEmptyObject(this.filterColumnsPartial)) {
+            this.filterColumnsPartial = {};
+        }
+        if (text) {
+            this.filterColumnsPartial[$field] = text;
+        } else {
+            delete this.filterColumnsPartial[$field];
+        }
+
+        this.options.pageNumber = 1;
+        this.onSearch(event);
+        this.updatePagination();
+        this.trigger('column-search', $field, text);
+    };
+
+    BootstrapTable.prototype.clearFilterControl = function () {
+        if (this.options.filterControl && this.options.filterShowClear) {
+            $.each(this.options.values, function (i, item) {
+                item.value = '';
+            });
+
+            setValues(this);
+
+            var controls = getCurrentHeader(this).find(getCurrentSearchControls(this)),
+                timeoutId = 0;
+
+            if (controls.length > 0) {
+                this.filterColumnsPartial = {};
+                clearTimeout(timeoutId);
+                timeoutId = setTimeout(function () {
+                    $(controls[0]).trigger(controls[0].tagName === 'INPUT' ? 'keyup' : 'change');
+                }, this.options.searchTimeOut);
+            }
+        }
+    };
+}(jQuery);
diff --git a/js/table/extensions/filter-control/bootstrap-table-filter-control.min.js b/js/table/extensions/filter-control/bootstrap-table-filter-control.min.js
new file mode 100644
index 0000000..1de25e7
--- /dev/null
+++ b/js/table/extensions/filter-control/bootstrap-table-filter-control.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=function(b,c,e){if(b=a(b.get(b.length-1)),d(b,c)){b.append(a("<option></option>").attr("value",c).text(a("<div />").html(e).text()));var f=b.find("option:gt(0)");f.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(f)}},d=function(a,b){for(var c=a.get(a.length-1).options,d=0;d<c.length;d++)if(c[d].value===b.toString())return!1;return!0},e=function(a){a.$tableHeader.css("height","77px")},f=function(a){var b=a.$header;return a.options.height&&(b=a.$tableHeader),b},g=function(a){var b="select, input";return a.options.height&&(b="table select, table input"),b},h=function(b){var c=f(b),d=g(b);b.options.values=[],c.find(d).each(function(){b.options.values.push({field:a(this).parent().parent().parent().data("field"),value:a(this).val()})})},i=function(b){var c=null,d=[],e=f(b),h=g(b);b.options.values.length>0&&e.find(h).each(function(){c=a(this).parent().parent().parent().data("field"),d=a.grep(b.options.values,function(a){return a.field===c}),d.length>0&&a(this).val(d[0].value)})},j=function(d,e){var f,g,h=!1,i=0;a.each(d.columns,function(d,i){if(f="hidden",g=[],i.visible){if(i.filterControl)switch(g.push('<div style="margin: 0px 2px 2px 2px;" class="filterControl">'),i.filterControl&&i.searchable&&(h=!0,f="visible"),i.filterControl.toLowerCase()){case"input":g.push(b('<input type="text" class="form-control" style="width: 100%; visibility: %s">',f));break;case"select":g.push(b('<select class="%s form-control" style="width: 100%; visibility: %s"></select>',i.field,f));break;case"datepicker":g.push(b('<input type="text" class="date-filter-control %s form-control" style="width: 100%; visibility: %s">',i.field,f))}else g.push('<div style="height: 34px;"></div>');if(a.each(e.children().children(),function(b,c){return c=a(c),c.data("field")===i.field?(c.find(".fht-cell").append(g.join("")),!1):void 0}),void 0!==i.filterData&&"column"!==i.filterData.toLowerCase()){var j=i.filterData.substring(0,3),k=i.filterData.substring(4,i.filterData.length),l=a("."+i.field);switch(c(l,"",""),j){case"url":a.ajax({url:k,dataType:"json",success:function(b){a.each(b,function(a,b){c(l,a,b)})}});break;case"var":var m=window[k];for(var n in m)c(l,n,m[n])}}}}),h?(e.off("keyup","input").on("keyup","input",function(a){clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(a)},d.options.searchTimeOut)}),e.off("change","select").on("change","select",function(a){clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(a)},d.options.searchTimeOut)}),e.off("mouseup","input").on("mouseup","input",function(b){var c=a(this),e=c.val();""!==e&&setTimeout(function(){var a=c.val();""===a&&(clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(b)},d.options.searchTimeOut))},1)}),e.find(".date-filter-control").length>0&&a.each(d.columns,function(b,c){void 0!==c.filterControl&&"datepicker"===c.filterControl.toLowerCase()&&e.find(".date-filter-control."+c.field).datepicker(c.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):e.find(".filterControl").hide()};a.extend(a.fn.bootstrapTable.defaults,{filterControl:!1,onColumnSearch:function(){return!1},filterShowClear:!1,values:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"});var k=a.fn.bootstrapTable.Constructor,l=k.prototype.init,m=k.prototype.initToolbar,n=k.prototype.initHeader,o=k.prototype.initBody,p=k.prototype.initSearch;k.prototype.init=function(){if(this.options.filterControl){var a=this;this.options.values=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||j(a,a.$tableHeader))}).on("post-header.bs.table",function(){i(a)}).on("post-body.bs.table",function(){a.options.height&&e(a)}).on("column-switch.bs.table",function(){i(a)})}l.apply(this,Array.prototype.slice.apply(arguments))},k.prototype.initToolbar=function(){if(!this.showToolbar&&this.options.filterControl&&(this.showToolbar=this.options.filterControl),m.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var b=this.$toolbar.find(">.btn-group"),c=b.find("div.export");c.length||(c=a(['<button class="btn btn-default " type="button">','<i class="glyphicon glyphicon-trash icon-share"></i> ',"</button>","</ul>"].join("")).appendTo(b),c.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},k.prototype.initHeader=function(){n.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&j(this,this.$header)},k.prototype.initBody=function(){o.apply(this,Array.prototype.slice.apply(arguments));for(var b=this,d=this.options.data,e=this.pageTo<this.options.data.length?this.options.data.length:this.pageTo,f=this.pageFrom-1;e>f;f++){var g=d[f];a.each(this.header.fields,function(d,e){var h=g[e],i=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e)];if(h=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[d],[h,g,f],h),!(i.checkbox&&i.radio||void 0===i.filterControl||"select"!==i.filterControl.toLowerCase()||!i.searchable||void 0!==i.filterData&&"column"!==i.filterData.toLowerCase())){var j=a("."+i.field);void 0!==j&&j.length>0&&(0===j.get(j.length-1).options.length&&c(j,"",""),c(j,h,h))}})}},k.prototype.initSearch=function(){p.apply(this,Array.prototype.slice.apply(arguments));var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data},k.prototype.onColumnSearch=function(b){h(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).parent().parent().parent().data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.options.pageNumber=1,this.onSearch(b),this.updatePagination(),this.trigger("column-search",d,c)},k.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){a.each(this.options.values,function(a,b){b.value=""}),i(this);var b=f(this).find(g(this)),c=0;b.length>0&&(this.filterColumnsPartial={},clearTimeout(c),c=setTimeout(function(){a(b[0]).trigger("INPUT"===b[0].tagName?"keyup":"change")},this.options.searchTimeOut))}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/filter/bootstrap-table-filter.js b/js/table/extensions/filter/bootstrap-table-filter.js
new file mode 100644
index 0000000..14af13d
--- /dev/null
+++ b/js/table/extensions/filter/bootstrap-table-filter.js
@@ -0,0 +1,67 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * extensions: https://github.com/lukaskral/bootstrap-table-filter
+ */
+
+!function($) {
+
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        showFilter: false
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.init = function () {
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+
+        var that = this;
+        this.$el.on('load-success.bs.table', function () {
+            if (that.options.showFilter) {
+                $(that.options.toolbar).bootstrapTableFilter({
+                    connectTo: that.$el
+                });
+            }
+        });
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.sidePagination !== 'server') {
+            if (typeof this.searchCallback === 'function') {
+                this.data = $.grep(this.options.data, this.searchCallback);
+            }
+        }
+    };
+
+    BootstrapTable.prototype.getData = function () {
+        return (this.searchText || this.searchCallback) ? this.data : this.options.data;
+    };
+
+    BootstrapTable.prototype.getColumns = function () {
+        return this.columns;
+    };
+
+    BootstrapTable.prototype.registerSearchCallback = function (callback) {
+        this.searchCallback = callback;
+    };
+
+    BootstrapTable.prototype.updateSearch = function () {
+        this.options.pageNumber = 1;
+        this.initSearch();
+        this.updatePagination();
+    };
+
+    BootstrapTable.prototype.getServerUrl = function () {
+        return (this.options.sidePagination === 'server') ? this.options.url : false;
+    };
+
+    $.fn.bootstrapTable.methods.push('getColumns',
+        'registerSearchCallback', 'updateSearch',
+        'getServerUrl');
+
+}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/filter/bootstrap-table-filter.min.js b/js/table/extensions/filter/bootstrap-table-filter.min.js
new file mode 100644
index 0000000..9d0e057
--- /dev/null
+++ b/js/table/extensions/filter/bootstrap-table-filter.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{showFilter:!1});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.init,d=b.prototype.initSearch;b.prototype.init=function(){c.apply(this,Array.prototype.slice.apply(arguments));var b=this;this.$el.on("load-success.bs.table",function(){b.options.showFilter&&a(b.options.toolbar).bootstrapTableFilter({connectTo:b.$el})})},b.prototype.initSearch=function(){d.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination&&"function"==typeof this.searchCallback&&(this.data=a.grep(this.options.data,this.searchCallback))},b.prototype.getData=function(){return this.searchText||this.searchCallback?this.data:this.options.data},b.prototype.getColumns=function(){return this.columns},b.prototype.registerSearchCallback=function(a){this.searchCallback=a},b.prototype.updateSearch=function(){this.options.pageNumber=1,this.initSearch(),this.updatePagination()},b.prototype.getServerUrl=function(){return"server"===this.options.sidePagination?this.options.url:!1},a.fn.bootstrapTable.methods.push("getColumns","registerSearchCallback","updateSearch","getServerUrl")}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/flat-json/bootstrap-table-flat-json.js b/js/table/extensions/flat-json/bootstrap-table-flat-json.js
new file mode 100644
index 0000000..4bbf3a2
--- /dev/null
+++ b/js/table/extensions/flat-json/bootstrap-table-flat-json.js
@@ -0,0 +1,62 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.3.0
+ */
+
+(function ($) {
+    'use strict';
+
+    var flat = function (element, that) {
+        var result = {};
+
+        function recurse(cur, prop) {
+            if (Object(cur) !== cur) {
+                result[prop] = cur;
+            } else if ($.isArray(cur)) {
+                for (var i = 0, l = cur.length; i < l; i++) {
+                    recurse(cur[i], prop ? prop + that.options.flatSeparator + i : "" + i);
+                    if (l == 0) {
+                        result[prop] = [];
+                    }
+                }
+            } else {
+                var isEmpty = true;
+                for (var p in cur) {
+                    isEmpty = false;
+                    recurse(cur[p], prop ? prop + that.options.flatSeparator + p : p);
+                }
+                if (isEmpty) {
+                    result[prop] = {};
+                }
+            }
+        }
+
+        recurse(element, "");
+        return result;
+    };
+
+    var flatHelper = function (data, that) {
+        var flatArray = [];
+
+        $.each(!$.isArray(data) ? [data] : data, function (i, element) {
+            flatArray.push(flat(element, that));
+        });
+        return flatArray;
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        flat: false,
+        flatSeparator: '.'
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initData = BootstrapTable.prototype.initData;
+
+    BootstrapTable.prototype.initData = function (data, type) {
+        if (this.options.flat) {
+            data = flatHelper(data ? data : this.options.data, this);
+        }
+        _initData.apply(this, [data, type]);
+    };
+})(jQuery);
diff --git a/js/table/extensions/flat-json/bootstrap-table-flat-json.min.js b/js/table/extensions/flat-json/bootstrap-table-flat-json.min.js
new file mode 100644
index 0000000..844f542
--- /dev/null
+++ b/js/table/extensions/flat-json/bootstrap-table-flat-json.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=function(b,c){function d(b,f){if(Object(b)!==b)e[f]=b;else if(a.isArray(b))for(var g=0,h=b.length;h>g;g++)d(b[g],f?f+c.options.flatSeparator+g:""+g),0==h&&(e[f]=[]);else{var i=!0;for(var j in b)i=!1,d(b[j],f?f+c.options.flatSeparator+j:j);i&&(e[f]={})}}var e={};return d(b,""),e},c=function(c,d){var e=[];return a.each(a.isArray(c)?c:[c],function(a,c){e.push(b(c,d))}),e};a.extend(a.fn.bootstrapTable.defaults,{flat:!1,flatSeparator:"."});var d=a.fn.bootstrapTable.Constructor,e=d.prototype.initData;d.prototype.initData=function(a,b){this.options.flat&&(a=c(a?a:this.options.data,this)),e.apply(this,[a,b])}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/flatJSON/bootstrap-table-flatJSON.min.js b/js/table/extensions/flatJSON/bootstrap-table-flatJSON.min.js
new file mode 100644
index 0000000..42981f7
--- /dev/null
+++ b/js/table/extensions/flatJSON/bootstrap-table-flatJSON.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.6.0 - 2015-03-03
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{flat:!1});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initData;b.prototype.initData=function(){c.apply(this,Array.prototype.slice.apply(arguments)),this.options.flat&&(this.options.data=d.flatHelper(this.options.data)),"server"===this.options.sidePagination&&(this.data=this.options.data)};var d={flat:function(a){function b(a,d){if(Object(a)!==a)c[d]=a;else if(Array.isArray(a))for(var e=0,f=a.length;f>e;e++)b(a[e],d?d+"."+e:""+e),0==f&&(c[d]=[]);else{var g=!0;for(var h in a)g=!1,b(a[h],d?d+"."+h:h);g&&(c[d]={})}}var c={};return b(a,""),c},flatHelper:function(b){var c=[],e=[];return a.isArray(b)||(e.push(b),b=e),a.each(b,function(a,b){c.push(d.flat(b))}),c}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/group-by/bootstrap-table-group-by.css b/js/table/extensions/group-by/bootstrap-table-group-by.css
new file mode 100644
index 0000000..fce5a9a
--- /dev/null
+++ b/js/table/extensions/group-by/bootstrap-table-group-by.css
@@ -0,0 +1,53 @@
+table.treetable tbody tr td {
+    cursor: default;
+}
+
+table.treetable span {
+    background-position: center left;
+    background-repeat: no-repeat;
+    padding: .2em 0 .2em 1.5em;
+}
+
+table.treetable tr.collapsed span.indenter a {
+    background-image: url(data:image/png;base64,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);
+    padding-right: 12px;
+}
+
+table.treetable tr.expanded span.indenter a {
+    background-image: url(data:image/png;base64,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);
+    padding-right: 12px;
+}
+
+table.treetable tr.branch {
+    background-color: #f9f9f9;
+}
+
+table.treetable tr.selected {
+    background-color: #3875d7;
+    color: #fff;
+}
+
+table.treetable tr span.indenter a {
+    outline: none; /* Expander shows outline after upgrading to 3.0 (#141) */
+}
+
+table.treetable tr.collapsed.selected span.indenter a {
+    background-image: url(data:image/png;base64,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);
+}
+
+table.treetable tr.expanded.selected span.indenter a {
+    background-image: url(data:image/png;base64,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);
+}
+
+table.treetable tr.accept {
+    background-color: #a3bce4;
+    color: #fff
+}
+
+table.treetable tr.collapsed.accept td span.indenter a {
+    background-image: url(data:image/x-png;base64,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);
+}
+
+table.treetable tr.expanded.accept td span.indenter a {
+    background-image: url(data:image/x-png;base64,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);
+}
\ No newline at end of file
diff --git a/js/table/extensions/group-by/bootstrap-table-group-by.js b/js/table/extensions/group-by/bootstrap-table-group-by.js
new file mode 100644
index 0000000..6f95e61
--- /dev/null
+++ b/js/table/extensions/group-by/bootstrap-table-group-by.js
@@ -0,0 +1,243 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.1.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    var originalRowAttr,
+        dataTTId = 'data-tt-id',
+        dataTTParentId = 'data-tt-parent-id',
+        obj = {},
+        parentId = undefined;
+
+    var getParentRowId = function (that, id) {
+        var parentRows = that.$body.find('tr').not('[' + 'data-tt-parent-id]');
+
+        for (var i = 0; i < parentRows.length; i++) {
+            if (i === id) {
+                return $(parentRows[i]).attr('data-tt-id');
+            }
+        }
+
+        return undefined;
+    };
+
+    var sumData = function (that, data) {
+        var sumRow = {};
+        $.each(data, function (i, row) {
+            if (!row.IsParent) {
+                for (var prop in row) {
+                    if (!isNaN(parseFloat(row[prop]))) {
+                        if (that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, prop)].groupBySumGroup) {
+                            if (sumRow[prop] === undefined) {
+                                sumRow[prop] = 0;
+                            }
+                            sumRow[prop] += +row[prop];
+                        }
+                    }
+                }
+            }
+        });
+        return sumRow;
+    };
+
+    var rowAttr = function (row, index) {
+        //Call the User Defined Function
+        originalRowAttr.apply([row, index]);
+
+        obj[dataTTId.toString()] = index;
+
+        if (!row.IsParent) {
+            obj[dataTTParentId.toString()] = parentId === undefined ? index : parentId;
+        } else {
+            parentId = index;
+            delete obj[dataTTParentId.toString()];
+        }
+
+        return obj;
+    };
+
+    var setObjectKeys = function () {
+        // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
+        Object.keys = function (o) {
+            if (o !== Object(o)) {
+                throw new TypeError('Object.keys called on a non-object');
+            }
+            var k = [],
+                p;
+            for (p in o) {
+                if (Object.prototype.hasOwnProperty.call(o, p)) {
+                    k.push(p);
+                }
+            }
+            return k;
+        }
+    };
+
+    var getDataArrayFromItem = function (that, item) {
+        var itemDataArray = [];
+        for (var i = 0; i < that.options.groupByField.length; i++) {
+            itemDataArray.push(item[that.options.groupByField[i]]);
+        }
+
+        return itemDataArray;
+    };
+
+    var getNewRow = function (that, result, index) {
+        var newRow = {};
+        for (var i = 0; i < that.options.groupByField.length; i++) {
+            newRow[that.options.groupByField[i].toString()] = result[index][0][that.options.groupByField[i]];
+        }
+
+        newRow.IsParent = true;
+
+        return newRow;
+    };
+
+    var groupBy = function (array, f) {
+        var groups = {};
+        $.each(array, function (i, o) {
+            var group = JSON.stringify(f(o));
+            groups[group] = groups[group] || [];
+            groups[group].push(o);
+        });
+        return Object.keys(groups).map(function (group) {
+            return groups[group];
+        });
+    };
+
+    var makeGrouped = function (that, data) {
+        var newData = [],
+            sumRow = {};
+
+        var result = groupBy(data, function (item) {
+            return getDataArrayFromItem(that, item);
+        });
+
+        for (var i = 0; i < result.length; i++) {
+            result[i].unshift(getNewRow(that, result, i));
+            if (that.options.groupBySumGroup) {
+                sumRow = sumData(that, result[i]);
+                if (!$.isEmptyObject(sumRow)) {
+                    result[i].push(sumRow);
+                }
+            }
+        }
+
+        newData = newData.concat.apply(newData, result);
+
+        if (!that.options.loaded && newData.length > 0) {
+            that.options.loaded = true;
+            that.options.originalData = that.options.data;
+            that.options.data = newData;
+        }
+
+        return newData;
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        groupBy: false,
+        groupByField: [],
+        groupBySumGroup: false,
+        groupByInitExpanded: undefined, //node, 'all'
+        //internal variables
+        loaded: false,
+        originalData: undefined
+    });
+
+    $.fn.bootstrapTable.methods.push('collapseAll', 'expandAll', 'refreshGroupByField');
+
+    $.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
+        groupBySumGroup: false
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initData = BootstrapTable.prototype.initData;
+
+    BootstrapTable.prototype.init = function () {
+        //Temporal validation
+        if (!this.options.sortName) {
+            if ((this.options.groupBy) && (this.options.groupByField.length > 0)) {
+                var that = this;
+
+                // Compatibility: IE < 9 and old browsers
+                if (!Object.keys) {
+                    setObjectKeys();
+                }
+
+                //Make sure that the internal variables are set correctly
+                this.options.loaded = false;
+                this.options.originalData = undefined;
+
+                originalRowAttr = this.options.rowAttributes;
+                this.options.rowAttributes = rowAttr;
+                this.$el.on('post-body.bs.table', function () {
+                    that.$el.treetable({
+                        expandable: true,
+                        onNodeExpand: function () {
+                            if (that.options.height) {
+                                that.resetHeader();
+                            }
+                        },
+                        onNodeCollapse: function () {
+                            if (that.options.height) {
+                                that.resetHeader();
+                            }
+                        }
+                    }, true);
+
+                    if (that.options.groupByInitExpanded !== undefined) {
+                        if (typeof that.options.groupByInitExpanded === 'number') {
+                            that.expandNode(that.options.groupByInitExpanded);
+                        } else if (that.options.groupByInitExpanded.toLowerCase() === 'all') {
+                            that.expandAll();
+                        }
+                    }
+                });
+            }
+        }
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+    };
+
+    BootstrapTable.prototype.initData = function (data, type) {
+        //Temporal validation
+        if (!this.options.sortName) {
+            if ((this.options.groupBy) && (this.options.groupByField.length > 0)) {
+
+                this.options.groupByField = typeof this.options.groupByField === 'string' ?
+                    this.options.groupByField.replace('[', '').replace(']', '')
+                        .replace(/ /g, '').toLowerCase().split(',') : this.options.groupByField;
+
+                data = makeGrouped(this, data ? data : this.options.data);
+            }
+        }
+        _initData.apply(this, [data, type]);
+    };
+
+    BootstrapTable.prototype.expandAll = function () {
+        this.$el.treetable('expandAll');
+    };
+
+    BootstrapTable.prototype.collapseAll = function () {
+        this.$el.treetable('collapseAll');
+    };
+
+    BootstrapTable.prototype.expandNode = function (id) {
+        id = getParentRowId(this, id);
+        if (id !== undefined) {
+            this.$el.treetable('expandNode', id);
+        }
+    };
+
+    BootstrapTable.prototype.refreshGroupByField = function (groupByFields) {
+        if (!$.fn.bootstrapTable.utils.compareObjects(this.options.groupByField, groupByFields)) {
+            this.options.groupByField = groupByFields;
+            this.load(this.options.originalData);
+        }
+    };
+}(jQuery);
diff --git a/js/table/extensions/group-by/bootstrap-table-group-by.min.js b/js/table/extensions/group-by/bootstrap-table-group-by.min.js
new file mode 100644
index 0000000..9d55090
--- /dev/null
+++ b/js/table/extensions/group-by/bootstrap-table-group-by.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b,c="data-tt-id",d="data-tt-parent-id",e={},f=void 0,g=function(b,c){for(var d=b.$body.find("tr").not("[data-tt-parent-id]"),e=0;e<d.length;e++)if(e===c)return a(d[e]).attr("data-tt-id");return void 0},h=function(b,c){var d={};return a.each(c,function(c,e){if(!e.IsParent)for(var f in e)isNaN(parseFloat(e[f]))||b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)].groupBySumGroup&&(void 0===d[f]&&(d[f]=0),d[f]+=+e[f])}),d},i=function(a,g){return b.apply([a,g]),e[c.toString()]=g,a.IsParent?(f=g,delete e[d.toString()]):e[d.toString()]=void 0===f?g:f,e},j=function(){Object.keys=function(a){if(a!==Object(a))throw new TypeError("Object.keys called on a non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}},k=function(a,b){for(var c=[],d=0;d<a.options.groupByField.length;d++)c.push(b[a.options.groupByField[d]]);return c},l=function(a,b,c){for(var d={},e=0;e<a.options.groupByField.length;e++)d[a.options.groupByField[e].toString()]=b[c][0][a.options.groupByField[e]];return d.IsParent=!0,d},m=function(b,c){var d={};return a.each(b,function(a,b){var e=JSON.stringify(c(b));d[e]=d[e]||[],d[e].push(b)}),Object.keys(d).map(function(a){return d[a]})},n=function(b,c){for(var d=[],e={},f=m(c,function(a){return k(b,a)}),g=0;g<f.length;g++)f[g].unshift(l(b,f,g)),b.options.groupBySumGroup&&(e=h(b,f[g]),a.isEmptyObject(e)||f[g].push(e));return d=d.concat.apply(d,f),!b.options.loaded&&d.length>0&&(b.options.loaded=!0,b.options.originalData=b.options.data,b.options.data=d),d};a.extend(a.fn.bootstrapTable.defaults,{groupBy:!1,groupByField:[],groupBySumGroup:!1,groupByInitExpanded:void 0,loaded:!1,originalData:void 0}),a.fn.bootstrapTable.methods.push("collapseAll","expandAll","refreshGroupByField"),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{groupBySumGroup:!1});var o=a.fn.bootstrapTable.Constructor,p=o.prototype.init,q=o.prototype.initData;o.prototype.init=function(){if(!this.options.sortName&&this.options.groupBy&&this.options.groupByField.length>0){var a=this;Object.keys||j(),this.options.loaded=!1,this.options.originalData=void 0,b=this.options.rowAttributes,this.options.rowAttributes=i,this.$el.on("post-body.bs.table",function(){a.$el.treetable({expandable:!0,onNodeExpand:function(){a.options.height&&a.resetHeader()},onNodeCollapse:function(){a.options.height&&a.resetHeader()}},!0),void 0!==a.options.groupByInitExpanded&&("number"==typeof a.options.groupByInitExpanded?a.expandNode(a.options.groupByInitExpanded):"all"===a.options.groupByInitExpanded.toLowerCase()&&a.expandAll())})}p.apply(this,Array.prototype.slice.apply(arguments))},o.prototype.initData=function(a,b){this.options.sortName||this.options.groupBy&&this.options.groupByField.length>0&&(this.options.groupByField="string"==typeof this.options.groupByField?this.options.groupByField.replace("[","").replace("]","").replace(/ /g,"").toLowerCase().split(","):this.options.groupByField,a=n(this,a?a:this.options.data)),q.apply(this,[a,b])},o.prototype.expandAll=function(){this.$el.treetable("expandAll")},o.prototype.collapseAll=function(){this.$el.treetable("collapseAll")},o.prototype.expandNode=function(a){a=g(this,a),void 0!==a&&this.$el.treetable("expandNode",a)},o.prototype.refreshGroupByField=function(b){a.fn.bootstrapTable.utils.compareObjects(this.options.groupByField,b)||(this.options.groupByField=b,this.load(this.options.originalData))}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/key-events/bootstrap-table-key-events.js b/js/table/extensions/key-events/bootstrap-table-key-events.js
new file mode 100644
index 0000000..887f803
--- /dev/null
+++ b/js/table/extensions/key-events/bootstrap-table-key-events.js
@@ -0,0 +1,80 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ *
+ * @update zhixin wen <wenzhixin2010@gmail.com>
+ */
+
+!function ($) {
+
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        keyEvents: false
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init;
+
+    BootstrapTable.prototype.init = function () {
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+        this.initKeyEvents();
+    };
+
+    BootstrapTable.prototype.initKeyEvents = function () {
+        if (this.options.keyEvents) {
+            var that = this;
+
+            $(document).off('keydown').on('keydown', function (e) {
+                var $search = that.$toolbar.find('.search input'),
+                    $refresh = that.$toolbar.find('button[name="refresh"]'),
+                    $toggle = that.$toolbar.find('button[name="toggle"]'),
+                    $paginationSwitch = that.$toolbar.find('button[name="paginationSwitch"]');
+
+                if (document.activeElement === $search.get(0)) {
+                    return true;
+                }
+
+                switch (e.keyCode) {
+                    case 83: //s
+                        if (!that.options.search) {
+                            return;
+                        }
+                        $search.focus();
+                        return false;
+                    case 82: //r
+                        if (!that.options.showRefresh) {
+                            return;
+                        }
+                        $refresh.click();
+                        return false;
+                    case 84: //t
+                        if (!that.options.showToggle) {
+                            return;
+                        }
+                        $toggle.click();
+                        return false;
+                    case 80: //p
+                        if (!that.options.showPaginationSwitch) {
+                            return;
+                        }
+                        $paginationSwitch.click();
+                        return false;
+                    case 37: // left
+                        if (!that.options.pagination) {
+                            return;
+                        }
+                        that.prevPage();
+                        return false;
+                    case 39: // right
+                        if (!that.options.pagination) {
+                            return;
+                        }
+                        that.nextPage();
+                        return;
+                }
+            });
+        }
+    };
+}(jQuery);
diff --git a/js/table/extensions/key-events/bootstrap-table-key-events.min.js b/js/table/extensions/key-events/bootstrap-table-key-events.min.js
new file mode 100644
index 0000000..db1561a
--- /dev/null
+++ b/js/table/extensions/key-events/bootstrap-table-key-events.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{keyEvents:!1});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.init;b.prototype.init=function(){c.apply(this,Array.prototype.slice.apply(arguments)),this.initKeyEvents()},b.prototype.initKeyEvents=function(){if(this.options.keyEvents){var b=this;a(document).off("keydown").on("keydown",function(a){var c=b.$toolbar.find(".search input"),d=b.$toolbar.find('button[name="refresh"]'),e=b.$toolbar.find('button[name="toggle"]'),f=b.$toolbar.find('button[name="paginationSwitch"]');if(document.activeElement===c.get(0))return!0;switch(a.keyCode){case 83:if(!b.options.search)return;return c.focus(),!1;case 82:if(!b.options.showRefresh)return;return d.click(),!1;case 84:if(!b.options.showToggle)return;return e.click(),!1;case 80:if(!b.options.showPaginationSwitch)return;return f.click(),!1;case 37:if(!b.options.pagination)return;return b.prevPage(),!1;case 39:if(!b.options.pagination)return;return void b.nextPage()}})}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/mobile/bootstrap-table-mobile.js b/js/table/extensions/mobile/bootstrap-table-mobile.js
new file mode 100644
index 0000000..5fb6704
--- /dev/null
+++ b/js/table/extensions/mobile/bootstrap-table-mobile.js
@@ -0,0 +1,131 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.1.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    var showHideColumns = function (that, checked) {
+        if (that.options.columnsHidden.length > 0 ) {
+            $.each(that.columns, function (i, column) {
+                if (that.options.columnsHidden.indexOf(column.field) !== -1) {
+                    if (column.visible !== checked) {
+                        that.toggleColumn($.fn.bootstrapTable.utils.getFieldIndex(that.columns, column.field), checked, true);
+                    }
+                }
+            });
+        }
+    };
+
+    var resetView = function (that) {
+        if (that.options.height || that.options.showFooter) {
+            setTimeout(function(){
+                that.resetView.call(that);
+            }, 1);
+        }
+    };
+
+    var changeView = function (that, width, height) {
+        if (that.options.minHeight) {
+            if ((width <= that.options.minWidth) && (height <= that.options.minHeight)) {
+                conditionCardView(that);
+            } else if ((width > that.options.minWidth) && (height > that.options.minHeight)) {
+                conditionFullView(that);
+            }
+        } else {
+            if (width <= that.options.minWidth) {
+                conditionCardView(that);
+            } else if (width > that.options.minWidth) {
+                conditionFullView(that);
+            }
+        }
+
+        resetView(that);
+    };
+
+    var conditionCardView = function (that) {
+        changeTableView(that, false);
+        showHideColumns(that, false);
+    };
+
+    var conditionFullView = function (that) {
+        changeTableView(that, true);
+        showHideColumns(that, true);
+    };
+
+    var changeTableView = function (that, cardViewState) {
+        that.options.cardView = cardViewState;
+        that.toggleView();
+    };
+
+    var debounce = function(func,wait) {
+        var timeout;
+        return function() {
+            var context = this,
+                args = arguments;
+            var later = function() {
+                timeout = null;
+                func.apply(context,args);
+            };
+            clearTimeout(timeout);
+            timeout = setTimeout(later, wait);
+        };
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        mobileResponsive: false,
+        minWidth: 562,
+        minHeight: undefined,
+        heightThreshold: 100, // just slightly larger than mobile chrome's auto-hiding toolbar
+        checkOnInit: true,
+        columnsHidden: []
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init;
+
+    BootstrapTable.prototype.init = function () {
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.mobileResponsive) {
+            return;
+        }
+
+        if (!this.options.minWidth) {
+            return;
+        }
+
+        var that = this,
+            old = {
+                width: $(window).width(),
+                height: $(window).height()
+            };
+
+        $(window).on('resize orientationchange',debounce(function (evt) {
+            // reset view if height has only changed by at least the threshold.
+            var height = $(this).height(),
+                width = $(this).width();
+
+            if (Math.abs(old.height - height) > that.options.heightThreshold || old.width != width) {
+                changeView(that, width, height);
+                old = {
+                    width: width,
+                    height: height
+                };
+            }
+        },200));
+
+        if (this.options.checkOnInit) {
+            var height = $(window).height(),
+                width = $(window).width();
+            changeView(this, width, height);
+            old = {
+                width: width,
+                height: height
+            };
+        }
+    };
+}(jQuery);
diff --git a/js/table/extensions/mobile/bootstrap-table-mobile.min.js b/js/table/extensions/mobile/bootstrap-table-mobile.min.js
new file mode 100644
index 0000000..c693a82
--- /dev/null
+++ b/js/table/extensions/mobile/bootstrap-table-mobile.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=function(b,c){b.options.columnsHidden.length>0&&a.each(b.columns,function(d,e){-1!==b.options.columnsHidden.indexOf(e.field)&&e.visible!==c&&b.toggleColumn(a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e.field),c,!0)})},c=function(a){(a.options.height||a.options.showFooter)&&setTimeout(function(){a.resetView.call(a)},1)},d=function(a,b,d){a.options.minHeight?b<=a.options.minWidth&&d<=a.options.minHeight?e(a):b>a.options.minWidth&&d>a.options.minHeight&&f(a):b<=a.options.minWidth?e(a):b>a.options.minWidth&&f(a),c(a)},e=function(a){g(a,!1),b(a,!1)},f=function(a){g(a,!0),b(a,!0)},g=function(a,b){a.options.cardView=b,a.toggleView()},h=function(a,b){var c;return function(){var d=this,e=arguments,f=function(){c=null,a.apply(d,e)};clearTimeout(c),c=setTimeout(f,b)}};a.extend(a.fn.bootstrapTable.defaults,{mobileResponsive:!1,minWidth:562,minHeight:void 0,heightThreshold:100,checkOnInit:!0,columnsHidden:[]});var i=a.fn.bootstrapTable.Constructor,j=i.prototype.init;i.prototype.init=function(){if(j.apply(this,Array.prototype.slice.apply(arguments)),this.options.mobileResponsive&&this.options.minWidth){var b=this,c={width:a(window).width(),height:a(window).height()};if(a(window).on("resize orientationchange",h(function(){var e=a(this).height(),f=a(this).width();(Math.abs(c.height-e)>b.options.heightThreshold||c.width!=f)&&(d(b,f,e),c={width:f,height:e})},200)),this.options.checkOnInit){var e=a(window).height(),f=a(window).width();d(this,f,e),c={width:f,height:e}}}}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/multiple-search/bootstrap-table-multiple-search.js b/js/table/extensions/multiple-search/bootstrap-table-multiple-search.js
new file mode 100644
index 0000000..22df2ae
--- /dev/null
+++ b/js/table/extensions/multiple-search/bootstrap-table-multiple-search.js
@@ -0,0 +1,67 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        multipleSearch: false
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.initSearch = function () {
+        if (this.options.multipleSearch) {
+            var strArray = this.searchText.split(" "),
+                that = this,
+                f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns,
+                dataFiltered = [];
+
+            if (strArray.length === 1) {
+                _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+            } else {
+                for (var i = 0; i < strArray.length; i++) {
+                    var str = strArray[i].trim();
+                    dataFiltered = str ? $.grep(dataFiltered.length === 0 ? this.options.data : dataFiltered, function (item, i) {
+                        for (var key in item) {
+                            key = $.isNumeric(key) ? parseInt(key, 10) : key;
+                            var value = item[key],
+                                column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)],
+                                j = $.inArray(key, that.header.fields);
+
+                            // Fix #142: search use formated data
+                            if (column && column.searchFormatter) {
+                                value = $.fn.bootstrapTable.utils.calculateObjectValue(column,
+                                    that.header.formatters[j], [value, item, i], value);
+                            }
+
+                            var index = $.inArray(key, that.header.fields);
+                            if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {
+                                if (that.options.strictSearch) {
+                                    if ((value + '').toLowerCase() === str) {
+                                        return true;
+                                    }
+                                } else {
+                                    if ((value + '').toLowerCase().indexOf(str) !== -1) {
+                                        return true;
+                                    }
+                                }
+                            }
+                        }
+                        return false;
+                    }) : this.data;
+                }
+
+                this.data = dataFiltered;
+            }
+        } else {
+            _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+        }
+    };
+
+}(jQuery);
diff --git a/js/table/extensions/multiple-search/bootstrap-table-multiple-search.min.js b/js/table/extensions/multiple-search/bootstrap-table-multiple-search.min.js
new file mode 100644
index 0000000..49cbf7c
--- /dev/null
+++ b/js/table/extensions/multiple-search/bootstrap-table-multiple-search.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{multipleSearch:!1});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initSearch;b.prototype.initSearch=function(){if(this.options.multipleSearch){var b=this.searchText.split(" "),d=this,e=(a.isEmptyObject(this.filterColumns)?null:this.filterColumns,[]);if(1===b.length)c.apply(this,Array.prototype.slice.apply(arguments));else{for(var f=0;f<b.length;f++){var g=b[f].trim();e=g?a.grep(0===e.length?this.options.data:e,function(b,c){for(var e in b){e=a.isNumeric(e)?parseInt(e,10):e;var f=b[e],h=d.columns[a.fn.bootstrapTable.utils.getFieldIndex(d.columns,e)],i=a.inArray(e,d.header.fields);h&&h.searchFormatter&&(f=a.fn.bootstrapTable.utils.calculateObjectValue(h,d.header.formatters[i],[f,b,c],f));var j=a.inArray(e,d.header.fields);if(-1!==j&&d.header.searchables[j]&&("string"==typeof f||"number"==typeof f))if(d.options.strictSearch){if((f+"").toLowerCase()===g)return!0}else if(-1!==(f+"").toLowerCase().indexOf(g))return!0}return!1}):this.data}this.data=e}}else c.apply(this,Array.prototype.slice.apply(arguments))}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.js b/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.js
new file mode 100644
index 0000000..68f6a52
--- /dev/null
+++ b/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.js
@@ -0,0 +1,378 @@
+/**
+ * @author Nadim Basalamah <dimbslmh@gmail.com>
+ * @version: v1.0.0
+ * https://github.com/dimbslmh/bootstrap-table/tree/master/src/extensions/multiple-sort/bootstrap-table-multiple-sort.js
+ */
+
+(function($) {
+    'use strict';
+
+    var isSingleSort = false;
+
+    var sort_order = {
+        asc: 'Ascending',
+        desc: 'Descending'
+    };
+
+    var showSortModal = function(that) {
+        var _selector = that.$sortModal.selector,
+            _id = _selector.substr(1);
+
+        if (!$(_id).hasClass("modal")) {
+            var sModal = '  <div class="modal fade" id="' + _id + '" tabindex="-1" role="dialog" aria-labelledby="' + _id + 'Label" aria-hidden="true">';
+            sModal += '         <div class="modal-dialog">';
+            sModal += '             <div class="modal-content">';
+            sModal += '                 <div class="modal-header">';
+            sModal += '                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
+            sModal += '                     <h4 class="modal-title" id="' + _id + 'Label">' + that.options.formatMultipleSort() + '</h4>';
+            sModal += '                 </div>';
+            sModal += '                 <div class="modal-body">';
+            sModal += '                     <div class="bootstrap-table">';
+            sModal += '                         <div class="fixed-table-toolbar">';
+            sModal += '                             <div class="bars">';
+            sModal += '                                 <div id="toolbar">';
+            sModal += '                                     <button id="add" type="button" class="btn btn-default"><i class="' + that.options.iconsPrefix + ' ' + that.options.icons.plus + '"></i> ' + that.options.formatAddLevel() + '</button>';
+            sModal += '                                     <button id="delete" type="button" class="btn btn-default" disabled><i class="' + that.options.iconsPrefix + ' ' + that.options.icons.minus + '"></i> ' + that.options.formatDeleteLevel() + '</button>';
+            sModal += '                                 </div>';
+            sModal += '                             </div>';
+            sModal += '                         </div>';
+            sModal += '                         <div class="fixed-table-container">';
+            sModal += '                             <table id="multi-sort" class="table">';
+            sModal += '                                 <thead>';
+            sModal += '                                     <tr>';
+            sModal += '                                         <th></th>';
+            sModal += '                                         <th><div class="th-inner">' + that.options.formatColumn() + '</div></th>';
+            sModal += '                                         <th><div class="th-inner">' + that.options.formatOrder() + '</div></th>';
+            sModal += '                                     </tr>';
+            sModal += '                                 </thead>';
+            sModal += '                                 <tbody></tbody>';
+            sModal += '                             </table>';
+            sModal += '                         </div>';
+            sModal += '                     </div>';
+            sModal += '                 </div>';
+            sModal += '                 <div class="modal-footer">';
+            sModal += '                     <button type="button" class="btn btn-default" data-dismiss="modal">' + that.options.formatCancel() + '</button>';
+            sModal += '                     <button type="button" class="btn btn-primary">' + that.options.formatSort() + '</button>';
+            sModal += '                 </div>';
+            sModal += '             </div>';
+            sModal += '         </div>';
+            sModal += '     </div>';
+
+            $("body").append($(sModal));
+
+            that.$sortModal = $(_selector);
+            var $rows = that.$sortModal.find("tbody > tr");
+
+            that.$sortModal.off('click', '#add').on('click', '#add', function() {
+                var total = that.$sortModal.find('.multi-sort-name:first option').length,
+                    current = that.$sortModal.find('tbody tr').length;
+
+                if (current < total) {
+                    current++;
+                    that.addLevel();
+                    that.setButtonStates();
+                }
+            });
+
+            that.$sortModal.off('click', '#delete').on('click', '#delete', function() {
+                var total = that.$sortModal.find('.multi-sort-name:first option').length,
+                    current = that.$sortModal.find('tbody tr').length;
+
+                if (current > 1 && current <= total) {
+                    current--;
+                    that.$sortModal.find('tbody tr:last').remove();
+                    that.setButtonStates();
+                }
+            });
+
+            that.$sortModal.off('click', '.btn-primary').on('click', '.btn-primary', function() {
+                var $rows = that.$sortModal.find("tbody > tr"),
+                    $alert = that.$sortModal.find('div.alert'),
+                    fields = [],
+                    results = [];
+
+
+                that.options.sortPriority = $.map($rows, function(row) {
+                    var $row = $(row),
+                        name = $row.find('.multi-sort-name').val(),
+                        order = $row.find('.multi-sort-order').val();
+
+                    fields.push(name);
+
+                    return {
+                        sortName: name,
+                        sortOrder: order
+                    };
+                });
+
+                var sorted_fields = fields.sort();
+
+                for (var i = 0; i < fields.length - 1; i++) {
+                    if (sorted_fields[i + 1] == sorted_fields[i]) {
+                        results.push(sorted_fields[i]);
+                    }
+                }
+
+                if (results.length > 0) {
+                    if ($alert.length === 0) {
+                        $alert = '<div class="alert alert-danger" role="alert"><strong>' + that.options.formatDuplicateAlertTitle() + '</strong> ' + that.options.formatDuplicateAlertDescription() + '</div>';
+                        $($alert).insertBefore(that.$sortModal.find('.bars'));
+                    }
+                } else {
+                    if ($alert.length === 1) {
+                        $($alert).remove();
+                    }
+
+                    that.options.sortName = "";
+                    that.onMultipleSort();
+                    that.$sortModal.modal('hide');
+                }
+            });
+
+            if (that.options.sortPriority === null || that.options.sortPriority.length === 0) {
+                if (that.options.sortName) {
+                    that.options.sortPriority = [{
+                        sortName: that.options.sortName,
+                        sortOrder: that.options.sortOrder
+                    }];
+                }
+            }
+
+            if (that.options.sortPriority !== null && that.options.sortPriority.length > 0) {
+                if ($rows.length < that.options.sortPriority.length && typeof that.options.sortPriority === 'object') {
+                    for (var i = 0; i < that.options.sortPriority.length; i++) {
+                        that.addLevel(i, that.options.sortPriority[i]);
+                    }
+                }
+            } else {
+                that.addLevel(0);
+            }
+
+            that.setButtonStates();
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        showMultiSort: false,
+        sortPriority: null,
+        onMultipleSort: function() {
+            return false;
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.defaults.icons, {
+        sort: 'glyphicon-sort',
+        plus: 'glyphicon-plus',
+        minus: 'glyphicon-minus'
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'multiple-sort.bs.table': 'onMultipleSort'
+    });
+
+    $.extend($.fn.bootstrapTable.locales, {
+        formatMultipleSort: function() {
+            return 'Multiple Sort';
+        },
+        formatAddLevel: function() {
+            return "Add Level";
+        },
+        formatDeleteLevel: function() {
+            return "Delete Level";
+        },
+        formatColumn: function() {
+            return "Column";
+        },
+        formatOrder: function() {
+            return "Order";
+        },
+        formatSortBy: function() {
+            return "Sort by";
+        },
+        formatThenBy: function() {
+            return "Then by";
+        },
+        formatSort: function() {
+            return "Sort";
+        },
+        formatCancel: function() {
+            return "Cancel";
+        },
+        formatDuplicateAlertTitle: function() {
+            return "Duplicate(s) detected!";
+        },
+        formatDuplicateAlertDescription: function() {
+            return "Please remove or change any duplicate column.";
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initToolbar = BootstrapTable.prototype.initToolbar;
+
+    BootstrapTable.prototype.initToolbar = function() {
+        this.showToolbar = true;
+        var that = this,
+            sortModalId = '#sortModal_' + this.$el.attr('id');
+        this.$sortModal = $(sortModalId);
+
+        _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.showMultiSort) {
+            var $btnGroup = this.$toolbar.find('>.btn-group').first(),
+                $multiSortBtn = this.$toolbar.find('div.multi-sort');
+
+            if (!$multiSortBtn.length) {
+                $multiSortBtn = '  <button class="multi-sort btn btn-default' + (this.options.iconSize === undefined ? '' : ' btn-' + this.options.iconSize) + '" type="button" data-toggle="modal" data-target="' + sortModalId + '" title="' + this.options.formatMultipleSort() + '">';
+                $multiSortBtn += '     <i class="' + this.options.iconsPrefix + ' ' + this.options.icons.sort + '"></i>';
+                $multiSortBtn += '</button>';
+
+                $btnGroup.append($multiSortBtn);
+
+                showSortModal(that);
+            }
+
+            this.$el.on('sort.bs.table', function() {
+                isSingleSort = true;
+            });
+
+            this.$el.on('multiple-sort.bs.table', function() {
+                isSingleSort = false;
+            });
+
+            this.$el.on('load-success.bs.table', function() {
+                if (!isSingleSort && that.options.sortPriority !== null && typeof that.options.sortPriority === 'object') {
+                    that.onMultipleSort();
+                }
+            });
+
+            this.$el.on('column-switch.bs.table', function(field, checked) {
+                for (var i = 0; i < that.options.sortPriority.length; i++) {
+                    if (that.options.sortPriority[i].sortName === checked) {
+                        that.options.sortPriority.splice(i, 1);
+                    }
+                }
+
+                that.assignSortableArrows();
+                that.$sortModal.remove();
+                showSortModal(that);
+            });
+
+            this.$el.on('reset-view.bs.table', function() {
+                if (!isSingleSort && that.options.sortPriority !== null && typeof that.options.sortPriority === 'object') {
+                    that.assignSortableArrows();
+                }
+            });
+        }
+    };
+
+    BootstrapTable.prototype.onMultipleSort = function() {
+        var that = this;
+
+        var cmp = function(x, y) {
+            return x > y ? 1 : x < y ? -1 : 0;
+        };
+
+        var arrayCmp = function(a, b) {
+            var arr1 = [],
+                arr2 = [];
+
+            for (var i = 0; i < that.options.sortPriority.length; i++) {
+                var order = that.options.sortPriority[i].sortOrder === 'desc' ? -1 : 1,
+                    aa = a[that.options.sortPriority[i].sortName],
+                    bb = b[that.options.sortPriority[i].sortName];
+
+                if (aa === undefined || aa === null) {
+                    aa = '';
+                }
+                if (bb === undefined || bb === null) {
+                    bb = '';
+                }
+                if ($.isNumeric(aa) && $.isNumeric(bb)) {
+                    aa = parseFloat(aa);
+                    bb = parseFloat(bb);
+                }
+                if (typeof aa !== 'string') {
+                    aa = aa.toString();
+                }
+
+                arr1.push(
+                    order * cmp(aa, bb));
+                arr2.push(
+                    order * cmp(bb, aa));
+            }
+
+            return cmp(arr1, arr2);
+        };
+
+        this.data.sort(function(a, b) {
+            return arrayCmp(a, b);
+        });
+
+        this.initBody();
+        this.assignSortableArrows();
+        this.trigger('multiple-sort');
+    };
+
+    BootstrapTable.prototype.addLevel = function(index, sortPriority) {
+        var text = index === 0 ? this.options.formatSortBy() : this.options.formatThenBy();
+
+        this.$sortModal.find('tbody')
+            .append($('<tr>')
+                .append($('<td>').text(text))
+                .append($('<td>').append($('<select class="form-control multi-sort-name">')))
+                .append($('<td>').append($('<select class="form-control multi-sort-order">')))
+        );
+
+        var $multiSortName = this.$sortModal.find('.multi-sort-name').last(),
+            $multiSortOrder = this.$sortModal.find('.multi-sort-order').last();
+
+        $.each(this.columns, function (i, column) {
+            if (column.sortable === false || column.visible === false) {
+                return true;
+            }
+            $multiSortName.append('<option value="' + column.field + '">' + column.title + '</option>');
+        });
+
+        $.each(sort_order, function(value, order) {
+            $multiSortOrder.append('<option value="' + value + '">' + order + '</option>');
+        });
+
+        if (sortPriority !== undefined) {
+            $multiSortName.find('option[value="' + sortPriority.sortName + '"]').attr("selected", true);
+            $multiSortOrder.find('option[value="' + sortPriority.sortOrder + '"]').attr("selected", true);
+        }
+    };
+
+    BootstrapTable.prototype.assignSortableArrows = function() {
+        var that = this,
+            headers = that.$header.find('th');
+
+        for (var i = 0; i < headers.length; i++) {
+            for (var c = 0; c < that.options.sortPriority.length; c++) {
+                if ($(headers[i]).data('field') === that.options.sortPriority[c].sortName) {
+                    $(headers[i]).find('.sortable').removeClass('desc asc').addClass(that.options.sortPriority[c].sortOrder);
+                }
+            }
+        }
+    };
+
+    BootstrapTable.prototype.setButtonStates = function() {
+        var total = this.$sortModal.find('.multi-sort-name:first option').length,
+            current = this.$sortModal.find('tbody tr').length;
+
+        if (current == total) {
+            this.$sortModal.find('#add').attr('disabled', 'disabled');
+        }
+        if (current > 1) {
+            this.$sortModal.find('#delete').removeAttr('disabled');
+        }
+        if (current < total) {
+            this.$sortModal.find('#add').removeAttr('disabled');
+        }
+        if (current == 1) {
+            this.$sortModal.find('#delete').attr('disabled', 'disabled');
+        }
+    };
+})(jQuery);
diff --git a/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js b/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
new file mode 100644
index 0000000..a8cb610
--- /dev/null
+++ b/js/table/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=!1,c={asc:"Ascending",desc:"Descending"},d=function(b){var c=b.$sortModal.selector,d=c.substr(1);if(!a(d).hasClass("modal")){var e='  <div class="modal fade" id="'+d+'" tabindex="-1" role="dialog" aria-labelledby="'+d+'Label" aria-hidden="true">';e+='         <div class="modal-dialog">',e+='             <div class="modal-content">',e+='                 <div class="modal-header">',e+='                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>',e+='                     <h4 class="modal-title" id="'+d+'Label">'+b.options.formatMultipleSort()+"</h4>",e+="                 </div>",e+='                 <div class="modal-body">',e+='                     <div class="bootstrap-table">',e+='                         <div class="fixed-table-toolbar">',e+='                             <div class="bars">',e+='                                 <div id="toolbar">',e+='                                     <button id="add" type="button" class="btn btn-default"><i class="'+b.options.iconsPrefix+" "+b.options.icons.plus+'"></i> '+b.options.formatAddLevel()+"</button>",e+='                                     <button id="delete" type="button" class="btn btn-default" disabled><i class="'+b.options.iconsPrefix+" "+b.options.icons.minus+'"></i> '+b.options.formatDeleteLevel()+"</button>",e+="                                 </div>",e+="                             </div>",e+="                         </div>",e+='                         <div class="fixed-table-container">',e+='                             <table id="multi-sort" class="table">',e+="                                 <thead>",e+="                                     <tr>",e+="                                         <th></th>",e+='                                         <th><div class="th-inner">'+b.options.formatColumn()+"</div></th>",e+='                                         <th><div class="th-inner">'+b.options.formatOrder()+"</div></th>",e+="                                     </tr>",e+="                                 </thead>",e+="                                 <tbody></tbody>",e+="                             </table>",e+="                         </div>",e+="                     </div>",e+="                 </div>",e+='                 <div class="modal-footer">',e+='                     <button type="button" class="btn btn-default" data-dismiss="modal">'+b.options.formatCancel()+"</button>",e+='                     <button type="button" class="btn btn-primary">'+b.options.formatSort()+"</button>",e+="                 </div>",e+="             </div>",e+="         </div>",e+="     </div>",a("body").append(a(e)),b.$sortModal=a(c);var f=b.$sortModal.find("tbody > tr");if(b.$sortModal.off("click","#add").on("click","#add",function(){var a=b.$sortModal.find(".multi-sort-name:first option").length,c=b.$sortModal.find("tbody tr").length;a>c&&(c++,b.addLevel(),b.setButtonStates())}),b.$sortModal.off("click","#delete").on("click","#delete",function(){var a=b.$sortModal.find(".multi-sort-name:first option").length,c=b.$sortModal.find("tbody tr").length;c>1&&a>=c&&(c--,b.$sortModal.find("tbody tr:last").remove(),b.setButtonStates())}),b.$sortModal.off("click",".btn-primary").on("click",".btn-primary",function(){var c=b.$sortModal.find("tbody > tr"),d=b.$sortModal.find("div.alert"),e=[],f=[];b.options.sortPriority=a.map(c,function(b){var c=a(b),d=c.find(".multi-sort-name").val(),f=c.find(".multi-sort-order").val();return e.push(d),{sortName:d,sortOrder:f}});for(var g=e.sort(),h=0;h<e.length-1;h++)g[h+1]==g[h]&&f.push(g[h]);f.length>0?0===d.length&&(d='<div class="alert alert-danger" role="alert"><strong>'+b.options.formatDuplicateAlertTitle()+"</strong> "+b.options.formatDuplicateAlertDescription()+"</div>",a(d).insertBefore(b.$sortModal.find(".bars"))):(1===d.length&&a(d).remove(),b.options.sortName="",b.onMultipleSort(),b.$sortModal.modal("hide"))}),(null===b.options.sortPriority||0===b.options.sortPriority.length)&&b.options.sortName&&(b.options.sortPriority=[{sortName:b.options.sortName,sortOrder:b.options.sortOrder}]),null!==b.options.sortPriority&&b.options.sortPriority.length>0){if(f.length<b.options.sortPriority.length&&"object"==typeof b.options.sortPriority)for(var g=0;g<b.options.sortPriority.length;g++)b.addLevel(g,b.options.sortPriority[g])}else b.addLevel(0);b.setButtonStates()}};a.extend(a.fn.bootstrapTable.defaults,{showMultiSort:!1,sortPriority:null,onMultipleSort:function(){return!1}}),a.extend(a.fn.bootstrapTable.defaults.icons,{sort:"glyphicon-sort",plus:"glyphicon-plus",minus:"glyphicon-minus"}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"multiple-sort.bs.table":"onMultipleSort"}),a.extend(a.fn.bootstrapTable.locales,{formatMultipleSort:function(){return"Multiple Sort"},formatAddLevel:function(){return"Add Level"},formatDeleteLevel:function(){return"Delete Level"},formatColumn:function(){return"Column"},formatOrder:function(){return"Order"},formatSortBy:function(){return"Sort by"},formatThenBy:function(){return"Then by"},formatSort:function(){return"Sort"},formatCancel:function(){return"Cancel"},formatDuplicateAlertTitle:function(){return"Duplicate(s) detected!"},formatDuplicateAlertDescription:function(){return"Please remove or change any duplicate column."}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var e=a.fn.bootstrapTable.Constructor,f=e.prototype.initToolbar;e.prototype.initToolbar=function(){this.showToolbar=!0;var c=this,e="#sortModal_"+this.$el.attr("id");if(this.$sortModal=a(e),f.apply(this,Array.prototype.slice.apply(arguments)),this.options.showMultiSort){var g=this.$toolbar.find(">.btn-group").first(),h=this.$toolbar.find("div.multi-sort");h.length||(h='  <button class="multi-sort btn btn-default'+(void 0===this.options.iconSize?"":" btn-"+this.options.iconSize)+'" type="button" data-toggle="modal" data-target="'+e+'" title="'+this.options.formatMultipleSort()+'">',h+='     <i class="'+this.options.iconsPrefix+" "+this.options.icons.sort+'"></i>',h+="</button>",g.append(h),d(c)),this.$el.on("sort.bs.table",function(){b=!0}),this.$el.on("multiple-sort.bs.table",function(){b=!1}),this.$el.on("load-success.bs.table",function(){b||null===c.options.sortPriority||"object"!=typeof c.options.sortPriority||c.onMultipleSort()}),this.$el.on("column-switch.bs.table",function(a,b){for(var e=0;e<c.options.sortPriority.length;e++)c.options.sortPriority[e].sortName===b&&c.options.sortPriority.splice(e,1);c.assignSortableArrows(),c.$sortModal.remove(),d(c)}),this.$el.on("reset-view.bs.table",function(){b||null===c.options.sortPriority||"object"!=typeof c.options.sortPriority||c.assignSortableArrows()})}},e.prototype.onMultipleSort=function(){var b=this,c=function(a,b){return a>b?1:b>a?-1:0},d=function(d,e){for(var f=[],g=[],h=0;h<b.options.sortPriority.length;h++){var i="desc"===b.options.sortPriority[h].sortOrder?-1:1,j=d[b.options.sortPriority[h].sortName],k=e[b.options.sortPriority[h].sortName];(void 0===j||null===j)&&(j=""),(void 0===k||null===k)&&(k=""),a.isNumeric(j)&&a.isNumeric(k)&&(j=parseFloat(j),k=parseFloat(k)),"string"!=typeof j&&(j=j.toString()),f.push(i*c(j,k)),g.push(i*c(k,j))}return c(f,g)};this.data.sort(function(a,b){return d(a,b)}),this.initBody(),this.assignSortableArrows(),this.trigger("multiple-sort")},e.prototype.addLevel=function(b,d){var e=0===b?this.options.formatSortBy():this.options.formatThenBy();this.$sortModal.find("tbody").append(a("<tr>").append(a("<td>").text(e)).append(a("<td>").append(a('<select class="form-control multi-sort-name">'))).append(a("<td>").append(a('<select class="form-control multi-sort-order">'))));var f=this.$sortModal.find(".multi-sort-name").last(),g=this.$sortModal.find(".multi-sort-order").last();a.each(this.columns,function(a,b){return b.sortable===!1||b.visible===!1?!0:void f.append('<option value="'+b.field+'">'+b.title+"</option>")}),a.each(c,function(a,b){g.append('<option value="'+a+'">'+b+"</option>")}),void 0!==d&&(f.find('option[value="'+d.sortName+'"]').attr("selected",!0),g.find('option[value="'+d.sortOrder+'"]').attr("selected",!0))},e.prototype.assignSortableArrows=function(){for(var b=this,c=b.$header.find("th"),d=0;d<c.length;d++)for(var e=0;e<b.options.sortPriority.length;e++)a(c[d]).data("field")===b.options.sortPriority[e].sortName&&a(c[d]).find(".sortable").removeClass("desc asc").addClass(b.options.sortPriority[e].sortOrder)},e.prototype.setButtonStates=function(){var a=this.$sortModal.find(".multi-sort-name:first option").length,b=this.$sortModal.find("tbody tr").length;b==a&&this.$sortModal.find("#add").attr("disabled","disabled"),b>1&&this.$sortModal.find("#delete").removeAttr("disabled"),a>b&&this.$sortModal.find("#add").removeAttr("disabled"),1==b&&this.$sortModal.find("#delete").attr("disabled","disabled")}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.js b/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.js
new file mode 100644
index 0000000..8e84eb6
--- /dev/null
+++ b/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.js
@@ -0,0 +1,47 @@
+/**
+ * @author: Brian Huisman
+ * @webSite: http://www.greywyvern.com
+ * @version: v1.0.0
+ * JS function to allow natural sorting on bootstrap-table columns
+ * just add data-sorter="alphanum" to any th
+ *
+ * @update Dennis Hernández <http://djhvscf.github.io/Blog>
+ */
+
+function alphanum(a, b) {
+  function chunkify(t) {
+    var tz = [],
+        x = 0,
+        y = -1,
+        n = 0,
+        i,
+        j;
+
+    while (i = (j = t.charAt(x++)).charCodeAt(0)) {
+      var m = (i === 46 || (i >= 48 && i <= 57));
+      if (m !== n) {
+        tz[++y] = "";
+        n = m;
+      }
+      tz[y] += j;
+    }
+    return tz;
+  }
+
+  var aa = chunkify(a);
+  var bb = chunkify(b);
+
+  for (x = 0; aa[x] && bb[x]; x++) {
+    if (aa[x] !== bb[x]) {
+      var c = Number(aa[x]),
+          d = Number(bb[x]);
+
+      if (c == aa[x] && d == bb[x]) {
+        return c - d;
+      } else {
+          return (aa[x] > bb[x]) ? 1 : -1;
+      }
+    }
+  }
+  return aa.length - bb.length;
+}
\ No newline at end of file
diff --git a/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js b/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js
new file mode 100644
index 0000000..2ccb66b
--- /dev/null
+++ b/js/table/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+function alphanum(a,b){function c(a){for(var b,c,d=[],e=0,f=-1,g=0;b=(c=a.charAt(e++)).charCodeAt(0);){var h=46===b||b>=48&&57>=b;h!==g&&(d[++f]="",g=h),d[f]+=c}return d}var d=c(a),e=c(b);for(x=0;d[x]&&e[x];x++)if(d[x]!==e[x]){var f=Number(d[x]),g=Number(e[x]);return f==d[x]&&g==e[x]?f-g:d[x]>e[x]?1:-1}return d.length-e.length}
\ No newline at end of file
diff --git a/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.js b/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.js
new file mode 100644
index 0000000..0c8b8b3
--- /dev/null
+++ b/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.js
@@ -0,0 +1,121 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.1.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        reorderableColumns: false,
+        maxMovingRows: 10,
+        onReorderColumn: function (headerFields) {
+            return false;
+        },
+        dragaccept: null
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'reorder-column.bs.table': 'onReorderColumn'
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initHeader = BootstrapTable.prototype.initHeader,
+        _toggleColumn = BootstrapTable.prototype.toggleColumn,
+        _toggleView = BootstrapTable.prototype.toggleView,
+        _resetView = BootstrapTable.prototype.resetView;
+
+    BootstrapTable.prototype.initHeader = function () {
+        _initHeader.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.reorderableColumns) {
+            return;
+        }
+
+        this.makeRowsReorderable();
+    };
+
+    BootstrapTable.prototype.toggleColumn = function () {
+        _toggleColumn.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.reorderableColumns) {
+            return;
+        }
+
+        this.makeRowsReorderable();
+    };
+
+    BootstrapTable.prototype.toggleView = function () {
+        _toggleView.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.reorderableColumns) {
+            return;
+        }
+
+        if (this.options.cardView) {
+            return;
+        }
+
+        this.makeRowsReorderable();
+    };
+
+    BootstrapTable.prototype.resetView = function () {
+        _resetView.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.reorderableColumns) {
+            return;
+        }
+
+        this.makeRowsReorderable();
+    };
+
+    BootstrapTable.prototype.makeRowsReorderable = function () {
+        var that = this;
+        try {
+            $(this.$el).dragtable('destroy');
+        } catch (e) {}
+        $(this.$el).dragtable({
+            maxMovingRows: that.options.maxMovingRows,
+            dragaccept: that.options.dragaccept,
+            clickDelay:200,
+            beforeStop: function() {
+                var ths = [],
+                    formatters = [],
+                    columns = [],
+                    columnsHidden = [],
+                    columnIndex = -1;
+                that.$header.find('th').each(function (i) {
+                    ths.push($(this).data('field'));
+                    formatters.push($(this).data('formatter'));
+                });
+
+                //Exist columns not shown
+                if (ths.length < that.columns.length) {
+                    columnsHidden = $.grep(that.columns, function (column) {
+                       return !column.visible;
+                    });
+                    for (var i = 0; i < columnsHidden.length; i++) {
+                        ths.push(columnsHidden[i].field);
+                        formatters.push(columnsHidden[i].formatter);
+                    }
+                }
+
+                for (var i = 0; i < ths.length; i++ ) {
+                    columnIndex = $.fn.bootstrapTable.utils.getFieldIndex(that.columns, ths[i]);
+                    if (columnIndex !== -1) {
+                        columns.push(that.columns[columnIndex]);
+                        that.columns.splice(columnIndex, 1);
+                    }
+                }
+
+                that.columns = that.columns.concat(columns);
+                that.header.fields = ths;
+                that.header.formatters = formatters;
+                that.resetView();
+                that.trigger('reorder-column', ths);
+            }
+        });
+    };
+}(jQuery);
diff --git a/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js b/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js
new file mode 100644
index 0000000..50cad77
--- /dev/null
+++ b/js/table/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{reorderableColumns:!1,maxMovingRows:10,onReorderColumn:function(){return!1},dragaccept:null}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"reorder-column.bs.table":"onReorderColumn"});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initHeader,d=b.prototype.toggleColumn,e=b.prototype.toggleView,f=b.prototype.resetView;b.prototype.initHeader=function(){c.apply(this,Array.prototype.slice.apply(arguments)),this.options.reorderableColumns&&this.makeRowsReorderable()},b.prototype.toggleColumn=function(){d.apply(this,Array.prototype.slice.apply(arguments)),this.options.reorderableColumns&&this.makeRowsReorderable()},b.prototype.toggleView=function(){e.apply(this,Array.prototype.slice.apply(arguments)),this.options.reorderableColumns&&(this.options.cardView||this.makeRowsReorderable())},b.prototype.resetView=function(){f.apply(this,Array.prototype.slice.apply(arguments)),this.options.reorderableColumns&&this.makeRowsReorderable()},b.prototype.makeRowsReorderable=function(){var b=this;try{a(this.$el).dragtable("destroy")}catch(c){}a(this.$el).dragtable({maxMovingRows:b.options.maxMovingRows,dragaccept:b.options.dragaccept,clickDelay:200,beforeStop:function(){var c=[],d=[],e=[],f=[],g=-1;if(b.$header.find("th").each(function(){c.push(a(this).data("field")),d.push(a(this).data("formatter"))}),c.length<b.columns.length){f=a.grep(b.columns,function(a){return!a.visible});for(var h=0;h<f.length;h++)c.push(f[h].field),d.push(f[h].formatter)}for(var h=0;h<c.length;h++)g=a.fn.bootstrapTable.utils.getFieldIndex(b.columns,c[h]),-1!==g&&(e.push(b.columns[g]),b.columns.splice(g,1));b.columns=b.columns.concat(e),b.header.fields=c,b.header.formatters=d,b.resetView(),b.trigger("reorder-column",c)}})}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.css b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.css
new file mode 100644
index 0000000..412ff14
--- /dev/null
+++ b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.css
@@ -0,0 +1,14 @@
+.reorder_rows_onDragClass td {
+    background-color: #eee;
+    -webkit-box-shadow: 11px 5px 12px 2px #333, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+    -webkit-box-shadow: 6px 3px 5px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+    -moz-box-shadow: 6px 4px 5px 1px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+    -box-shadow: 6px 4px 5px 1px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+}
+
+.reorder_rows_onDragClass td:last-child {
+    -webkit-box-shadow: 8px 7px 12px 0 #333, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+    -webkit-box-shadow: 1px 8px 6px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset;
+    -moz-box-shadow: 0 9px 4px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset, -1px 0 0 #ccc inset;
+    -box-shadow: 0 9px 4px -4px #555, 0 1px 0 #ccc inset, 0 -1px 0 #ccc inset, -1px 0 0 #ccc inset;
+}
\ No newline at end of file
diff --git a/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.js b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.js
new file mode 100644
index 0000000..c733717
--- /dev/null
+++ b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.js
@@ -0,0 +1,115 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ */
+
+!function ($) {
+
+    'use strict';
+
+    var isSearch = false;
+
+    var rowAttr = function (row, index) {
+        return {
+            id: 'customId_' + index
+        };
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        reorderableRows: false,
+        onDragStyle: null,
+        onDropStyle: null,
+        onDragClass: "reorder_rows_onDragClass",
+        dragHandle: null,
+        useRowAttrFunc: false,
+        onReorderRowsDrag: function (table, row) {
+            return false;
+        },
+        onReorderRowsDrop: function (table, row) {
+            return false;
+        },
+        onReorderRow: function (newData) {
+             return false;
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'reorder-row.bs.table': 'onReorderRow'
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _init = BootstrapTable.prototype.init,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.init = function () {
+
+        if (!this.options.reorderableRows) {
+            return;
+        }
+
+        var that = this;
+        if (this.options.useRowAttrFunc) {
+            this.options.rowAttributes = rowAttr;
+        }
+
+        var onPostBody = this.options.onPostBody;
+        this.options.onPostBody = function () {
+            setTimeout(function () {
+                that.makeRowsReorderable();
+                onPostBody.apply();
+            }, 1);
+        };
+
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.reorderableRows) {
+            return;
+        }
+
+        //Known issue after search if you reorder the rows the data is not display properly
+        //isSearch = true;
+    };
+
+    BootstrapTable.prototype.makeRowsReorderable = function () {
+        if (this.options.cardView) {
+            return;
+        }
+
+        var that = this;
+        this.$el.tableDnD({
+            onDragStyle: that.options.onDragStyle,
+            onDropStyle: that.options.onDropStyle,
+            onDragClass: that.options.onDragClass,
+            onDrop: that.onDrop,
+            onDragStart: that.options.onReorderRowsDrag,
+            dragHandle: that.options.dragHandle
+        });
+    };
+
+    BootstrapTable.prototype.onDrop = function (table, droppedRow) {
+        var tableBs = $(table),
+            tableBsData = tableBs.data('bootstrap.table'),
+            tableBsOptions = tableBs.data('bootstrap.table').options,
+            row = null,
+            newData = [];
+
+        for (var i = 0; i < table.tBodies[0].rows.length; i++) {
+            row = $(table.tBodies[0].rows[i]);
+            newData.push(tableBsOptions.data[row.data('index')]);
+            row.data('index', i).attr('data-index', i);
+        }
+
+        tableBsOptions.data = newData;
+
+        //Call the user defined function
+        tableBsOptions.onReorderRowsDrop.apply(table, [table, droppedRow]);
+
+        //Call the event reorder-row
+        tableBsData.trigger('reorder-row', newData);
+    };
+}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js
new file mode 100644
index 0000000..a47c9bb
--- /dev/null
+++ b/js/table/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=function(a,b){return{id:"customId_"+b}};a.extend(a.fn.bootstrapTable.defaults,{reorderableRows:!1,onDragStyle:null,onDropStyle:null,onDragClass:"reorder_rows_onDragClass",dragHandle:null,useRowAttrFunc:!1,onReorderRowsDrag:function(){return!1},onReorderRowsDrop:function(){return!1},onReorderRow:function(){return!1}}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"reorder-row.bs.table":"onReorderRow"});var c=a.fn.bootstrapTable.Constructor,d=c.prototype.init,e=c.prototype.initSearch;c.prototype.init=function(){if(this.options.reorderableRows){var a=this;this.options.useRowAttrFunc&&(this.options.rowAttributes=b);var c=this.options.onPostBody;this.options.onPostBody=function(){setTimeout(function(){a.makeRowsReorderable(),c.apply()},1)},d.apply(this,Array.prototype.slice.apply(arguments))}},c.prototype.initSearch=function(){e.apply(this,Array.prototype.slice.apply(arguments)),!this.options.reorderableRows},c.prototype.makeRowsReorderable=function(){if(!this.options.cardView){var a=this;this.$el.tableDnD({onDragStyle:a.options.onDragStyle,onDropStyle:a.options.onDropStyle,onDragClass:a.options.onDragClass,onDrop:a.onDrop,onDragStart:a.options.onReorderRowsDrag,dragHandle:a.options.dragHandle})}},c.prototype.onDrop=function(b,c){for(var d=a(b),e=d.data("bootstrap.table"),f=d.data("bootstrap.table").options,g=null,h=[],i=0;i<b.tBodies[0].rows.length;i++)g=a(b.tBodies[0].rows[i]),h.push(f.data[g.data("index")]),g.data("index",i).attr("data-index",i);f.data=h,f.onReorderRowsDrop.apply(b,[b,c]),e.trigger("reorder-row",h)}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/resizable/bootstrap-table-resizable.js b/js/table/extensions/resizable/bootstrap-table-resizable.js
new file mode 100644
index 0000000..8be7b09
--- /dev/null
+++ b/js/table/extensions/resizable/bootstrap-table-resizable.js
@@ -0,0 +1,74 @@
+/**
+ * @author: Dennis Hernández
+ * @webSite: http://djhvscf.github.io/Blog
+ * @version: v1.0.0
+ */
+
+(function ($) {
+    'use strict';
+
+    var initResizable = function (that) {
+        //Deletes the plugin to re-create it
+        that.$el.colResizable({disable: true});
+
+        //Creates the plugin
+        that.$el.colResizable({
+            liveDrag: that.options.liveDrag,
+            fixed: that.options.fixed,
+            headerOnly: that.options.headerOnly,
+            minWidth: that.options.minWidth,
+            hoverCursor: that.options.hoverCursor,
+            dragCursor: that.options.dragCursor,
+            onResize: that.onResize,
+            onDrag: that.options.onResizableDrag
+        });
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        resizable: false,
+        liveDrag: false,
+        fixed: true,
+        headerOnly: false,
+        minWidth: 15,
+        hoverCursor: 'e-resize',
+        dragCursor: 'e-resize',
+        onResizableResize: function (e) {
+            return false;
+        },
+        onResizableDrag: function (e) {
+            return false;
+        }
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _toggleView = BootstrapTable.prototype.toggleView,
+        _resetView = BootstrapTable.prototype.resetView;
+
+    BootstrapTable.prototype.toggleView = function () {
+        _toggleView.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.resizable && this.options.cardView) {
+            //Deletes the plugin
+            $(this.$el).colResizable({disable: true});
+        }
+    };
+
+    BootstrapTable.prototype.resetView = function () {
+        var that = this;
+
+        _resetView.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.resizable) {
+            // because in fitHeader function, we use setTimeout(func, 100);
+            setTimeout(function () {
+                initResizable(that);
+            }, 100);
+        }
+    };
+
+    BootstrapTable.prototype.onResize = function (e) {
+        var that = $(e.currentTarget);
+        that.bootstrapTable('resetView');
+        that.data('bootstrap.table').options.onResizableResize.apply(e);
+    }
+})(jQuery);
diff --git a/js/table/extensions/resizable/bootstrap-table-resizable.min.js b/js/table/extensions/resizable/bootstrap-table-resizable.min.js
new file mode 100644
index 0000000..3b4a9ac
--- /dev/null
+++ b/js/table/extensions/resizable/bootstrap-table-resizable.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=function(a){a.$el.colResizable({disable:!0}),a.$el.colResizable({liveDrag:a.options.liveDrag,fixed:a.options.fixed,headerOnly:a.options.headerOnly,minWidth:a.options.minWidth,hoverCursor:a.options.hoverCursor,dragCursor:a.options.dragCursor,onResize:a.onResize,onDrag:a.options.onResizableDrag})};a.extend(a.fn.bootstrapTable.defaults,{resizable:!1,liveDrag:!1,fixed:!0,headerOnly:!1,minWidth:15,hoverCursor:"e-resize",dragCursor:"e-resize",onResizableResize:function(){return!1},onResizableDrag:function(){return!1}});var c=a.fn.bootstrapTable.Constructor,d=c.prototype.toggleView,e=c.prototype.resetView;c.prototype.toggleView=function(){d.apply(this,Array.prototype.slice.apply(arguments)),this.options.resizable&&this.options.cardView&&a(this.$el).colResizable({disable:!0})},c.prototype.resetView=function(){var a=this;e.apply(this,Array.prototype.slice.apply(arguments)),this.options.resizable&&setTimeout(function(){b(a)},100)},c.prototype.onResize=function(b){var c=a(b.currentTarget);c.bootstrapTable("resetView"),c.data("bootstrap.table").options.onResizableResize.apply(b)}}(jQuery);
\ No newline at end of file
diff --git a/js/table/extensions/sorting/bootstrap-table_natural-sorting.min.js b/js/table/extensions/sorting/bootstrap-table_natural-sorting.min.js
new file mode 100644
index 0000000..1b61616
--- /dev/null
+++ b/js/table/extensions/sorting/bootstrap-table_natural-sorting.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.6.0 - 2015-03-03
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+function alphanum(a,b){function c(a){for(var b,c,d=[],e=0,f=-1,g=0;b=(c=a.charAt(e++)).charCodeAt(0);){var h=46==b||b>=48&&57>=b;h!==g&&(d[++f]="",g=h),d[f]+=c}return d}var d=c(a),e=c(b);for(x=0;d[x]&&e[x];x++)if(d[x]!==e[x]){var f=Number(d[x]),g=Number(e[x]);return f==d[x]&&g==e[x]?f-g:d[x]>e[x]?1:-1}return d.length-e.length}
\ No newline at end of file
diff --git a/js/table/extensions/toolbar/bootstrap-table-toolbar.js b/js/table/extensions/toolbar/bootstrap-table-toolbar.js
new file mode 100644
index 0000000..fd4e585
--- /dev/null
+++ b/js/table/extensions/toolbar/bootstrap-table-toolbar.js
@@ -0,0 +1,211 @@
+/**
+ * @author: aperez <aperez@datadec.es>
+ * @version: v2.0.0
+ *
+ * @update Dennis Hernández <http://djhvscf.github.io/Blog>
+ */
+
+!function($) {
+    'use strict';
+
+    var firstLoad = false;
+
+    var sprintf = $.fn.bootstrapTable.utils.sprintf;
+
+    var showAvdSearch = function(pColumns, searchTitle, searchText, that) {
+        if (!$("#avdSearchModal" + "_" + that.options.idTable).hasClass("modal")) {
+            var vModal = sprintf("<div id=\"avdSearchModal%s\"  class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"mySmallModalLabel\" aria-hidden=\"true\">", "_" + that.options.idTable);
+            vModal += "<div class=\"modal-dialog modal-xs\">";
+            vModal += " <div class=\"modal-content\">";
+            vModal += "  <div class=\"modal-header\">";
+            vModal += "   <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\" >&times;</button>";
+            vModal += sprintf("   <h4 class=\"modal-title\">%s</h4>", searchTitle);
+            vModal += "  </div>";
+            vModal += "  <div class=\"modal-body modal-body-custom\">";
+            vModal += sprintf("   <div class=\"container-fluid\" id=\"avdSearchModalContent%s\" style=\"padding-right: 0px;padding-left: 0px;\" >", "_" + that.options.idTable);
+            vModal += "   </div>";
+            vModal += "  </div>";
+            vModal += "  </div>";
+            vModal += " </div>";
+            vModal += "</div>";
+
+            $("body").append($(vModal));
+
+            var vFormAvd = createFormAvd(pColumns, searchText, that),
+                timeoutId = 0;;
+
+            $('#avdSearchModalContent' + "_" + that.options.idTable).append(vFormAvd.join(''));
+
+            $('#' + that.options.idForm).off('keyup blur', 'input').on('keyup blur', 'input', function (event) {
+                clearTimeout(timeoutId);
+                timeoutId = setTimeout(function () {
+                    that.onColumnAdvancedSearch(event);
+                }, that.options.searchTimeOut);
+            });
+
+            $("#btnCloseAvd" + "_" + that.options.idTable).click(function() {
+                $("#avdSearchModal" + "_" + that.options.idTable).modal('hide');
+            });
+
+            $("#avdSearchModal" + "_" + that.options.idTable).modal();
+        } else {
+            $("#avdSearchModal" + "_" + that.options.idTable).modal();
+        }
+    };
+
+    var createFormAvd = function(pColumns, searchText, that) {
+        var htmlForm = [];
+        htmlForm.push(sprintf('<form class="form-horizontal" id="%s" action="%s" >', that.options.idForm, that.options.actionForm));
+        for (var i in pColumns) {
+            var vObjCol = pColumns[i];
+            if (!vObjCol.checkbox && vObjCol.visible && vObjCol.searchable) {
+                htmlForm.push('<div class="form-group">');
+                htmlForm.push(sprintf('<label class="col-sm-4 control-label">%s</label>', vObjCol.title));
+                htmlForm.push('<div class="col-sm-6">');
+                htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field));
+                htmlForm.push('</div>');
+                htmlForm.push('</div>');
+            }
+        }
+
+        htmlForm.push('<div class="form-group">');
+        htmlForm.push('<div class="col-sm-offset-9 col-sm-3">');
+        htmlForm.push(sprintf('<button type="button" id="btnCloseAvd%s" class="btn btn-default" >%s</button>', "_" + that.options.idTable, searchText));
+        htmlForm.push('</div>');
+        htmlForm.push('</div>');
+        htmlForm.push('</form>');
+
+        return htmlForm;
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        advancedSearch: false,
+        idForm: 'advancedSearch',
+        actionForm: '',
+        idTable: undefined,
+        onColumnAdvancedSearch: function (field, text) {
+            return false;
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.defaults.icons, {
+        advancedSearchIcon: 'glyphicon-chevron-down'
+    });
+
+    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
+        'column-advanced-search.bs.table': 'onColumnAdvancedSearch'
+    });
+
+    $.extend($.fn.bootstrapTable.locales, {
+        formatAdvancedSearch: function() {
+            return 'Advanced search';
+        },
+        formatAdvancedCloseButton: function() {
+            return "Close";
+        }
+    });
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor,
+        _initToolbar = BootstrapTable.prototype.initToolbar,        
+        _load = BootstrapTable.prototype.load,
+        _initSearch = BootstrapTable.prototype.initSearch;
+
+    BootstrapTable.prototype.initToolbar = function() {
+        _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.search) {
+            return;
+        }
+
+        if (!this.options.advancedSearch) {
+            return;
+        }
+
+        if (!this.options.idTable) {
+            return;
+        }
+
+        var that = this,
+            html = [];
+
+        html.push(sprintf('<div class="columns columns-%s btn-group pull-%s" role="group">', this.options.buttonsAlign, this.options.buttonsAlign));
+        html.push(sprintf('<button class="btn btn-default%s' + '" type="button" name="advancedSearch" title="%s">', that.options.iconSize === undefined ? '' : ' btn-' + that.options.iconSize, that.options.formatAdvancedSearch()));
+        html.push(sprintf('<i class="%s %s"></i>', that.options.iconsPrefix, that.options.icons.advancedSearchIcon))
+        html.push('</button></div>');
+
+        that.$toolbar.prepend(html.join(''));
+
+        that.$toolbar.find('button[name="advancedSearch"]')
+            .off('click').on('click', function() {
+                showAvdSearch(that.columns, that.options.formatAdvancedSearch(), that.options.formatAdvancedCloseButton(), that);
+            });
+    };
+
+    BootstrapTable.prototype.load = function(data) {
+        _load.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.advancedSearch) {
+            return;
+        }
+
+        if (typeof this.options.idTable === 'undefined') {
+            return;
+        } else {
+            if (!firstLoad) {
+                var height = parseInt($(".bootstrap-table").height());
+                height += 10;
+                $("#" + this.options.idTable).bootstrapTable("resetView", {height: height});
+                firstLoad = true;
+            }
+        }
+    };
+
+    BootstrapTable.prototype.initSearch = function () {
+        _initSearch.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (!this.options.advancedSearch) {
+            return;
+        }
+
+        var that = this;
+        var fp = $.isEmptyObject(this.filterColumnsPartial) ? null : this.filterColumnsPartial;
+
+        this.data = fp ? $.grep(this.data, function (item, i) {
+            for (var key in fp) {
+                var fval = fp[key].toLowerCase();
+                var value = item[key];
+                value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header,
+                    that.header.formatters[$.inArray(key, that.header.fields)],
+                    [value, item, i], value);
+
+                if (!($.inArray(key, that.header.fields) !== -1 &&
+                    (typeof value === 'string' || typeof value === 'number') &&
+                    (value + '').toLowerCase().indexOf(fval) !== -1)) {
+                    return false;
+                }
+            }
+            return true;
+        }) : this.data;
+    };
+
+    BootstrapTable.prototype.onColumnAdvancedSearch = function (event) {
+        var text = $.trim($(event.currentTarget).val());
+        var $field = $(event.currentTarget)[0].id;
+
+        if ($.isEmptyObject(this.filterColumnsPartial)) {
+            this.filterColumnsPartial = {};
+        }
+        if (text) {
+            this.filterColumnsPartial[$field] = text;
+        } else {
+            delete this.filterColumnsPartial[$field];
+        }
+
+        this.options.pageNumber = 1;
+        this.onSearch(event);
+        this.updatePagination();
+        this.trigger('column-advanced-search', $field, text);
+    };
+}(jQuery);
diff --git a/js/table/extensions/toolbar/bootstrap-table-toolbar.min.js b/js/table/extensions/toolbar/bootstrap-table-toolbar.min.js
new file mode 100644
index 0000000..f5a6490
--- /dev/null
+++ b/js/table/extensions/toolbar/bootstrap-table-toolbar.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=!1,c=a.fn.bootstrapTable.utils.sprintf,d=function(b,d,f,g){if(a("#avdSearchModal_"+g.options.idTable).hasClass("modal"))a("#avdSearchModal_"+g.options.idTable).modal();else{var h=c('<div id="avdSearchModal%s"  class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">',"_"+g.options.idTable);h+='<div class="modal-dialog modal-xs">',h+=' <div class="modal-content">',h+='  <div class="modal-header">',h+='   <button type="button" class="close" data-dismiss="modal" aria-hidden="true" >&times;</button>',h+=c('   <h4 class="modal-title">%s</h4>',d),h+="  </div>",h+='  <div class="modal-body modal-body-custom">',h+=c('   <div class="container-fluid" id="avdSearchModalContent%s" style="padding-right: 0px;padding-left: 0px;" >',"_"+g.options.idTable),h+="   </div>",h+="  </div>",h+="  </div>",h+=" </div>",h+="</div>",a("body").append(a(h));var i=e(b,f,g),j=0;a("#avdSearchModalContent_"+g.options.idTable).append(i.join("")),a("#"+g.options.idForm).off("keyup blur","input").on("keyup blur","input",function(a){clearTimeout(j),j=setTimeout(function(){g.onColumnAdvancedSearch(a)},g.options.searchTimeOut)}),a("#btnCloseAvd_"+g.options.idTable).click(function(){a("#avdSearchModal_"+g.options.idTable).modal("hide")}),a("#avdSearchModal_"+g.options.idTable).modal()}},e=function(a,b,d){var e=[];e.push(c('<form class="form-horizontal" id="%s" action="%s" >',d.options.idForm,d.options.actionForm));for(var f in a){var g=a[f];!g.checkbox&&g.visible&&g.searchable&&(e.push('<div class="form-group">'),e.push(c('<label class="col-sm-4 control-label">%s</label>',g.title)),e.push('<div class="col-sm-6">'),e.push(c('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">',g.field,g.title,g.field)),e.push("</div>"),e.push("</div>"))}return e.push('<div class="form-group">'),e.push('<div class="col-sm-offset-9 col-sm-3">'),e.push(c('<button type="button" id="btnCloseAvd%s" class="btn btn-default" >%s</button>',"_"+d.options.idTable,b)),e.push("</div>"),e.push("</div>"),e.push("</form>"),e};a.extend(a.fn.bootstrapTable.defaults,{advancedSearch:!1,idForm:"advancedSearch",actionForm:"",idTable:void 0,onColumnAdvancedSearch:function(){return!1}}),a.extend(a.fn.bootstrapTable.defaults.icons,{advancedSearchIcon:"glyphicon-chevron-down"}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-advanced-search.bs.table":"onColumnAdvancedSearch"}),a.extend(a.fn.bootstrapTable.locales,{formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var f=a.fn.bootstrapTable.Constructor,g=f.prototype.initToolbar,h=f.prototype.load,i=f.prototype.initSearch;f.prototype.initToolbar=function(){if(g.apply(this,Array.prototype.slice.apply(arguments)),this.options.search&&this.options.advancedSearch&&this.options.idTable){var a=this,b=[];b.push(c('<div class="columns columns-%s btn-group pull-%s" role="group">',this.options.buttonsAlign,this.options.buttonsAlign)),b.push(c('<button class="btn btn-default%s" type="button" name="advancedSearch" title="%s">',void 0===a.options.iconSize?"":" btn-"+a.options.iconSize,a.options.formatAdvancedSearch())),b.push(c('<i class="%s %s"></i>',a.options.iconsPrefix,a.options.icons.advancedSearchIcon)),b.push("</button></div>"),a.$toolbar.prepend(b.join("")),a.$toolbar.find('button[name="advancedSearch"]').off("click").on("click",function(){d(a.columns,a.options.formatAdvancedSearch(),a.options.formatAdvancedCloseButton(),a)})}},f.prototype.load=function(){if(h.apply(this,Array.prototype.slice.apply(arguments)),this.options.advancedSearch&&"undefined"!=typeof this.options.idTable&&!b){var c=parseInt(a(".bootstrap-table").height());c+=10,a("#"+this.options.idTable).bootstrapTable("resetView",{height:c}),b=!0}},f.prototype.initSearch=function(){if(i.apply(this,Array.prototype.slice.apply(arguments)),this.options.advancedSearch){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=c[f].toLowerCase(),h=d[f];if(h=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[h,d,e],h),-1===a.inArray(f,b.header.fields)||"string"!=typeof h&&"number"!=typeof h||-1===(h+"").toLowerCase().indexOf(g))return!1}return!0}):this.data}},f.prototype.onColumnAdvancedSearch=function(b){var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget)[0].id;a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.options.pageNumber=1,this.onSearch(b),this.updatePagination(),this.trigger("column-advanced-search",d,c)}}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-af-ZA.js b/js/table/locale/bootstrap-table-af-ZA.js
new file mode 100644
index 0000000..1c7ff88
--- /dev/null
+++ b/js/table/locale/bootstrap-table-af-ZA.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Afrikaans translation
+ * Author: Phillip Kruger <phillip.kruger@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['af-ZA'] = {
+        formatLoadingMessage: function () {
+            return 'Besig om te laai, wag asseblief ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekords per bladsy';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Resultate ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + ' rye';
+        },
+        formatSearch: function () {
+            return 'Soek';
+        },
+        formatNoMatches: function () {
+            return 'Geen rekords gevind nie';
+        },
+        formatPaginationSwitch: function () {
+            return 'Wys/verberg bladsy nummering';
+        },
+        formatRefresh: function () {
+            return 'Herlaai';
+        },
+        formatToggle: function () {
+            return 'Wissel';
+        },
+        formatColumns: function () {
+            return 'Kolomme';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['af-ZA']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-af-ZA.min.js b/js/table/locale/bootstrap-table-af-ZA.min.js
new file mode 100644
index 0000000..e047440
--- /dev/null
+++ b/js/table/locale/bootstrap-table-af-ZA.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["af-ZA"]={formatLoadingMessage:function(){return"Besig om te laai, wag asseblief ..."},formatRecordsPerPage:function(a){return a+" rekords per bladsy"},formatShowingRows:function(a,b,c){return"Resultate "+a+" tot "+b+" van "+c+" rye"},formatSearch:function(){return"Soek"},formatNoMatches:function(){return"Geen rekords gevind nie"},formatPaginationSwitch:function(){return"Wys/verberg bladsy nummering"},formatRefresh:function(){return"Herlaai"},formatToggle:function(){return"Wissel"},formatColumns:function(){return"Kolomme"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["af-ZA"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ar-SA.js b/js/table/locale/bootstrap-table-ar-SA.js
new file mode 100644
index 0000000..c362236
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ar-SA.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table English translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ar-SA'] = {
+        formatLoadingMessage: function () {
+            return 'جاري التحميل, يرجى الإنتظار...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' سجل لكل صفحة';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'الظاهر ' + pageFrom + ' إلى ' + pageTo + ' من ' + totalRows + ' سجل';
+        },
+        formatSearch: function () {
+            return 'بحث';
+        },
+        formatNoMatches: function () {
+            return 'لا توجد نتائج مطابقة للبحث';
+        },
+        formatPaginationSwitch: function () {
+            return 'إخفاء\إظهار ترقيم الصفحات';
+        },
+        formatRefresh: function () {
+            return 'تحديث';
+        },
+        formatToggle: function () {
+            return 'تغيير';
+        },
+        formatColumns: function () {
+            return 'أعمدة';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ar-SA']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ar-SA.min.js b/js/table/locale/bootstrap-table-ar-SA.min.js
new file mode 100644
index 0000000..fd3c4b4
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ar-SA.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ar-SA"]={formatLoadingMessage:function(){return"جاري التحميل, يرجى الإنتظار..."},formatRecordsPerPage:function(a){return a+" سجل لكل صفحة"},formatShowingRows:function(a,b,c){return"الظاهر "+a+" إلى "+b+" من "+c+" سجل"},formatSearch:function(){return"بحث"},formatNoMatches:function(){return"لا توجد نتائج مطابقة للبحث"},formatPaginationSwitch:function(){return"إخفاءإظهار ترقيم الصفحات"},formatRefresh:function(){return"تحديث"},formatToggle:function(){return"تغيير"},formatColumns:function(){return"أعمدة"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ar-SA"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ca-ES.js b/js/table/locale/bootstrap-table-ca-ES.js
new file mode 100644
index 0000000..f155c13
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ca-ES.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Catalan translation
+ * Author: Marc Pina<iwalkalone69@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ca-ES'] = {
+        formatLoadingMessage: function () {
+            return 'Si us plau esperi...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' resultats per pàgina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrant de ' + pageFrom + ' fins ' + pageTo + ' - total ' + totalRows + ' resultats';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No s\'han trobat resultats';
+        },
+        formatPaginationSwitch: function () {
+            return 'Amagar/Mostrar paginació';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Amagar/Mostrar';
+        },
+        formatColumns: function () {
+            return 'Columnes';
+        },
+        formatAllRows: function () {
+            return 'Tots';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ca-ES']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ca-ES.min.js b/js/table/locale/bootstrap-table-ca-ES.min.js
new file mode 100644
index 0000000..7895ed9
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ca-ES.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ca-ES"]={formatLoadingMessage:function(){return"Si us plau esperi..."},formatRecordsPerPage:function(a){return a+" resultats per pàgina"},formatShowingRows:function(a,b,c){return"Mostrant de "+a+" fins "+b+" - total "+c+" resultats"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No s'han trobat resultats"},formatPaginationSwitch:function(){return"Amagar/Mostrar paginació"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Amagar/Mostrar"},formatColumns:function(){return"Columnes"},formatAllRows:function(){return"Tots"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ca-ES"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-cs-CZ.js b/js/table/locale/bootstrap-table-cs-CZ.js
new file mode 100644
index 0000000..d8c7130
--- /dev/null
+++ b/js/table/locale/bootstrap-table-cs-CZ.js
@@ -0,0 +1,44 @@
+/**
+ * Bootstrap Table Czech translation
+ * Author: Lukas Kral (monarcha@seznam.cz)
+ * Author: Jakub Svestka <svestka1999@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['cs-CZ'] = {
+        formatLoadingMessage: function () {
+            return 'Čekejte, prosím...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' položek na stránku';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Zobrazena ' + pageFrom + '. - ' + pageTo + '. položka z celkových ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Vyhledávání';
+        },
+        formatNoMatches: function () {
+            return 'Nenalezena žádná vyhovující položka';
+        },
+        formatPaginationSwitch: function () {
+            return 'Skrýt/Zobrazit stránkování';
+        },
+        formatRefresh: function () {
+            return 'Aktualizovat';
+        },
+        formatToggle: function () {
+            return 'Přepni';
+        },
+        formatColumns: function () {
+            return 'Sloupce';
+        },
+        formatAllRows: function () {
+            return 'Vše';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['cs-CZ']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-cs-CZ.min.js b/js/table/locale/bootstrap-table-cs-CZ.min.js
new file mode 100644
index 0000000..6fee62e
--- /dev/null
+++ b/js/table/locale/bootstrap-table-cs-CZ.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["cs-CZ"]={formatLoadingMessage:function(){return"Čekejte, prosím..."},formatRecordsPerPage:function(a){return a+" položek na stránku"},formatShowingRows:function(a,b,c){return"Zobrazena "+a+". - "+b+". položka z celkových "+c},formatSearch:function(){return"Vyhledávání"},formatNoMatches:function(){return"Nenalezena žádná vyhovující položka"},formatPaginationSwitch:function(){return"Skrýt/Zobrazit stránkování"},formatRefresh:function(){return"Aktualizovat"},formatToggle:function(){return"Přepni"},formatColumns:function(){return"Sloupce"},formatAllRows:function(){return"Vše"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["cs-CZ"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-da-DK.js b/js/table/locale/bootstrap-table-da-DK.js
new file mode 100644
index 0000000..de38a17
--- /dev/null
+++ b/js/table/locale/bootstrap-table-da-DK.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table danish translation
+ * Author: Your Name Jan Borup Coyle, github@coyle.dk
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['da-DK'] = {
+        formatLoadingMessage: function () {
+            return 'Indlæser, vent venligst...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' poster pr side';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Viser ' + pageFrom + ' til ' + pageTo + ' af ' + totalRows + ' rækker';
+        },
+        formatSearch: function () {
+            return 'Søg';
+        },
+        formatNoMatches: function () {
+            return 'Ingen poster fundet';
+        },
+        formatRefresh: function () {
+            return 'Opdater';
+        },
+        formatToggle: function () {
+            return 'Skift';
+        },
+        formatColumns: function () {
+            return 'Kolonner';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['da-DK']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-da-DK.min.js b/js/table/locale/bootstrap-table-da-DK.min.js
new file mode 100644
index 0000000..bfedc46
--- /dev/null
+++ b/js/table/locale/bootstrap-table-da-DK.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["da-DK"]={formatLoadingMessage:function(){return"Indlæser, vent venligst..."},formatRecordsPerPage:function(a){return a+" poster pr side"},formatShowingRows:function(a,b,c){return"Viser "+a+" til "+b+" af "+c+" rækker"},formatSearch:function(){return"Søg"},formatNoMatches:function(){return"Ingen poster fundet"},formatRefresh:function(){return"Opdater"},formatToggle:function(){return"Skift"},formatColumns:function(){return"Kolonner"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["da-DK"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-de-DE.js b/js/table/locale/bootstrap-table-de-DE.js
new file mode 100644
index 0000000..efa4831
--- /dev/null
+++ b/js/table/locale/bootstrap-table-de-DE.js
@@ -0,0 +1,37 @@
+/**
+* Bootstrap Table German translation
+* Author: Paul Mohr - Sopamo<p.mohr@sopamo.de>
+*/
+(function ($) {
+  'use strict';
+
+  $.fn.bootstrapTable.locales['de-DE'] = {
+    formatLoadingMessage: function () {
+      return 'Lade, bitte warten...';
+    },
+    formatRecordsPerPage: function (pageNumber) {
+      return pageNumber + ' Einträge pro Seite';
+    },
+    formatShowingRows: function (pageFrom, pageTo, totalRows) {
+      return 'Zeige ' + pageFrom + ' bis ' + pageTo + ' von ' + totalRows + ' Zeile' + ((totalRows > 1) ? "n" : "");
+    },
+    formatSearch: function () {
+      return 'Suchen';
+    },
+    formatNoMatches: function () {
+      return 'Keine passenden Ergebnisse gefunden';
+    },
+    formatRefresh: function () {
+      return 'Neu laden';
+    },
+    formatToggle: function () {
+      return 'Umschalten';
+    },
+    formatColumns: function () {
+      return 'Spalten';
+    }
+  };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['de-DE']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-de-DE.min.js b/js/table/locale/bootstrap-table-de-DE.min.js
new file mode 100644
index 0000000..8db99c8
--- /dev/null
+++ b/js/table/locale/bootstrap-table-de-DE.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["de-DE"]={formatLoadingMessage:function(){return"Lade, bitte warten..."},formatRecordsPerPage:function(a){return a+" Einträge pro Seite"},formatShowingRows:function(a,b,c){return"Zeige "+a+" bis "+b+" von "+c+" Zeile"+(c>1?"n":"")},formatSearch:function(){return"Suchen"},formatNoMatches:function(){return"Keine passenden Ergebnisse gefunden"},formatRefresh:function(){return"Neu laden"},formatToggle:function(){return"Umschalten"},formatColumns:function(){return"Spalten"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["de-DE"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-el-GR.js b/js/table/locale/bootstrap-table-el-GR.js
new file mode 100644
index 0000000..dd74491
--- /dev/null
+++ b/js/table/locale/bootstrap-table-el-GR.js
@@ -0,0 +1,28 @@
+/**
+ * Bootstrap Table Greek translation
+ * Author: giannisdallas
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['el-GR'] = {
+        formatLoadingMessage: function () {
+            return 'Φορτώνει, παρακαλώ περιμένετε...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' αποτελέσματα ανά σελίδα';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Εμφανίζονται από την ' + pageFrom + ' ως την ' + pageTo + ' από σύνολο ' + totalRows + ' σειρών';
+        },
+        formatSearch: function () {
+            return 'Αναζητήστε';
+        },
+        formatNoMatches: function () {
+            return 'Δεν βρέθηκαν αποτελέσματα';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['el-GR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-el-GR.min.js b/js/table/locale/bootstrap-table-el-GR.min.js
new file mode 100644
index 0000000..201737c
--- /dev/null
+++ b/js/table/locale/bootstrap-table-el-GR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["el-GR"]={formatLoadingMessage:function(){return"Φορτώνει, παρακαλώ περιμένετε..."},formatRecordsPerPage:function(a){return a+" αποτελέσματα ανά σελίδα"},formatShowingRows:function(a,b,c){return"Εμφανίζονται από την "+a+" ως την "+b+" από σύνολο "+c+" σειρών"},formatSearch:function(){return"Αναζητήστε"},formatNoMatches:function(){return"Δεν βρέθηκαν αποτελέσματα"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["el-GR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-en-US.js b/js/table/locale/bootstrap-table-en-US.js
new file mode 100644
index 0000000..5c75279
--- /dev/null
+++ b/js/table/locale/bootstrap-table-en-US.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table English translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['en-US'] = {
+        formatLoadingMessage: function () {
+            return 'Loading, please wait...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' records per page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Showing ' + pageFrom + ' to ' + pageTo + ' of ' + totalRows + ' rows';
+        },
+        formatSearch: function () {
+            return 'Search';
+        },
+        formatNoMatches: function () {
+            return 'No matching records found';
+        },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
+        formatRefresh: function () {
+            return 'Refresh';
+        },
+        formatToggle: function () {
+            return 'Toggle';
+        },
+        formatColumns: function () {
+            return 'Columns';
+        },
+        formatAllRows: function () {
+            return 'All';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['en-US']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-en-US.min.js b/js/table/locale/bootstrap-table-en-US.min.js
new file mode 100644
index 0000000..0d96317
--- /dev/null
+++ b/js/table/locale/bootstrap-table-en-US.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["en-US"]={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return a+" records per page"},formatShowingRows:function(a,b,c){return"Showing "+a+" to "+b+" of "+c+" rows"},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["en-US"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-AR.js b/js/table/locale/bootstrap-table-es-AR.js
new file mode 100644
index 0000000..6f585f7
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-AR.js
@@ -0,0 +1,31 @@
+/**
+ * Bootstrap Table Spanish (Argentina) translation
+ * Author: Felix Vera (felix.vera@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-AR'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, espere por favor...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando ' + pageFrom + ' a ' + pageTo + ' de ' + totalRows + ' filas';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-AR']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-AR.min.js b/js/table/locale/bootstrap-table-es-AR.min.js
new file mode 100644
index 0000000..24aac1d
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-AR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-AR"]={formatLoadingMessage:function(){return"Cargando, espere por favor..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando "+a+" a "+b+" de "+c+" filas"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-AR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-CR.js b/js/table/locale/bootstrap-table-es-CR.js
new file mode 100644
index 0000000..7febab7
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-CR.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Spanish (Costa Rica) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-CR'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando de ' + pageFrom + ' a ' + pageTo + ' registros de ' + totalRows + ' registros en total';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-CR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-es-CR.min.js b/js/table/locale/bootstrap-table-es-CR.min.js
new file mode 100644
index 0000000..44dce0f
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-CR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-CR"]={formatLoadingMessage:function(){return"Cargando, por favor espere..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando de "+a+" a "+b+" registros de "+c+" registros en total"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-CR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-ES.js b/js/table/locale/bootstrap-table-es-ES.js
new file mode 100644
index 0000000..30448d7
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-ES.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Spanish Spain translation
+ * Author: Marc Pina<iwalkalone69@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-ES'] = {
+        formatLoadingMessage: function () {
+            return 'Por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' resultados por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando desde ' + pageFrom + ' hasta ' + pageTo + ' - En total ' + totalRows + ' resultados';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron resultados';
+        },
+        formatPaginationSwitch: function () {
+            return 'Ocultar/Mostrar paginación';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Ocultar/Mostrar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todos';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-ES']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-es-ES.min.js b/js/table/locale/bootstrap-table-es-ES.min.js
new file mode 100644
index 0000000..b963297
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-ES.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-ES"]={formatLoadingMessage:function(){return"Por favor espere..."},formatRecordsPerPage:function(a){return a+" resultados por página"},formatShowingRows:function(a,b,c){return"Mostrando desde "+a+" hasta "+b+" - En total "+c+" resultados"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron resultados"},formatPaginationSwitch:function(){return"Ocultar/Mostrar paginación"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Ocultar/Mostrar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todos"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-ES"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-MX.js b/js/table/locale/bootstrap-table-es-MX.js
new file mode 100644
index 0000000..f745fae
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-MX.js
@@ -0,0 +1,32 @@
+/**
+ * Bootstrap Table Spanish (México) translation (Obtenido de traducción de Argentina)
+ * Author: Felix Vera (felix.vera@gmail.com) 
+ * Copiado: Mauricio Vera (mauricioa.vera@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-MX'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, espere por favor...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando ' + pageFrom + ' a ' + pageTo + ' de ' + totalRows + ' filas';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-MX']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-es-MX.min.js b/js/table/locale/bootstrap-table-es-MX.min.js
new file mode 100644
index 0000000..ef6afb0
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-MX.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-MX"]={formatLoadingMessage:function(){return"Cargando, espere por favor..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando "+a+" a "+b+" de "+c+" filas"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-MX"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-NI.js b/js/table/locale/bootstrap-table-es-NI.js
new file mode 100644
index 0000000..2e8aa2a
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-NI.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Spanish (Nicaragua) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['es-NI'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espere...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Mostrando de ' + pageFrom + ' a ' + pageTo + ' registros de ' + totalRows + ' registros en total';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se encontraron registros';
+        },
+        formatRefresh: function () {
+            return 'Refrescar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-NI']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-es-NI.min.js b/js/table/locale/bootstrap-table-es-NI.min.js
new file mode 100644
index 0000000..d872dfb
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-NI.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-NI"]={formatLoadingMessage:function(){return"Cargando, por favor espere..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Mostrando de "+a+" a "+b+" registros de "+c+" registros en total"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-NI"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-SP.js b/js/table/locale/bootstrap-table-es-SP.js
new file mode 100644
index 0000000..7da9350
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-SP.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Spanish (España) translation
+ * Author: Antonio Pérez <anpegar@gmail.com>
+ */
+ (function ($) {
+    'use strict';
+    
+    $.fn.bootstrapTable.locales['es-SP'] = {
+        formatLoadingMessage: function () {
+            return 'Cargando, por favor espera...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por p&#225;gina.';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return pageFrom + ' - ' + pageTo + ' de ' + totalRows + ' registros.';
+        },
+        formatSearch: function () {
+            return 'Buscar';
+        },
+        formatNoMatches: function () {
+            return 'No se han encontrado registros.';
+        },
+        formatRefresh: function () {
+            return 'Actualizar';
+        },
+        formatToggle: function () {
+            return 'Alternar';
+        },
+        formatColumns: function () {
+            return 'Columnas';
+        },
+        formatAllRows: function () {
+            return 'Todo';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['es-SP']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-es-SP.min.js b/js/table/locale/bootstrap-table-es-SP.min.js
new file mode 100644
index 0000000..255428f
--- /dev/null
+++ b/js/table/locale/bootstrap-table-es-SP.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["es-SP"]={formatLoadingMessage:function(){return"Cargando, por favor espera..."},formatRecordsPerPage:function(a){return a+" registros por p&#225;gina."},formatShowingRows:function(a,b,c){return a+" - "+b+" de "+c+" registros."},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se han encontrado registros."},formatRefresh:function(){return"Actualizar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Columnas"},formatAllRows:function(){return"Todo"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["es-SP"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-et-EE.js b/js/table/locale/bootstrap-table-et-EE.js
new file mode 100644
index 0000000..3d71d10
--- /dev/null
+++ b/js/table/locale/bootstrap-table-et-EE.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Estonian translation
+ * Author: kristjan@logist.it>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['et-EE'] = {
+        formatLoadingMessage: function () {
+            return 'Päring käib, palun oota...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rida lehe kohta';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Näitan tulemusi ' + pageFrom + ' kuni ' + pageTo + ' - kokku ' + totalRows + ' tulemust';
+        },
+        formatSearch: function () {
+            return 'Otsi';
+        },
+        formatNoMatches: function () {
+            return 'Päringu tingimustele ei vastanud ühtegi tulemust';
+        },
+        formatPaginationSwitch: function () {
+            return 'Näita/Peida lehtedeks jagamine';
+        },
+        formatRefresh: function () {
+            return 'Värskenda';
+        },
+        formatToggle: function () {
+            return 'Lülita';
+        },
+        formatColumns: function () {
+            return 'Veerud';
+        },
+        formatAllRows: function () {
+            return 'Kõik';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['et-EE']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-et-EE.min.js b/js/table/locale/bootstrap-table-et-EE.min.js
new file mode 100644
index 0000000..0bd3e52
--- /dev/null
+++ b/js/table/locale/bootstrap-table-et-EE.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["et-EE"]={formatLoadingMessage:function(){return"Päring käib, palun oota..."},formatRecordsPerPage:function(a){return a+" rida lehe kohta"},formatShowingRows:function(a,b,c){return"Näitan tulemusi "+a+" kuni "+b+" - kokku "+c+" tulemust"},formatSearch:function(){return"Otsi"},formatNoMatches:function(){return"Päringu tingimustele ei vastanud ühtegi tulemust"},formatPaginationSwitch:function(){return"Näita/Peida lehtedeks jagamine"},formatRefresh:function(){return"Värskenda"},formatToggle:function(){return"Lülita"},formatColumns:function(){return"Veerud"},formatAllRows:function(){return"Kõik"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["et-EE"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-fa-IR.js b/js/table/locale/bootstrap-table-fa-IR.js
new file mode 100644
index 0000000..4cdee6e
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fa-IR.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Persian translation
+ * Author: MJ Vakili <mjv.1989@Gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fa-IR'] = {
+        formatLoadingMessage: function () {
+            return 'در حال بارگذاری, لطفا صبر کنید...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' رکورد در صفحه';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'نمایش ' + pageFrom + ' تا ' + pageTo + ' از ' + totalRows + ' ردیف';
+        },
+        formatSearch: function () {
+            return 'جستجو';
+        },
+        formatNoMatches: function () {
+            return 'رکوردی یافت نشد.';
+        },
+        formatPaginationSwitch: function () {
+            return 'نمایش/مخفی صفحه بندی';
+        },
+        formatRefresh: function () {
+            return 'به روز رسانی';
+        },
+        formatToggle: function () {
+            return 'تغییر نمایش';
+        },
+        formatColumns: function () {
+            return 'سطر ها';
+        },
+        formatAllRows: function () {
+            return 'همه';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fa-IR']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-fa-IR.min.js b/js/table/locale/bootstrap-table-fa-IR.min.js
new file mode 100644
index 0000000..5161a48
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fa-IR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["fa-IR"]={formatLoadingMessage:function(){return"در حال بارگذاری, لطفا صبر کنید..."},formatRecordsPerPage:function(a){return a+" رکورد در صفحه"},formatShowingRows:function(a,b,c){return"نمایش "+a+" تا "+b+" از "+c+" ردیف"},formatSearch:function(){return"جستجو"},formatNoMatches:function(){return"رکوردی یافت نشد."},formatPaginationSwitch:function(){return"نمایش/مخفی صفحه بندی"},formatRefresh:function(){return"به روز رسانی"},formatToggle:function(){return"تغییر نمایش"},formatColumns:function(){return"سطر ها"},formatAllRows:function(){return"همه"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fa-IR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-fr-BE.js b/js/table/locale/bootstrap-table-fr-BE.js
new file mode 100644
index 0000000..e4b7cf1
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fr-BE.js
@@ -0,0 +1,28 @@
+/**
+ * Bootstrap Table French (Belgium) translation
+ * Author: Julien Bisconti (julien.bisconti@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fr-BE'] = {
+        formatLoadingMessage: function () {
+            return 'Chargement en cours...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' entrées par page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Affiche de' + pageFrom + ' à ' + pageTo + ' sur ' + totalRows + ' lignes';
+        },
+        formatSearch: function () {
+            return 'Recherche';
+        },
+        formatNoMatches: function () {
+            return 'Pas de fichiers trouvés';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fr-BE']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-fr-BE.min.js b/js/table/locale/bootstrap-table-fr-BE.min.js
new file mode 100644
index 0000000..4638353
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fr-BE.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["fr-BE"]={formatLoadingMessage:function(){return"Chargement en cours..."},formatRecordsPerPage:function(a){return a+" entrées par page"},formatShowingRows:function(a,b,c){return"Affiche de"+a+" à "+b+" sur "+c+" lignes"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de fichiers trouvés"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fr-BE"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-fr-FR.js b/js/table/locale/bootstrap-table-fr-FR.js
new file mode 100644
index 0000000..802eaf6
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fr-FR.js
@@ -0,0 +1,41 @@
+/**
+ * Bootstrap Table French (France) translation
+ * Author: Dennis Hernández (http://djhvscf.github.io/Blog/)
+ * Modification: Tidalf (https://github.com/TidalfFR)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['fr-FR'] = {
+        formatLoadingMessage: function () {
+            return 'Chargement en cours, patientez, s´il vous plaît ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' lignes par page';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Affichage des lignes ' + pageFrom + ' à ' + pageTo + ' sur ' + totalRows + ' lignes au total';
+        },
+        formatSearch: function () {
+            return 'Rechercher';
+        },
+        formatNoMatches: function () {
+            return 'Aucun résultat trouvé';
+        },
+        formatRefresh: function () {
+            return 'Rafraîchir';
+        },
+        formatToggle: function () {
+            return 'Alterner';
+        },
+        formatColumns: function () {
+            return 'Colonnes';
+        },
+        formatAllRows: function () {
+            return 'Tous';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['fr-FR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-fr-FR.min.js b/js/table/locale/bootstrap-table-fr-FR.min.js
new file mode 100644
index 0000000..c61ae76
--- /dev/null
+++ b/js/table/locale/bootstrap-table-fr-FR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["fr-FR"]={formatLoadingMessage:function(){return"Chargement en cours, patientez, s´il vous plaît ..."},formatRecordsPerPage:function(a){return a+" lignes par page"},formatShowingRows:function(a,b,c){return"Affichage des lignes "+a+" à "+b+" sur "+c+" lignes au total"},formatSearch:function(){return"Rechercher"},formatNoMatches:function(){return"Aucun résultat trouvé"},formatRefresh:function(){return"Rafraîchir"},formatToggle:function(){return"Alterner"},formatColumns:function(){return"Colonnes"},formatAllRows:function(){return"Tous"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["fr-FR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-hr-HR.js b/js/table/locale/bootstrap-table-hr-HR.js
new file mode 100644
index 0000000..f63a4fe
--- /dev/null
+++ b/js/table/locale/bootstrap-table-hr-HR.js
@@ -0,0 +1,44 @@
+/**
+ * Bootstrap Table Croatian translation
+ * Author: Petra Štrbenac (petra.strbenac@gmail.com)
+ * Author: Petra Štrbenac (petra.strbenac@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['hr-HR'] = {
+        formatLoadingMessage: function () {
+            return 'Molimo pričekajte ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' broj zapisa po stranici';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Prikazujem ' + pageFrom + '. - ' + pageTo + '. od ukupnog broja zapisa ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Pretraži';
+        },
+        formatNoMatches: function () {
+            return 'Nije pronađen niti jedan zapis';
+        },
+        formatPaginationSwitch: function () {
+            return 'Prikaži/sakrij stranice';
+        },
+        formatRefresh: function () {
+            return 'Osvježi';
+        },
+        formatToggle: function () {
+            return 'Promijeni prikaz';
+        },
+        formatColumns: function () {
+            return 'Kolone';
+        },
+        formatAllRows: function () {
+            return 'Sve';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['hr-HR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-hr-HR.min.js b/js/table/locale/bootstrap-table-hr-HR.min.js
new file mode 100644
index 0000000..c876e14
--- /dev/null
+++ b/js/table/locale/bootstrap-table-hr-HR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["hr-HR"]={formatLoadingMessage:function(){return"Molimo pričekajte ..."},formatRecordsPerPage:function(a){return a+" broj zapisa po stranici"},formatShowingRows:function(a,b,c){return"Prikazujem "+a+". - "+b+". od ukupnog broja zapisa "+c},formatSearch:function(){return"Pretraži"},formatNoMatches:function(){return"Nije pronađen niti jedan zapis"},formatPaginationSwitch:function(){return"Prikaži/sakrij stranice"},formatRefresh:function(){return"Osvježi"},formatToggle:function(){return"Promijeni prikaz"},formatColumns:function(){return"Kolone"},formatAllRows:function(){return"Sve"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["hr-HR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-hu-HU.js b/js/table/locale/bootstrap-table-hu-HU.js
new file mode 100644
index 0000000..353f098
--- /dev/null
+++ b/js/table/locale/bootstrap-table-hu-HU.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Hungarian translation
+ * Author: Nagy Gergely <info@nagygergely.eu>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['hu-HU'] = {
+        formatLoadingMessage: function () {
+            return 'Betöltés, kérem várjon...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekord per oldal';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Megjelenítve ' + pageFrom + ' - ' + pageTo + ' / ' + totalRows + ' összesen';
+        },
+        formatSearch: function () {
+            return 'Keresés';
+        },
+        formatNoMatches: function () {
+            return 'Nincs találat';
+        },
+        formatPaginationSwitch: function () {
+            return 'Lapozó elrejtése/megjelenítése';
+        },
+        formatRefresh: function () {
+            return 'Frissítés';
+        },
+        formatToggle: function () {
+            return 'Összecsuk/Kinyit';
+        },
+        formatColumns: function () {
+            return 'Oszlopok';
+        },
+        formatAllRows: function () {
+            return 'Összes';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['hu-HU']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-hu-HU.min.js b/js/table/locale/bootstrap-table-hu-HU.min.js
new file mode 100644
index 0000000..4723d10
--- /dev/null
+++ b/js/table/locale/bootstrap-table-hu-HU.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["hu-HU"]={formatLoadingMessage:function(){return"Betöltés, kérem várjon..."},formatRecordsPerPage:function(a){return a+" rekord per oldal"},formatShowingRows:function(a,b,c){return"Megjelenítve "+a+" - "+b+" / "+c+" összesen"},formatSearch:function(){return"Keresés"},formatNoMatches:function(){return"Nincs találat"},formatPaginationSwitch:function(){return"Lapozó elrejtése/megjelenítése"},formatRefresh:function(){return"Frissítés"},formatToggle:function(){return"Összecsuk/Kinyit"},formatColumns:function(){return"Oszlopok"},formatAllRows:function(){return"Összes"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["hu-HU"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-it-IT.js b/js/table/locale/bootstrap-table-it-IT.js
new file mode 100644
index 0000000..0c2ea74
--- /dev/null
+++ b/js/table/locale/bootstrap-table-it-IT.js
@@ -0,0 +1,38 @@
+/**
+ * Bootstrap Table Italian translation
+ * Author: Davide Renzi<davide.renzi@gmail.com>
+ * Author: Davide Borsatto <davide.borsatto@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['it-IT'] = {
+        formatLoadingMessage: function () {
+            return 'Caricamento in corso...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' elementi per pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Pagina ' + pageFrom + ' di ' + pageTo + ' (' + totalRows + ' records)';
+        },
+        formatSearch: function () {
+            return 'Cerca';
+        },
+        formatNoMatches: function () {
+            return 'Nessun elemento trovato';
+        },
+        formatRefresh: function () {
+            return 'Aggiorna';
+        },
+        formatToggle: function () {
+            return 'Alterna';
+        },
+        formatColumns: function () {
+            return 'Colonne';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['it-IT']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-it-IT.min.js b/js/table/locale/bootstrap-table-it-IT.min.js
new file mode 100644
index 0000000..f39e4b4
--- /dev/null
+++ b/js/table/locale/bootstrap-table-it-IT.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["it-IT"]={formatLoadingMessage:function(){return"Caricamento in corso..."},formatRecordsPerPage:function(a){return a+" elementi per pagina"},formatShowingRows:function(a,b,c){return"Pagina "+a+" di "+b+" ("+c+" records)"},formatSearch:function(){return"Cerca"},formatNoMatches:function(){return"Nessun elemento trovato"},formatRefresh:function(){return"Aggiorna"},formatToggle:function(){return"Alterna"},formatColumns:function(){return"Colonne"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["it-IT"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ja-JP.js b/js/table/locale/bootstrap-table-ja-JP.js
new file mode 100644
index 0000000..3a0f3ec
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ja-JP.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Japanese translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ja-JP'] = {
+        formatLoadingMessage: function () {
+            return '読み込み中です。少々お待ちください。';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return 'ページ当たり最大' + pageNumber + '件';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '全' + totalRows + '件から、'+ pageFrom + 'から' + pageTo + '件目まで表示しています';
+        },
+        formatSearch: function () {
+            return '検索';
+        },
+        formatNoMatches: function () {
+            return '該当するレコードが見つかりません';
+        },
+        formatPaginationSwitch: function () {
+            return 'ページ数を表示・非表示';
+        },
+        formatRefresh: function () {
+            return '更新';
+        },
+        formatToggle: function () {
+            return 'トグル';
+        },
+        formatColumns: function () {
+            return '列';
+        },
+        formatAllRows: function () {
+            return 'すべて';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ja-JP']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ja-JP.min.js b/js/table/locale/bootstrap-table-ja-JP.min.js
new file mode 100644
index 0000000..cdc3394
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ja-JP.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ja-JP"]={formatLoadingMessage:function(){return"読み込み中です。少々お待ちください。"},formatRecordsPerPage:function(a){return"ページ当たり最大"+a+"件"},formatShowingRows:function(a,b,c){return"全"+c+"件から、"+a+"から"+b+"件目まで表示しています"},formatSearch:function(){return"検索"},formatNoMatches:function(){return"該当するレコードが見つかりません"},formatPaginationSwitch:function(){return"ページ数を表示・非表示"},formatRefresh:function(){return"更新"},formatToggle:function(){return"トグル"},formatColumns:function(){return"列"},formatAllRows:function(){return"すべて"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ja-JP"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ka-GE.js b/js/table/locale/bootstrap-table-ka-GE.js
new file mode 100644
index 0000000..05da142
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ka-GE.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Georgian translation
+ * Author: Levan Lotuashvili <l.lotuashvili@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ka-GE'] = {
+        formatLoadingMessage: function() {
+            return 'იტვირთება, გთხოვთ მოიცადოთ...';
+        },
+        formatRecordsPerPage: function(pageNumber) {
+            return pageNumber + ' ჩანაწერი თითო გვერდზე';
+        },
+        formatShowingRows: function(pageFrom, pageTo, totalRows) {
+            return 'ნაჩვენებია ' + pageFrom + '-დან ' + pageTo + '-მდე ჩანაწერი ჯამური ' + totalRows + '-დან';
+        },
+        formatSearch: function() {
+            return 'ძებნა';
+        },
+        formatNoMatches: function() {
+            return 'მონაცემები არ არის';
+        },
+        formatPaginationSwitch: function() {
+            return 'გვერდების გადამრთველის დამალვა/გამოჩენა';
+        },
+        formatRefresh: function() {
+            return 'განახლება';
+        },
+        formatToggle: function() {
+            return 'ჩართვა/გამორთვა';
+        },
+        formatColumns: function() {
+            return 'სვეტები';
+        }
+    };
+    
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ka-GE']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ka-GE.min.js b/js/table/locale/bootstrap-table-ka-GE.min.js
new file mode 100644
index 0000000..bcbb0dc
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ka-GE.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ka-GE"]={formatLoadingMessage:function(){return"იტვირთება, გთხოვთ მოიცადოთ..."},formatRecordsPerPage:function(a){return a+" ჩანაწერი თითო გვერდზე"},formatShowingRows:function(a,b,c){return"ნაჩვენებია "+a+"-დან "+b+"-მდე ჩანაწერი ჯამური "+c+"-დან"},formatSearch:function(){return"ძებნა"},formatNoMatches:function(){return"მონაცემები არ არის"},formatPaginationSwitch:function(){return"გვერდების გადამრთველის დამალვა/გამოჩენა"},formatRefresh:function(){return"განახლება"},formatToggle:function(){return"ჩართვა/გამორთვა"},formatColumns:function(){return"სვეტები"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ka-GE"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ko-KR.js b/js/table/locale/bootstrap-table-ko-KR.js
new file mode 100644
index 0000000..c8cf703
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ko-KR.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Korean translation
+ * Author: Yi Tae-Hyeong (jsonobject@gmail.com)
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ko-KR'] = {
+        formatLoadingMessage: function () {
+            return '데이터를 불러오는 중입니다...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '페이지 당 ' + pageNumber + '개 데이터 출력';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '전체 ' + totalRows + '개 중 ' + pageFrom + '~' + pageTo + '번째 데이터 출력,';
+        },
+        formatSearch: function () {
+            return '검색';
+        },
+        formatNoMatches: function () {
+            return '조회된 데이터가 없습니다.';
+        },
+        formatRefresh: function () {
+            return '새로 고침';
+        },
+        formatToggle: function () {
+            return '전환';
+        },
+        formatColumns: function () {
+            return '컬럼 필터링';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ko-KR']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ko-KR.min.js b/js/table/locale/bootstrap-table-ko-KR.min.js
new file mode 100644
index 0000000..1db7c71
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ko-KR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ko-KR"]={formatLoadingMessage:function(){return"데이터를 불러오는 중입니다..."},formatRecordsPerPage:function(a){return"페이지 당 "+a+"개 데이터 출력"},formatShowingRows:function(a,b,c){return"전체 "+c+"개 중 "+a+"~"+b+"번째 데이터 출력,"},formatSearch:function(){return"검색"},formatNoMatches:function(){return"조회된 데이터가 없습니다."},formatRefresh:function(){return"새로 고침"},formatToggle:function(){return"전환"},formatColumns:function(){return"컬럼 필터링"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ko-KR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ms-MY.js b/js/table/locale/bootstrap-table-ms-MY.js
new file mode 100644
index 0000000..edb5eb6
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ms-MY.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Malay translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ms-MY'] = {
+        formatLoadingMessage: function () {
+            return 'Permintaan sedang dimuatkan. Sila tunggu sebentar...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekod setiap muka surat';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Sedang memaparkan rekod ' + pageFrom + ' hingga ' + pageTo + ' daripada jumlah ' + totalRows + ' rekod';
+        },
+        formatSearch: function () {
+            return 'Cari';
+        },
+        formatNoMatches: function () {
+            return 'Tiada rekod yang menyamai permintaan';
+        },
+        formatPaginationSwitch: function () {
+            return 'Tunjuk/sembunyi muka surat';
+        },
+        formatRefresh: function () {
+            return 'Muatsemula';
+        },
+        formatToggle: function () {
+            return 'Tukar';
+        },
+        formatColumns: function () {
+            return 'Lajur';
+        },
+        formatAllRows: function () {
+            return 'Semua';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ms-MY']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ms-MY.min.js b/js/table/locale/bootstrap-table-ms-MY.min.js
new file mode 100644
index 0000000..0e27af3
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ms-MY.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ms-MY"]={formatLoadingMessage:function(){return"Permintaan sedang dimuatkan. Sila tunggu sebentar..."},formatRecordsPerPage:function(a){return a+" rekod setiap muka surat"},formatShowingRows:function(a,b,c){return"Sedang memaparkan rekod "+a+" hingga "+b+" daripada jumlah "+c+" rekod"},formatSearch:function(){return"Cari"},formatNoMatches:function(){return"Tiada rekod yang menyamai permintaan"},formatPaginationSwitch:function(){return"Tunjuk/sembunyi muka surat"},formatRefresh:function(){return"Muatsemula"},formatToggle:function(){return"Tukar"},formatColumns:function(){return"Lajur"},formatAllRows:function(){return"Semua"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ms-MY"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-nb-NO.js b/js/table/locale/bootstrap-table-nb-NO.js
new file mode 100644
index 0000000..473051d
--- /dev/null
+++ b/js/table/locale/bootstrap-table-nb-NO.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table norwegian translation
+ * Author: Jim Nordbø, jim@nordb.no
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['nb-NO'] = {
+        formatLoadingMessage: function () {
+            return 'Oppdaterer, vennligst vent...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' poster pr side';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Viser ' + pageFrom + ' til ' + pageTo + ' av ' + totalRows + ' rekker';
+        },
+        formatSearch: function () {
+            return 'Søk';
+        },
+        formatNoMatches: function () {
+            return 'Ingen poster funnet';
+        },
+        formatRefresh: function () {
+            return 'Oppdater';
+        },
+        formatToggle: function () {
+            return 'Endre';
+        },
+        formatColumns: function () {
+            return 'Kolonner';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['nb-NO']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-nb-NO.min.js b/js/table/locale/bootstrap-table-nb-NO.min.js
new file mode 100644
index 0000000..a0a4fef
--- /dev/null
+++ b/js/table/locale/bootstrap-table-nb-NO.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["nb-NO"]={formatLoadingMessage:function(){return"Oppdaterer, vennligst vent..."},formatRecordsPerPage:function(a){return a+" poster pr side"},formatShowingRows:function(a,b,c){return"Viser "+a+" til "+b+" av "+c+" rekker"},formatSearch:function(){return"Søk"},formatNoMatches:function(){return"Ingen poster funnet"},formatRefresh:function(){return"Oppdater"},formatToggle:function(){return"Endre"},formatColumns:function(){return"Kolonner"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["nb-NO"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-nl-NL.js b/js/table/locale/bootstrap-table-nl-NL.js
new file mode 100644
index 0000000..1089de9
--- /dev/null
+++ b/js/table/locale/bootstrap-table-nl-NL.js
@@ -0,0 +1,28 @@
+/**
+ * Bootstrap Table Dutch translation
+ * Author: Your Name <info@a2hankes.nl>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['nl-NL'] = {
+        formatLoadingMessage: function () {
+            return 'Laden, even geduld...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' records per pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Toon ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + ' records';
+        },
+        formatSearch: function () {
+            return 'Zoeken';
+        },
+        formatNoMatches: function () {
+            return 'Geen resultaten gevonden';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['nl-NL']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-nl-NL.min.js b/js/table/locale/bootstrap-table-nl-NL.min.js
new file mode 100644
index 0000000..88a5cc8
--- /dev/null
+++ b/js/table/locale/bootstrap-table-nl-NL.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["nl-NL"]={formatLoadingMessage:function(){return"Laden, even geduld..."},formatRecordsPerPage:function(a){return a+" records per pagina"},formatShowingRows:function(a,b,c){return"Toon "+a+" tot "+b+" van "+c+" records"},formatSearch:function(){return"Zoeken"},formatNoMatches:function(){return"Geen resultaten gevonden"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["nl-NL"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-pl-PL.js b/js/table/locale/bootstrap-table-pl-PL.js
new file mode 100644
index 0000000..af79be2
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pl-PL.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Polish translation
+ * Author: zergu <michal.zagdan @ gmail com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pl-PL'] = {
+        formatLoadingMessage: function () {
+            return 'Ładowanie, proszę czekać...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekordów na stronę';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Wyświetlanie rekordów od ' + pageFrom + ' do ' + pageTo + ' z ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Szukaj';
+        },
+        formatNoMatches: function () {
+            return 'Niestety, nic nie znaleziono';
+        },
+        formatRefresh: function () {
+            return 'Odśwież';
+        },
+        formatToggle: function () {
+            return 'Przełącz';
+        },
+        formatColumns: function () {
+            return 'Kolumny';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pl-PL']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-pl-PL.min.js b/js/table/locale/bootstrap-table-pl-PL.min.js
new file mode 100644
index 0000000..e09fd2f
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pl-PL.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["pl-PL"]={formatLoadingMessage:function(){return"Ładowanie, proszę czekać..."},formatRecordsPerPage:function(a){return a+" rekordów na stronę"},formatShowingRows:function(a,b,c){return"Wyświetlanie rekordów od "+a+" do "+b+" z "+c},formatSearch:function(){return"Szukaj"},formatNoMatches:function(){return"Niestety, nic nie znaleziono"},formatRefresh:function(){return"Odśwież"},formatToggle:function(){return"Przełącz"},formatColumns:function(){return"Kolumny"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pl-PL"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-pt-BR.js b/js/table/locale/bootstrap-table-pt-BR.js
new file mode 100644
index 0000000..63319a1
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pt-BR.js
@@ -0,0 +1,41 @@
+/**
+ * Bootstrap Table Brazilian Portuguese Translation
+ * Author: Eduardo Cerqueira<egcerqueira@gmail.com>
+ * Update: João Mello<jmello@hotmail.com.br>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pt-BR'] = {
+        formatLoadingMessage: function () {
+            return 'Carregando, aguarde...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registros por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Exibindo ' + pageFrom + ' até ' + pageTo + ' de ' + totalRows + ' linhas';
+        },
+        formatSearch: function () { 
+            return 'Pesquisar';
+        },
+        formatRefresh: function () { 
+            return 'Recarregar';
+        },
+        formatToggle: function () { 
+            return 'Alternar';
+        },
+        formatColumns: function () { 
+            return 'Colunas';
+        },
+        formatPaginationSwitch: function () { 
+            return 'Ocultar/Exibir paginação';
+        },
+        formatNoMatches: function () {
+            return 'Nenhum registro encontrado';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pt-BR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-pt-BR.min.js b/js/table/locale/bootstrap-table-pt-BR.min.js
new file mode 100644
index 0000000..1376233
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pt-BR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["pt-BR"]={formatLoadingMessage:function(){return"Carregando, aguarde..."},formatRecordsPerPage:function(a){return a+" registros por página"},formatShowingRows:function(a,b,c){return"Exibindo "+a+" até "+b+" de "+c+" linhas"},formatSearch:function(){return"Pesquisar"},formatRefresh:function(){return"Recarregar"},formatToggle:function(){return"Alternar"},formatColumns:function(){return"Colunas"},formatPaginationSwitch:function(){return"Ocultar/Exibir paginação"},formatNoMatches:function(){return"Nenhum registro encontrado"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pt-BR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-pt-PT.js b/js/table/locale/bootstrap-table-pt-PT.js
new file mode 100644
index 0000000..cb0b682
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pt-PT.js
@@ -0,0 +1,28 @@
+/**
+ * Bootstrap Table Portuguese Portugal Translation
+ * Author: Burnspirit<burnspirit@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['pt-PT'] = {
+        formatLoadingMessage: function () {
+            return 'A carregar, aguarde...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' registos por página';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'A mostrar ' + pageFrom + ' até ' + pageTo + ' de ' + totalRows + ' linhas';
+        },
+        formatSearch: function () {
+            return 'Pesquisa';
+        },
+        formatNoMatches: function () {
+            return 'Nenhum registo encontrado';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pt-PT']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-pt-PT.min.js b/js/table/locale/bootstrap-table-pt-PT.min.js
new file mode 100644
index 0000000..55164a3
--- /dev/null
+++ b/js/table/locale/bootstrap-table-pt-PT.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["pt-PT"]={formatLoadingMessage:function(){return"A carregar, aguarde..."},formatRecordsPerPage:function(a){return a+" registos por página"},formatShowingRows:function(a,b,c){return"A mostrar "+a+" até "+b+" de "+c+" linhas"},formatSearch:function(){return"Pesquisa"},formatNoMatches:function(){return"Nenhum registo encontrado"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["pt-PT"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ro-RO.js b/js/table/locale/bootstrap-table-ro-RO.js
new file mode 100644
index 0000000..64cd1a7
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ro-RO.js
@@ -0,0 +1,43 @@
+/**
+ * Bootstrap Table Romanian translation
+ * Author: cristake <cristianiosif@me.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ro-RO'] = {
+        formatLoadingMessage: function () {
+            return 'Se incarca, va rugam asteptati...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' inregistrari pe pagina';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Arata de la ' + pageFrom + ' pana la ' + pageTo + ' din ' + totalRows + ' randuri';
+        },
+        formatSearch: function () {
+            return 'Cauta';
+        },
+        formatNoMatches: function () {
+            return 'Nu au fost gasite inregistrari';
+        },
+        formatPaginationSwitch: function () {
+            return 'Ascunde/Arata paginatia';
+        },
+        formatRefresh: function () {
+            return 'Reincarca';
+        },
+        formatToggle: function () {
+            return 'Comuta';
+        },
+        formatColumns: function () {
+            return 'Coloane';
+        },
+        formatAllRows: function () {
+            return 'Toate';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ro-RO']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ro-RO.min.js b/js/table/locale/bootstrap-table-ro-RO.min.js
new file mode 100644
index 0000000..b47d89f
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ro-RO.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ro-RO"]={formatLoadingMessage:function(){return"Se incarca, va rugam asteptati..."},formatRecordsPerPage:function(a){return a+" inregistrari pe pagina"},formatShowingRows:function(a,b,c){return"Arata de la "+a+" pana la "+b+" din "+c+" randuri"},formatSearch:function(){return"Cauta"},formatNoMatches:function(){return"Nu au fost gasite inregistrari"},formatPaginationSwitch:function(){return"Ascunde/Arata paginatia"},formatRefresh:function(){return"Reincarca"},formatToggle:function(){return"Comuta"},formatColumns:function(){return"Coloane"},formatAllRows:function(){return"Toate"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ro-RO"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ru-RU.js b/js/table/locale/bootstrap-table-ru-RU.js
new file mode 100644
index 0000000..272556d
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ru-RU.js
@@ -0,0 +1,36 @@
+/**
+ * Bootstrap Table Russian translation
+ * Author: Dunaevsky Maxim <dunmaksim@yandex.ru>
+ */
+(function ($) {
+    'use strict';
+    $.fn.bootstrapTable.locales['ru-RU'] = {
+        formatLoadingMessage: function () {
+            return 'Пожалуйста, подождите, идёт загрузка...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' записей на страницу';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Записи с ' + pageFrom + ' по ' + pageTo + ' из ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Поиск';
+        },
+        formatNoMatches: function () {
+            return 'Ничего не найдено';
+        },
+        formatRefresh: function () {
+            return 'Обновить';
+        },
+        formatToggle: function () {
+            return 'Переключить';
+        },
+        formatColumns: function () {
+            return 'Колонки';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ru-RU']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ru-RU.min.js b/js/table/locale/bootstrap-table-ru-RU.min.js
new file mode 100644
index 0000000..6915385
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ru-RU.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ru-RU"]={formatLoadingMessage:function(){return"Пожалуйста, подождите, идёт загрузка..."},formatRecordsPerPage:function(a){return a+" записей на страницу"},formatShowingRows:function(a,b,c){return"Записи с "+a+" по "+b+" из "+c},formatSearch:function(){return"Поиск"},formatNoMatches:function(){return"Ничего не найдено"},formatRefresh:function(){return"Обновить"},formatToggle:function(){return"Переключить"},formatColumns:function(){return"Колонки"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ru-RU"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-sk-SK.js b/js/table/locale/bootstrap-table-sk-SK.js
new file mode 100644
index 0000000..05544e8
--- /dev/null
+++ b/js/table/locale/bootstrap-table-sk-SK.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Slovak translation
+ * Author: Jozef Dúc<jozef.d13@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['sk-SK'] = {
+        formatLoadingMessage: function () {
+            return 'Prosím čakajte ...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' záznamov na stranu';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Zobrazená ' + pageFrom + '. - ' + pageTo + '. položka z celkových ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Vyhľadávanie';
+        },
+        formatNoMatches: function () {
+            return 'Nenájdená žiadne vyhovujúca položka';
+        },
+        formatRefresh: function () {
+            return 'Obnoviť';
+        },
+        formatToggle: function () {
+            return 'Prepni';
+        },
+        formatColumns: function () {
+            return 'Stĺpce';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sk-SK']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-sk-SK.min.js b/js/table/locale/bootstrap-table-sk-SK.min.js
new file mode 100644
index 0000000..4a1218e
--- /dev/null
+++ b/js/table/locale/bootstrap-table-sk-SK.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["sk-SK"]={formatLoadingMessage:function(){return"Prosím čakajte ..."},formatRecordsPerPage:function(a){return a+" záznamov na stranu"},formatShowingRows:function(a,b,c){return"Zobrazená "+a+". - "+b+". položka z celkových "+c},formatSearch:function(){return"Vyhľadávanie"},formatNoMatches:function(){return"Nenájdená žiadne vyhovujúca položka"},formatRefresh:function(){return"Obnoviť"},formatToggle:function(){return"Prepni"},formatColumns:function(){return"Stĺpce"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["sk-SK"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-sv-SE.js b/js/table/locale/bootstrap-table-sv-SE.js
new file mode 100644
index 0000000..67b8eb4
--- /dev/null
+++ b/js/table/locale/bootstrap-table-sv-SE.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Swedish translation
+ * Author: C Bratt <bratt@inix.se>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['sv-SE'] = {
+        formatLoadingMessage: function () {
+            return 'Laddar, vänligen vänta...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rader per sida';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Visa ' + pageFrom + ' till ' + pageTo + ' av ' + totalRows + ' rader';
+        },
+        formatSearch: function () {
+            return 'Sök';
+        },
+        formatNoMatches: function () {
+            return 'Inga matchande resultat funna.';
+        },
+        formatRefresh: function () {
+            return 'Uppdatera';
+        },
+        formatToggle: function () {
+            return 'Skifta';
+        },
+        formatColumns: function () {
+            return 'kolumn';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sv-SE']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-sv-SE.min.js b/js/table/locale/bootstrap-table-sv-SE.min.js
new file mode 100644
index 0000000..0dbfd17
--- /dev/null
+++ b/js/table/locale/bootstrap-table-sv-SE.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["sv-SE"]={formatLoadingMessage:function(){return"Laddar, vänligen vänta..."},formatRecordsPerPage:function(a){return a+" rader per sida"},formatShowingRows:function(a,b,c){return"Visa "+a+" till "+b+" av "+c+" rader"},formatSearch:function(){return"Sök"},formatNoMatches:function(){return"Inga matchande resultat funna."},formatRefresh:function(){return"Uppdatera"},formatToggle:function(){return"Skifta"},formatColumns:function(){return"kolumn"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["sv-SE"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-th-TH.js b/js/table/locale/bootstrap-table-th-TH.js
new file mode 100644
index 0000000..9382168
--- /dev/null
+++ b/js/table/locale/bootstrap-table-th-TH.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Thai translation
+ * Author: Monchai S.<monchais@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['th-TH'] = {
+        formatLoadingMessage: function () {
+            return 'กำลังโหลดข้อมูล, กรุณารอสักครู่...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' รายการต่อหน้า';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'รายการที่ ' + pageFrom + ' ถึง ' + pageTo + ' จากทั้งหมด ' + totalRows + ' รายการ';
+        },
+        formatSearch: function () {
+            return 'ค้นหา';
+        },
+        formatNoMatches: function () {
+            return 'ไม่พบรายการที่ค้นหา !';
+        },
+        formatRefresh: function () {
+            return 'รีเฟรส';
+        },
+        formatToggle: function () {
+            return 'สลับมุมมอง';
+        },
+        formatColumns: function () {
+            return 'คอลัมน์';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['th-TH']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-th-TH.min.js b/js/table/locale/bootstrap-table-th-TH.min.js
new file mode 100644
index 0000000..1c842c0
--- /dev/null
+++ b/js/table/locale/bootstrap-table-th-TH.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["th-TH"]={formatLoadingMessage:function(){return"กำลังโหลดข้อมูล, กรุณารอสักครู่..."},formatRecordsPerPage:function(a){return a+" รายการต่อหน้า"},formatShowingRows:function(a,b,c){return"รายการที่ "+a+" ถึง "+b+" จากทั้งหมด "+c+" รายการ"},formatSearch:function(){return"ค้นหา"},formatNoMatches:function(){return"ไม่พบรายการที่ค้นหา !"},formatRefresh:function(){return"รีเฟรส"},formatToggle:function(){return"สลับมุมมอง"},formatColumns:function(){return"คอลัมน์"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["th-TH"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-tr-TR.js b/js/table/locale/bootstrap-table-tr-TR.js
new file mode 100644
index 0000000..df38a79
--- /dev/null
+++ b/js/table/locale/bootstrap-table-tr-TR.js
@@ -0,0 +1,41 @@
+/**
+ * Bootstrap Table Turkish translation
+ * Author: Emin Şen
+ * Author: Sercan Cakir <srcnckr@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['tr-TR'] = {
+        formatLoadingMessage: function () {
+            return 'Yükleniyor, lütfen bekleyin...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return 'Sayfa başına ' + pageNumber + ' kayıt.';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return totalRows + ' kayıttan ' + pageFrom + '-' + pageTo + ' arası gösteriliyor.';
+        },
+        formatSearch: function () {
+            return 'Ara';
+        },
+        formatNoMatches: function () {
+            return 'Eşleşen kayıt bulunamadı.';
+        },
+        formatRefresh: function () {
+            return 'Yenile';
+        },
+        formatToggle: function () {
+            return 'Değiştir';
+        },
+        formatColumns: function () {
+            return 'Sütunlar';
+        },
+        formatAllRows: function () {
+            return 'Tüm Satırlar';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['tr-TR']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-tr-TR.min.js b/js/table/locale/bootstrap-table-tr-TR.min.js
new file mode 100644
index 0000000..c7020db
--- /dev/null
+++ b/js/table/locale/bootstrap-table-tr-TR.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["tr-TR"]={formatLoadingMessage:function(){return"Yükleniyor, lütfen bekleyin..."},formatRecordsPerPage:function(a){return"Sayfa başına "+a+" kayıt."},formatShowingRows:function(a,b,c){return c+" kayıttan "+a+"-"+b+" arası gösteriliyor."},formatSearch:function(){return"Ara"},formatNoMatches:function(){return"Eşleşen kayıt bulunamadı."},formatRefresh:function(){return"Yenile"},formatToggle:function(){return"Değiştir"},formatColumns:function(){return"Sütunlar"},formatAllRows:function(){return"Tüm Satırlar"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["tr-TR"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-uk-UA.js b/js/table/locale/bootstrap-table-uk-UA.js
new file mode 100644
index 0000000..59228f2
--- /dev/null
+++ b/js/table/locale/bootstrap-table-uk-UA.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Ukrainian translation
+ * Author: Vitaliy Timchenko <vitaliy.timchenko@gmail.com>
+ */
+ (function ($) {
+    'use strict';
+    
+    $.fn.bootstrapTable.locales['uk-UA'] = {
+        formatLoadingMessage: function () {
+            return 'Завантаження, будь ласка, зачекайте...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' записів на сторінку';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Показано з ' + pageFrom + ' по ' + pageTo + '. Всього: ' + totalRows;
+        },
+        formatSearch: function () {
+            return 'Пошук';
+        },
+        formatNoMatches: function () {
+            return 'Не знайдено жодного запису';
+        },
+        formatRefresh: function () {
+            return 'Оновити';
+        },
+        formatToggle: function () {
+            return 'Змінити';
+        },
+        formatColumns: function () {
+            return 'Стовпці';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['uk-UA']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-uk-UA.min.js b/js/table/locale/bootstrap-table-uk-UA.min.js
new file mode 100644
index 0000000..311fe59
--- /dev/null
+++ b/js/table/locale/bootstrap-table-uk-UA.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["uk-UA"]={formatLoadingMessage:function(){return"Завантаження, будь ласка, зачекайте..."},formatRecordsPerPage:function(a){return a+" записів на сторінку"},formatShowingRows:function(a,b,c){return"Показано з "+a+" по "+b+". Всього: "+c},formatSearch:function(){return"Пошук"},formatNoMatches:function(){return"Не знайдено жодного запису"},formatRefresh:function(){return"Оновити"},formatToggle:function(){return"Змінити"},formatColumns:function(){return"Стовпці"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["uk-UA"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-ur-PK.js b/js/table/locale/bootstrap-table-ur-PK.js
new file mode 100644
index 0000000..466498c
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ur-PK.js
@@ -0,0 +1,37 @@
+/**
+ * Bootstrap Table Urdu translation
+ * Author: Malik <me@malikrizwan.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ur-PK'] = {
+        formatLoadingMessage: function () {
+            return 'براۓ مہربانی انتظار کیجئے';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' ریکارڈز فی صفہ ';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'دیکھیں ' + pageFrom + ' سے ' + pageTo + ' کے ' +  totalRows + 'ریکارڈز';
+        },
+        formatSearch: function () {
+            return 'تلاش';
+        },
+        formatNoMatches: function () {
+            return 'کوئی ریکارڈ نہیں ملا';
+        },
+        formatRefresh: function () {
+            return 'تازہ کریں';
+        },
+        formatToggle: function () {
+            return 'تبدیل کریں';
+        },
+        formatColumns: function () {
+            return 'کالم';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ur-PK']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-ur-PK.min.js b/js/table/locale/bootstrap-table-ur-PK.min.js
new file mode 100644
index 0000000..46ddeb9
--- /dev/null
+++ b/js/table/locale/bootstrap-table-ur-PK.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["ur-PK"]={formatLoadingMessage:function(){return"براۓ مہربانی انتظار کیجئے"},formatRecordsPerPage:function(a){return a+" ریکارڈز فی صفہ "},formatShowingRows:function(a,b,c){return"دیکھیں "+a+" سے "+b+" کے "+c+"ریکارڈز"},formatSearch:function(){return"تلاش"},formatNoMatches:function(){return"کوئی ریکارڈ نہیں ملا"},formatRefresh:function(){return"تازہ کریں"},formatToggle:function(){return"تبدیل کریں"},formatColumns:function(){return"کالم"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["ur-PK"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-vi-VN.js b/js/table/locale/bootstrap-table-vi-VN.js
new file mode 100644
index 0000000..42c8103
--- /dev/null
+++ b/js/table/locale/bootstrap-table-vi-VN.js
@@ -0,0 +1,28 @@
+/**
+ * Bootstrap Table Vietnamese translation
+ * Author: Duc N. PHAM <pngduc@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['vi-VN'] = {
+        formatLoadingMessage: function () {
+            return 'Đang tải...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' bản ghi mỗi trang';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Hiển thị từ trang ' + pageFrom + ' đến ' + pageTo + ' của ' + totalRows + ' bảng ghi';
+        },
+        formatSearch: function () {
+            return 'Tìm kiếm';
+        },
+        formatNoMatches: function () {
+            return 'Không có dữ liệu';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['vi-VN']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-vi-VN.min.js b/js/table/locale/bootstrap-table-vi-VN.min.js
new file mode 100644
index 0000000..161f65d
--- /dev/null
+++ b/js/table/locale/bootstrap-table-vi-VN.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["vi-VN"]={formatLoadingMessage:function(){return"Đang tải..."},formatRecordsPerPage:function(a){return a+" bản ghi mỗi trang"},formatShowingRows:function(a,b,c){return"Hiển thị từ trang "+a+" đến "+b+" của "+c+" bảng ghi"},formatSearch:function(){return"Tìm kiếm"},formatNoMatches:function(){return"Không có dữ liệu"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["vi-VN"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-zh-CN.js b/js/table/locale/bootstrap-table-zh-CN.js
new file mode 100644
index 0000000..e352922
--- /dev/null
+++ b/js/table/locale/bootstrap-table-zh-CN.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Chinese translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['zh-CN'] = {
+        formatLoadingMessage: function () {
+            return '正在努力地加载数据中,请稍候……';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '每页显示 ' + pageNumber + ' 条记录';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录';
+        },
+        formatSearch: function () {
+            return '搜索';
+        },
+        formatNoMatches: function () {
+            return '没有找到匹配的记录';
+        },
+        formatPaginationSwitch: function () {
+            return '隐藏/显示分页';
+        },
+        formatRefresh: function () {
+            return '刷新';
+        },
+        formatToggle: function () {
+            return '切换';
+        },
+        formatColumns: function () {
+            return '列';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-zh-CN.min.js b/js/table/locale/bootstrap-table-zh-CN.min.js
new file mode 100644
index 0000000..be675e7
--- /dev/null
+++ b/js/table/locale/bootstrap-table-zh-CN.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery);
\ No newline at end of file
diff --git a/js/table/locale/bootstrap-table-zh-TW.js b/js/table/locale/bootstrap-table-zh-TW.js
new file mode 100644
index 0000000..f7cd669
--- /dev/null
+++ b/js/table/locale/bootstrap-table-zh-TW.js
@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Chinese translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['zh-TW'] = {
+        formatLoadingMessage: function () {
+            return '正在努力地載入資料,請稍候……';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '每頁顯示 ' + pageNumber + ' 項記錄';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '顯示第 ' + pageFrom + ' 到第 ' + pageTo + ' 項記錄,總共 ' + totalRows + ' 項記錄';
+        },
+        formatSearch: function () {
+            return '搜尋';
+        },
+        formatNoMatches: function () {
+            return '沒有找符合的結果';
+        },
+        formatPaginationSwitch: function () {
+            return '隱藏/顯示分頁';
+        },
+        formatRefresh: function () {
+            return '刷新';
+        },
+        formatToggle: function () {
+            return '切換';
+        },
+        formatColumns: function () {
+            return '列';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-TW']);
+
+})(jQuery);
diff --git a/js/table/locale/bootstrap-table-zh-TW.min.js b/js/table/locale/bootstrap-table-zh-TW.min.js
new file mode 100644
index 0000000..b12631a
--- /dev/null
+++ b/js/table/locale/bootstrap-table-zh-TW.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.9.1 - 2015-10-25
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2015 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["zh-TW"]={formatLoadingMessage:function(){return"正在努力地載入資料,請稍候……"},formatRecordsPerPage:function(a){return"每頁顯示 "+a+" 項記錄"},formatShowingRows:function(a,b,c){return"顯示第 "+a+" 到第 "+b+" 項記錄,總共 "+c+" 項記錄"},formatSearch:function(){return"搜尋"},formatNoMatches:function(){return"沒有找符合的結果"},formatPaginationSwitch:function(){return"隱藏/顯示分頁"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切換"},formatColumns:function(){return"列"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-TW"])}(jQuery);
\ No newline at end of file
diff --git a/morfeusz/morfeusz.css b/morfeusz/morfeusz.css
new file mode 100644
index 0000000..cb669e2
--- /dev/null
+++ b/morfeusz/morfeusz.css
@@ -0,0 +1,73 @@
+#lexpelement_morfeusz {
+  display: flex;
+  flex-flow: row wrap;
+  /*justify-content: space-around;*/
+  justify-content: center;
+}
+
+#lexpelement_morfeusz .table-container {
+  padding: 15px 10px 5px;
+  min-width: 30%;
+  overflow: auto;
+}
+
+#lexpelement_morfeusz h2 {
+  color: #41423A;
+  font-size: 26px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+}
+
+#lexpelement_morfeusz h2.error {
+  color: crimson;
+}
+
+#lexpelement_morfeusz div.base-form {
+  width: 100%;
+  display: block;
+  padding: 25px 0 0px;
+  color: #41423A;
+  font-size: 18px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+}
+
+#lexpelement_morfeusz table.table-styling {
+  border: none;
+  margin: 20px;
+}
+
+#lexpelement_morfeusz table.table-styling th {
+  text-align: center;
+  background-color: #EAE5E5;
+}
+
+#lexpelement_morfeusz table.table-styling th.no-background {
+  background-color: #F9F9F9;
+}
+#lexpelement_morfeusz table.table-styling .border-top-none {
+  border-top: none;
+}
+
+#lexpelement_morfeusz table.table-styling .border-left {
+  border-left: 2px solid #EAE5E5;
+}
+
+#lexpelement_morfeusz table.table-styling .border-right {
+  border-right: 2px solid #EAE5E5;
+}
+
+#lexpelement_morfeusz table.table-styling .background {
+  background-color: #DADADA;
+  vertical-align: middle;
+}
+
+#lexpelement_morfeusz table .tag-entry {
+  padding: 7px 0;
+}
+
+#lexpelement_morfeusz table .tag-entry.type {
+  max-width: 700px;
+}
+
+#lexpelement_morfeusz table .tag-entry strong {
+  letter-spacing: 1px;
+}
\ No newline at end of file
diff --git a/morfeusz/morfeusz.js b/morfeusz/morfeusz.js
new file mode 100644
index 0000000..28020fd
--- /dev/null
+++ b/morfeusz/morfeusz.js
@@ -0,0 +1,854 @@
+function Morfeusz(data) {
+  this.data = data;
+  console.log(data);
+}
+
+Morfeusz.baseMap = {
+  "subst":"rzeczownik", "depr":"rzeczownik/forma deprecjatywna", "ger":"czasownik/odsłownik", "fin":"czasownik", "inf":"czasownik/bezokolicznik", "adj":"przymiotnik", "adja":"przymiotnik przyprzymiotnikowy", "adv":"przysłówek odprzymiotnikowy i/lub stopniowalny",
+  "sg":"pojedyncza", "pl":"mnoga",
+  "acc":"mianownik", "dat":"dopełniacz", "gen":"celownik", "inst":"biernik", "loc":"narzędnik", "nom":"miejscownik", "voc":"wołacz",
+  "m":"męski", "m1":"męski osobowy", "m2":"męski zwierzęcy", "m3":"męski rzeczowy", "mo":"męskoosobowy", "ż":"żeński", "n1":"nijaki pierwszy", "n2":"nijaki drugi", "p1":"przymnogi osobowy", "p2":"przymnogi drugi", "p3":"przymnogi trzeci",
+  "pos":"równy", "com":"wyższy", "sup":"najwyższy",
+  "imperf":"niedokonany",
+  "neg":"zanegowana",
+  "aff":"niezanegowana"
+};
+
+getBaseData = function(data) {
+  let result = new Array();
+
+  $(data).each(function(index, element) {
+    let resultData = '';
+    if (element.indexOf('.' > -1)) {
+      let arr = element.split('.');
+      $(arr).each(function(index2, element2) {
+        if (element2 in Morfeusz.baseMap) {
+          index2 != arr.length - 1 ? resultData += Morfeusz.baseMap[element2] + ", " : resultData += Morfeusz.baseMap[element2];
+        }
+      });
+      result.push(resultData);
+    } else {
+      element in Morfeusz.baseMap ? result.push(Morfeusz.baseMap[element]) : result.push('-');
+    }
+  });
+
+  return result;
+}
+
+Morfeusz.prototype.showBaseForm = function(data) {
+  // console.log(data);
+  if (window.location.href.split("/")[3] == 'orth') {
+    if (data[0].length > 0) {
+      let originalForm = $('#phrase').val(),
+          baseForm = data[0][1],
+          tableData = '',
+          language = window.location.href.split("/")[4];
+
+      $(data).each(function(index, element) {
+        let dataArr = element[2].split(':'),
+            entries = getBaseData(dataArr),
+            grammarCases = '',
+            type = '',
+            aspect = '',
+            negation = '';
+
+        if (entries[2] != '' && entries[2] != undefined && entries[2] != null) {
+          grammarCases = '<p class="tag-entry"><strong>Przypadek: </strong>' + entries[2] + '</p>';
+        }
+
+        if (entries[3] != '' && entries[3] != undefined && entries[4] != null) {
+          type = '<p class="tag-entry type"><strong>Rodzaj: </strong>' + entries[3] + '</p>';
+        }
+
+        if (entries[4] != '' && entries[4] != undefined && entries[4] != null) {
+          aspect = '<p class="tag-entry"><strong>Aspekt: </strong>' + entries[4] + '</p>';
+        }
+
+        if (entries[5] != '' && entries[5] != undefined && entries[5] != null) {
+          negation = '<p class="tag-entry"><strong>Zanegowanie: </strong>' + entries[5] + '</p>';
+        }
+
+        tableData +=
+          '<tr>' +
+            '<td>' + element[0] + '</td>' +
+            '<td><a href="/lemma/' + language + '/' + element[1] + '">' + element[1] + '</a></td>' +
+            '<td>' + element[2] + '</td>' +
+            '<td>' +
+              '<p class="tag-entry"><strong>Leksem/fleksem: </strong>' + entries[0] + '</p>' +
+              '<p class="tag-entry"><strong>Liczba: </strong>' + entries[1] + '</p>' +
+              grammarCases +
+              type +
+              aspect +
+              negation +
+            '</td>' +
+          '</tr>';
+      });
+
+      let tableContent =
+        '<div class="table-container">' +
+          '<h2><span lang="pl">Forma tekstowa</span><span lang="en">Text form</span></h2>' +
+          '<table class="table table-striped table-styling">' +
+            '<thead>' +
+              '<tr>' +
+                '<th class="border-left"><span lang="pl">Forma wyrazowa</span><span lang="en">Word form</span></th>' +
+                '<th><span lang="pl">Forma bazowa</span><span lang="en">Base form</span></th>' +
+                '<th>Tag</th>' +
+                '<th><span lang="pl">Znaczenie tagu</span><span lang="en">Description of tag</span></th>' +
+              '</tr>' +
+            '</thead>' +
+            '<tbody>' +
+              tableData
+            '</tbody>' +
+          '</table>' +
+        '</div>';
+
+      if (tableData == '') {
+        return false;
+      }
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+  }
+  return false;
+}
+
+Morfeusz.prototype.showIndicativePresent = function(data) {
+  // Step 1 - get table of only fin elements
+  let table = new Array
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('fin:') > -1) {
+      table.push(element);
+    }
+  });
+
+  // Step 2 - prepare data
+  let singularOne = '-', singularTwo = '-', singularThree = '-', pluralOne = '-', pluralTwo = '-', pluralThree = '-';
+
+  table.map(function(element, index) {
+    if (element[2].indexOf('sg:pri') > -1) { singularOne = element[0]; }
+    if (element[2].indexOf('sg:sec') > -1) { singularTwo = element[0]; }
+    if (element[2].indexOf('sg:ter') > -1) { singularThree = element[0]; }
+    if (element[2].indexOf('pl:pri') > -1) { pluralOne = element[0]; }
+    if (element[2].indexOf('pl:sec') > -1) { pluralTwo = element[0]; }
+    if (element[2].indexOf('pl:ter') > -1) { pluralThree = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Tryb oznajmujący - czas teraźniejszy</span><span lang="en">Declarative mode - present tense</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">1 os.</span><span lang="en">1 p.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularOne + '">' + singularOne + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralOne + '">' + pluralOne + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">2 os.</span><span lang="en">2 p.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularTwo + '">' + singularTwo + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralTwo + '">' + pluralTwo + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">3 os.</span><span lang="en">3 p.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularThree + '">' + singularThree + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralThree + '">' + pluralThree + '</a></td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+    if (singularOne != '-' || singularTwo != '-' || singularThree != '-' || pluralOne != '-' || pluralTwo != '-' || pluralThree != '-') {
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+    return false;
+}
+
+Morfeusz.prototype.showIndicativePast = function(data) {
+  // Step 1 - get table of only praet | imps elements
+  let table = new Array,
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('praet:') > -1 || element[2].indexOf('imps:') > -1) {
+      table.push(element);
+    }
+  });
+
+  // Step 2 - prepare data
+  let bezosobnik = '-', singularThreeM = '-', singularThreeF = '-', singularThreeN = '-', singularThreeMO = '-', singularThreeMO2 = '-';
+
+  table.map(function(element, index) {
+    if (element[2].indexOf('imps:imperf') > -1) { bezosobnik = element[0]; }
+    if (element[2].indexOf('sg:m1.m2.m3') > -1) { singularThreeM = element[0]; }
+    if (element[2].indexOf('sg:f') > -1) { singularThreeF = element[0]; }
+    if (element[2].indexOf('sg:n1.n2') > -1) { singularThreeN = element[0]; }
+    if (element[2].indexOf('pl:m1.p1') > -1) { singularThreeMO = element[0]; }
+    if (element[2].indexOf('pl:m2.m3.f.n1.n2.p2.p3') > -1) { singularThreeMO2 = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Tryb oznajmujący - czas przeszły</span><span lang="en">Declarative mode - past tense</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th class="border-left" colspan="3"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th colspan="2"><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none"></td>' +
+            '<td class="border-left background"><span lang="pl">m</span><span lang="en">m</span></td>' +
+            '<td class="background"><span lang="pl">ż</span><span lang="en">f</span></td>' +
+            '<td class="border-right background"><span lang="pl">n</span><span lang="en">n</span></td>' +
+            '<td class="background"><span lang="pl">mo</span><span lang="en">mp</span></td>' +
+            '<td class="background"><span lang="pl">-mo</span><span lang="en">-mp</span></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">3 os.</span><span lang="en">3 p.</span></td>' +
+            '<td class="border-left"><a href="/orth/' + lang + '/' + singularThreeM + '">' + singularThreeM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularThreeF + '">' + singularThreeF + '</a></td>' +
+            '<td class="border-right"><a href="/orth/' + lang + '/' + singularThreeN + '">' + singularThreeN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularThreeMO + '">' + singularThreeMO + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularThreeMO2 + '">' + singularThreeMO2 + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td></td>' +
+            '<td class="border-left border-right" colspan="3"><span lang="pl">Bezosobnik</span><span lang="en">Bezosobnik</span></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + bezosobnik + '">' + bezosobnik + '</a></td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+    if (bezosobnik != '-' || singularThreeM != '-' || singularThreeF != '-' || singularThreeN != '-' || singularThreeMO != '-' || singularThreeMO2 != '-') {
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+    return false;
+}
+
+Morfeusz.prototype.showImperative = function(data) {
+  // Step 1 - get table of only impt elements
+  let table = new Array,
+    lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('impt:') > -1) {
+      table.push(element);
+    }
+  });
+
+  // Step 2 - prepare data
+  let singularOne = '-', singularTwo = '-', pluralOne = '-', pluralTwo = '-';
+
+  table.map(function(element, index) {
+    if (element[2].indexOf('sg:pri') > -1) { singularOne = element[0]; }
+    if (element[2].indexOf('sg:sec') > -1) { singularTwo = element[0]; }
+    if (element[2].indexOf('pl:pri') > -1) { pluralOne = element[0]; }
+    if (element[2].indexOf('pl:sec') > -1) { pluralTwo = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Tryb rozkazujący</span><span lang="en">Imperative</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">1 os.</span><span lang="en">1 p.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularOne + '">' + singularOne + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralOne + '">' + pluralOne + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">2 os.</span><span lang="en">2 p.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularTwo + '">' + singularTwo + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralTwo + '">' + pluralTwo + '</a></td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+    if (singularOne != '-' || singularTwo != '-' || pluralOne != '-' || pluralTwo != '-') {
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+    return false;
+}
+
+Morfeusz.prototype.showLanguageCase = function(data) {
+  // Step 1 - get table of only subst elements
+  let table = new Array,
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('subst:') > -1) {
+      table.push(element);
+    }
+  });
+
+  console.log(data)
+  // Step 2 - prepare data
+  let singularM = '-', singularD = '-', singularC = '-', singularB = '-', singularN = '-', singularMs = '-', singularW = '-',
+      pluralM = '-', pluralD = '-', pluralC = '-', pluralB = '-', pluralN = '-', pluralMs = '-', pluralW = '-';
+
+  table.map(function(element, index) {
+    if (element[2].indexOf('sg:acc') > -1) { singularB = element[0]; }
+    if (element[2].indexOf('sg:dat') > -1) { singularC = element[0]; }
+    if (element[2].indexOf('sg:gen') > -1) { singularD = element[0]; }
+    if (element[2].indexOf('sg:inst') > -1) { singularN = element[0]; }
+    if (element[2].indexOf('sg:loc') > -1) { singularMs = element[0]; }
+    if (element[2].indexOf('sg:nom') > -1) { singularM = element[0]; }
+    if (element[2].indexOf('sg:voc') > -1) { singularW = element[0]; }
+    if (element[2].indexOf('pl:acc') > -1) { pluralB = element[0]; }
+    if (element[2].indexOf('pl:dat') > -1) { pluralC = element[0]; }
+    if (element[2].indexOf('pl:gen') > -1) { pluralD = element[0]; }
+    if (element[2].indexOf('pl:inst') > -1) { pluralN = element[0]; }
+    if (element[2].indexOf('pl:loc') > -1) { pluralMs = element[0]; }
+    if (element[2].indexOf('pl:nom') > -1) { pluralM = element[0]; }
+    if (element[2].indexOf('pl:voc') > -1) { pluralW = element[0]; }
+  });
+
+  
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Przypadki</span><span lang="en">Cases</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">M.</span><span lang="en">M.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularM + '">' + singularM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralM + '">' + pluralM + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">D.</span><span lang="en">D.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularD + '">' + singularD + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralD + '">' + pluralD + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">C.</span><span lang="en">C.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularC + '">' + singularC + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralC + '">' + pluralC + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">B.</span><span lang="en">B.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularB + '">' + singularB + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralB + '">' + pluralB + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">N.</span><span lang="en">N.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularN + '">' + singularN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralN + '">' + pluralN + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">Ms.</span><span lang="en">Ms.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularMs + '">' + singularMs + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralMs + '">' + pluralMs + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">W.</span><span lang="en">W.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularW + '">' + singularW + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralW + '">' + pluralW + '</a></td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+    if (singularM != '-' || singularD != '-' || singularC != '-' || singularB != '-' || singularN != '-' || singularMs != '-' || singularW != '-' || pluralM != '-' || pluralD != '-' || pluralC != '-' || pluralB != '-' ||
+        pluralN != '-' || pluralMs != '-' || pluralW != '-') {
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+    return false;
+}
+
+Morfeusz.prototype.showLanguageCase2 = function(data, negative) {
+  // Step 1 - get table of only ger elements
+  let table = new Array,
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('ger:') > -1) {
+      table.push(element);
+    }
+  });
+
+  // Step 2 - prepare data
+  let singularM = '-', singularD = '-', singularC = '-', singularB = '-', singularN = '-', singularMs = '-', singularW = '-',
+      pluralM = '-', pluralD = '-', pluralC = '-', pluralB = '-', pluralN = '-', pluralMs = '-', pluralW = '-';
+
+  table.map(function(element, index) {
+    let negative2 = true;
+    if (negative) {
+      negative2 = element[2].indexOf(':neg') > -1;
+    }
+    console.log('na koncu kazdego bylo :aff, ale usunalem bo :neg nie dzialalo - mozna porobic lancuch z tego easy - todo poniedzialek');
+    if ((element[2].indexOf('sg:nom.acc:n2') > -1) && (negative2)) { singularM = element[0]; }
+    if ((element[2].indexOf('sg:gen:n2') > -1) && (negative2)) { singularD = element[0]; }
+    if ((element[2].indexOf('sg:dat.loc:n2') > -1) && (negative2)) { singularC = element[0]; }
+    if ((element[2].indexOf('sg:nom.acc:n2') > -1) && (negative2)) { singularB = element[0]; }
+    if ((element[2].indexOf('sg:inst:n2') > -1) && (negative2)) { singularN = element[0]; }
+    if ((element[2].indexOf('sg:dat.loc:n2') > -1) && (negative2)) { singularMs = element[0]; }
+    if ((element[2].indexOf('sg:nom.acc:n2') > -1) && (negative2)) { singularW = element[0]; }
+    if ((element[2].indexOf('pl:nom.acc:n2') > -1) && (negative2)) { pluralM = element[0]; }
+    if ((element[2].indexOf('pl:gen:n2') > -1) && (negative2)) { pluralD = element[0]; }
+    if ((element[2].indexOf('pl:dat.loc:n2') > -1) && (negative2)) { pluralC = element[0]; }
+    if ((element[2].indexOf('pl:nom.acc:n2') > -1) && (negative2)) { pluralB = element[0]; }
+    if ((element[2].indexOf('pl:inst:n2') > -1) && (negative2)) { pluralN = element[0]; }
+    if ((element[2].indexOf('?????????????????????') > -1) && (negative2)) { pluralMs = element[0]; }
+    if ((element[2].indexOf('pl:nom.acc:n2') > -1) && (negative2)) { pluralW = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Przypadki 2</span><span lang="en">Cases 2</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">M.</span><span lang="en">M.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularM + '">' + singularM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralM + '">' + pluralM + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">D.</span><span lang="en">D.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularD + '">' + singularD + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralD + '">' + pluralD + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">C.</span><span lang="en">C.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularC + '">' + singularC + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralC + '">' + pluralC + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">B.</span><span lang="en">B.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularB + '">' + singularB + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralB + '">' + pluralB + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">N.</span><span lang="en">N.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularN + '">' + singularN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralN + '">' + pluralN + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">Ms.</span><span lang="en">Ms.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularMs + '">' + singularMs + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralMs + '">' + pluralMs + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td><span lang="pl">W.</span><span lang="en">W.</span></td>' +
+            '<td class="border-left border-right"><a href="/orth/' + lang + '/' + singularW + '">' + singularW + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralW + '">' + pluralW + '</a></td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+  if (singularM != '-' || singularD != '-' || singularC != '-' || singularB != '-' || singularN != '-' || singularMs != '-' || singularW != '-' || pluralM != '-' ||
+      pluralD != '-' || pluralC != '-' || pluralB != '-' || pluralN != '-' || pluralMs != '-' || pluralW != '-') {
+    $('#lexpelement_morfeusz').append(tableContent);
+    return true;
+  }
+  return false;
+}
+
+Morfeusz.prototype.showExtendedLanguageCase = function(data, negative) {
+  // Step 1 - get table of only ppas | imps elements
+  let table = new Array, advanced = '',
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('ppas:') > -1) {
+      table.push(element);
+    }
+    if (element[2].indexOf('imps:imperf') > -1) {
+      advanced = element[0];
+    }
+  });
+
+  // Step 2 - prepare data
+  let singularMM = '-', singularMN = '-', singularMZ = '-', singularD = '-', singularDZ = '-', singularC = '-', singularCZ = '-', singularBM = '-', singularBM3 = '-', singularBN = '-', singularBZ = '-',
+      singularN = '-', singularNZ = '-', singularMs = '-', singularMsZ = '-', pluralMPM = '-', pluralMMO = '-', pluralD = '-', pluralC = '-', pluralBPM = '-', pluralBMO = '-', pluralN = '-', pluralMs = '-';
+
+  table.map(function(element, index) {
+    let negative2 = true;
+    if (negative) {
+      negative2 = element[2].indexOf(':neg') > -1;
+      // negative2 = element[2].indexOf(':neg') === -1;
+    }
+    if ((element[2].indexOf('sg:acc:m3') > -1) && (negative2)) { singularMM = element[0]; }
+    if ((element[2].indexOf('sg:nom.acc.voc:n1.n2') > -1) && (negative2)) { singularMN = element[0]; }
+    if ((element[2].indexOf('sg:nom.voc:f') > -1) && (negative2)) { singularMZ = element[0]; }
+    if ((element[2].indexOf('pl:nom.voc:m1.p1') > -1) && (negative2)) { pluralMPM = element[0]; }
+    if ((element[2].indexOf('pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3') > -1) && (negative2)) { pluralMMO = element[0]; }
+
+    if ((element[2].indexOf('sg:acc:m1.m2') > -1) && (negative2)) { singularD = element[0]; }
+    if ((element[2].indexOf('sg:gen.dat.loc:f') > -1) && (negative2)) { singularDZ = element[0]; }
+    if ((element[2].indexOf('pl:acc:m1.p1') > -1) && (negative2)) { pluralD = element[0]; }
+
+    if ((element[2].indexOf('sg:dat:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularC = element[0]; }
+    if ((element[2].indexOf('sg:gen.dat.loc:f') > -1) && (negative2)) { singularCZ = element[0]; }
+    if ((element[2].indexOf('pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralC = element[0]; }
+
+    if ((element[2].indexOf('sg:acc:m1.m2') > -1) && (negative2)) { singularBM = element[0]; }
+    if ((element[2].indexOf('sg:acc:m3') > -1) && (negative2)) { singularBM3 = element[0]; }
+    if ((element[2].indexOf('sg:nom.acc.voc:n1.n2') > -1) && (negative2)) { singularBN = element[0]; }
+    if ((element[2].indexOf('sg:acc.inst:f') > -1) && (negative2)) { singularBZ = element[0]; }
+    if ((element[2].indexOf('pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralBPM = element[0]; }
+    if ((element[2].indexOf('pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3') > -1) && (negative2)) { pluralBMO = element[0]; }
+
+    if ((element[2].indexOf('sg:inst.loc:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularN = element[0]; }
+    if ((element[2].indexOf('sg:acc.inst:f') > -1) && (negative2)) { singularNZ = element[0]; }
+    if ((element[2].indexOf('pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralN = element[0]; }
+
+    if ((element[2].indexOf('sg:inst.loc:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularMs = element[0]; }
+    if ((element[2].indexOf('sg:gen.dat.loc:f') > -1) && (negative2)) { singularMsZ = element[0]; }
+    if ((element[2].indexOf('pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralMs = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Przypadki (Z)</span><span lang="en">Cases (A)</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th colspan="5" class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th colspan="4"><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td rowspan="2" class="border-top-none"></td>' +
+            '<td rowspan="2" class="border-left background"><span lang="pl">m1</span><span lang="en">m1</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">m2</span><span lang="en">m2</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">m3</span><span lang="en">m3</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">n1,n2</span><span lang="en">n1,n2</span></td>' +
+            '<td rowspan="2" class="border-right background"><span lang="pl">ż</span><span lang="en">ż</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">p1</span><span lang="en">p1</span></td>' +
+            '<td colspan="2" class="background"><span lang="pl">m1</span><span lang="en">m1</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">pozostałe</span><span lang="en">other</span></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="background border-top-none"><span lang="pl">ndepr</span><span lang="en">ndepr</span></td>' +
+            '<td class="background border-top-none"><span lang="pl">depr</span><span lang="en">depr</span></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">M./(W.)</span><span lang="en">M./(W.)</span></td>' +
+            '<td colspan="3" class="border-left border-right"><a href="/orth/' + lang + '/' + singularMM + '">' + singularMM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMN + '">' + singularMN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMZ + '">' + singularMZ + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralMPM + '">' + pluralMPM + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralMMO + '">' + pluralMMO + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">D.</span><span lang="en">D.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularD + '">' + singularD + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularDZ + '">' + singularDZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralD + '">' + pluralD + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">C.</span><span lang="en">C.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularC + '">' + singularC + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularCZ + '">' + singularCZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralC + '">' + pluralC + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">B.</span><span lang="en">B.</span></td>' +
+            '<td colspan="2" class="border-left border-right"><a href="/orth/' + lang + '/' + singularBM + '">' + singularBM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBM3 + '">' + singularBM3 + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBN + '">' + singularBN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBZ + '">' + singularBZ + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralBPM + '">' + pluralBPM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralBMO + '">' + pluralBMO + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">N.</span><span lang="en">N.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularN + '">' + singularN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularNZ + '">' + singularNZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralN + '">' + pluralN + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">Ms.</span><span lang="en">Ms.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularMs + '">' + singularMs + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMsZ + '">' + singularMsZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralMs + '">' + pluralMs + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">Złoż.</span><span lang="en">Złoż.</span></td>' +
+            '<td colspan="9"><a href="/orth/' + lang + '/' + advanced + '">' + advanced + '</a>+</td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+  if (singularMM != '-' || singularMN != '-' || singularMZ != '-' || singularD != '-' || singularDZ != '-' || singularC != '-' || singularCZ != '-' || singularBM != '-' || singularBM3 != '-' || singularBN != '-' || singularBZ != '-' ||
+      singularN != '-' || singularNZ != '-' || singularMs != '-' || singularMsZ != '-' || pluralMPM != '-' || pluralMMO != '-' || pluralD != '-' || pluralC != '-' || pluralBPM != '-' || pluralBMO != '-' || pluralN != '-' || pluralMs != '-') {
+    $('#lexpelement_morfeusz').append(tableContent);
+    return true;
+  }
+  return false;
+}
+
+Morfeusz.prototype.showExtendedLanguageCase2 = function(data, negative) {
+  // Step 1 - get table of only adj | adja elements
+  let table = new Array, advanced = '',
+      lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('adj:') > -1) {
+      table.push(element);
+    }
+    if (element[2].indexOf('adja') > -1) {
+      advanced = element[0];
+    }
+  });
+
+  // Step 2 - prepare data
+  let singularMM = '-', singularMN = '-', singularMZ = '-', singularD = '-', singularDZ = '-', singularC = '-', singularCZ = '-', singularBM = '-', singularBM3 = '-', singularBN = '-', singularBZ = '-', singularN = '-',
+      singularNZ = '-', singularMs = '-', singularMsZ = '-', pluralMPM = '-', pluralMMO = '-', pluralD = '-', pluralC = '-', pluralBPM = '-', pluralBMO = '-', pluralN = '-', pluralMs = '-';
+
+  table.map(function(element, index) {
+    let negative2 = true;
+    if (negative) {
+      negative2 = element[2].indexOf(':neg') > -1;
+      // negative2 = element[2].indexOf(':neg') === -1;
+    }
+    if ((element[2].indexOf('sg:nom.voc:m1.m2.m3') > -1) && (negative2)) { singularMM = element[0]; }
+    if ((element[2].indexOf('sg:nom.voc:n1.n2') > -1) && (negative2)) { singularMN = element[0]; }
+    if ((element[2].indexOf('sg:nom.voc:f') > -1) && (negative2)) { singularMZ = element[0]; }
+    if ((element[2].indexOf('pl:nom.voc:m1.p1') > -1) && (negative2)) { pluralMPM = element[0]; }
+    if ((element[2].indexOf('pl:nom.voc:m2.m3.f.n1.n2.p2.p3') > -1) && (negative2)) { pluralMMO = element[0]; }
+
+    if ((element[2].indexOf('sg:gen:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularD = element[0]; }
+    if ((element[2].indexOf('sg:gen:f') > -1) && (negative2)) { singularDZ = element[0]; }
+    if ((element[2].indexOf('pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralD = element[0]; }
+
+    if ((element[2].indexOf('sg:dat:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularC = element[0]; }
+    if ((element[2].indexOf('sg:dat:f') > -1) && (negative2)) { singularCZ = element[0]; }
+    if ((element[2].indexOf('pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralC = element[0]; }
+
+    if ((element[2].indexOf('sg:acc:m1.m2') > -1) && (negative2)) { singularBM = element[0]; }
+    if ((element[2].indexOf('sg:acc:m3') > -1) && (negative2)) { singularBM3 = element[0]; }
+    if ((element[2].indexOf('sg:acc:n1.n2') > -1) && (negative2)) { singularBN = element[0]; }
+    if ((element[2].indexOf('sg:acc:f') > -1) && (negative2)) { singularBZ = element[0]; }
+    if ((element[2].indexOf('pl:acc:m1.p1') > -1) && (negative2)) { pluralBPM = element[0]; }
+    if ((element[2].indexOf('pl:acc:m2.m3.f.n1.n2.p2.p3') > -1) && (negative2)) { pluralBMO = element[0]; }
+
+    if ((element[2].indexOf('sg:inst:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularN = element[0]; }
+    if ((element[2].indexOf('sg:inst:f') > -1) && (negative2)) { singularNZ = element[0]; }
+    if ((element[2].indexOf('pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralN = element[0]; }
+
+    if ((element[2].indexOf('sg:loc:m1.m2.m3.n1.n2') > -1) && (negative2)) { singularMs = element[0]; }
+    if ((element[2].indexOf('sg:loc:f') > -1) && (negative2)) { singularMsZ = element[0]; }
+    if ((element[2].indexOf('pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3') > -1) && (negative2)) { pluralMs = element[0]; }
+  });
+
+  // Step 3 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Przypadki (Z) 2</span><span lang="en">Cases (A) 2</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="no-background"></th>' +
+            '<th colspan="5" class="border-left"><span lang="pl">l.p.</span><span lang="en">Singular</span></th>' +
+            '<th colspan="4"><span lang="pl">l.m.</span><span lang="en">Plural</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td rowspan="2" class="border-top-none"></td>' +
+            '<td rowspan="2" class="border-left background"><span lang="pl">m1</span><span lang="en">m1</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">m2</span><span lang="en">m2</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">m3</span><span lang="en">m3</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">n1,n2</span><span lang="en">n1,n2</span></td>' +
+            '<td rowspan="2" class="border-right background"><span lang="pl">ż</span><span lang="en">ż</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">p1</span><span lang="en">p1</span></td>' +
+            '<td colspan="2" class="background"><span lang="pl">m1</span><span lang="en">m1</span></td>' +
+            '<td rowspan="2" class="background"><span lang="pl">pozostałe</span><span lang="en">other</span></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="background border-top-none"><span lang="pl">ndepr</span><span lang="en">ndepr</span></td>' +
+            '<td class="background border-top-none"><span lang="pl">depr</span><span lang="en">depr</span></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">M./(W.)</span><span lang="en">M./(W.)</span></td>' +
+            '<td colspan="3" class="border-left border-right"><a href="/orth/' + lang + '/' + singularMM + '">' + singularMM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMN + '">' + singularMN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMZ + '">' + singularMZ + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralMPM + '">' + pluralMPM + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralMMO + '">' + pluralMMO + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">D.</span><span lang="en">D.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularD + '">' + singularD + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularDZ + '">' + singularDZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralD + '">' + pluralD + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">C.</span><span lang="en">C.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularC + '">' + singularC + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularCZ + '">' + singularCZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralC + '">' + pluralC + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">B.</span><span lang="en">B.</span></td>' +
+            '<td colspan="2" class="border-left border-right"><a href="/orth/' + lang + '/' + singularBM + '">' + singularBM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBM3 + '">' + singularBM3 + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBN + '">' + singularBN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularBZ + '">' + singularBZ + '</a></td>' +
+            '<td colspan="2"><a href="/orth/' + lang + '/' + pluralBPM + '">' + pluralBPM + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + pluralBMO + '">' + pluralBMO + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">N.</span><span lang="en">N.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularN + '">' + singularN + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularNZ + '">' + singularNZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralN + '">' + pluralN + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">Ms.</span><span lang="en">Ms.</span></td>' +
+            '<td colspan="4" class="border-left border-right"><a href="/orth/' + lang + '/' + singularMs + '">' + singularMs + '</a></td>' +
+            '<td><a href="/orth/' + lang + '/' + singularMsZ + '">' + singularMsZ + '</a></td>' +
+            '<td colspan="4"><a href="/orth/' + lang + '/' + pluralMs + '">' + pluralMs + '</a></td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-top-none"><span lang="pl">Złoż.</span><span lang="en">Złoż.</span></td>' +
+            '<td colspan="9"><a href="/orth/' + lang + '/' + advanced + '">' + advanced + '</a>+</td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+  if (singularMM != '-' || singularMN != '-' || singularMZ != '-' || singularD != '-' || singularDZ != '-' || singularC != '-' || singularCZ != '-' || singularBM != '-' || singularBM3 != '-' || singularBN != '-' || singularBZ != '-' ||
+      singularN != '-' || singularNZ != '-' || singularMs != '-' || singularMsZ != '-' || pluralMPM != '-' || pluralMMO != '-' || pluralD != '-' || pluralC != '-' || pluralBPM != '-' || pluralBMO != '-' || pluralN != '-' || pluralMs != '-') {
+    $('#lexpelement_morfeusz').append(tableContent);
+    return true;
+  }
+  return false;
+}
+
+Morfeusz.prototype.showOthers = function(data) {
+  // Step 1 - prepare data
+  let infinitive = '-', contemporaryAdverbialParticiple = '-', lang = $('#lang').val();
+
+  data.map(function(element, index) {
+    if (element[2].indexOf('inf:imperf') > -1) { infinitive = element[0]; }
+    if (element[2].indexOf('pcon:imperf') > -1) { contemporaryAdverbialParticiple = element[0]; }
+  });
+
+  // Step 2 - draw table
+  let tableContent =
+    '<div class="table-container">' +
+      '<h2><span lang="pl">Pozostałe</span><span lang="en">Others</span></h2>' +
+      '<table class="table table-striped table-styling">' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="border-top-none border-right"><span lang="pl">Bezokolicznik</span><span lang="en">Infinitive</span></td>' +
+            '<td class="border-top-none">' + infinitive + '</td>' +
+          '</tr>' +
+          '<tr>' +
+            '<td class="border-right"><span lang="pl">Imiesłów przysłówkowy współczesny</span><span lang="en">Contemporary adverbial participle</span></td>' +
+            '<td>' + contemporaryAdverbialParticiple + '</td>' +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+    if (infinitive != '-' || contemporaryAdverbialParticiple != '-') {
+      $('#lexpelement_morfeusz').append(tableContent);
+      return true;
+    }
+    return false;
+}
+
+Morfeusz.wordClick = function(res) {
+  Lexp.target = "plwordnet";
+  Lexp.go2URL(res.getAttribute("href"));
+
+  return false;
+}
+
+Morfeusz.prototype.showHTML = function(tag) {
+  let baseForm, others, table1, table2, table3, table4, table5, table6, table7, table8, table9, table10;
+  if ("analyse" in this.data) {
+    if ($('#type option:selected').val() != 'orth') {
+      table1 = this.showIndicativePresent(this.data.analyse);
+      table2 = this.showIndicativePast(this.data.analyse);
+      table3 = this.showImperative(this.data.analyse);
+      table4 = this.showLanguageCase(this.data.analyse);
+      table5 = this.showLanguageCase2(this.data.analyse, false);
+      table6 = this.showLanguageCase2(this.data.analyse, true);
+      table7 = this.showExtendedLanguageCase(this.data.analyse, false);
+      table8 = this.showExtendedLanguageCase(this.data.analyse, true);
+      table9 = this.showExtendedLanguageCase2(this.data.analyse, false);
+      table10 = this.showExtendedLanguageCase2(this.data.analyse, true);
+    }
+    others = this.showOthers(this.data.analyse);
+    baseForm = this.showBaseForm(this.data.analyse);
+    $('#lexpelement_morfeusz img').hide();
+  } else {
+    if ($('#type option:selected').val() != 'orth') {
+      table1 = this.showIndicativePresent(this.data.generate);
+      table2 = this.showIndicativePast(this.data.generate);
+      table3 = this.showImperative(this.data.generate);
+      table4 = this.showLanguageCase(this.data.generate);
+      table5 = this.showLanguageCase2(this.data.generate, false);
+      table6 = this.showLanguageCase2(this.data.generate, true);
+      table7 = this.showExtendedLanguageCase(this.data.generate, false);
+      table8 = this.showExtendedLanguageCase(this.data.generate, true);
+      table9 = this.showExtendedLanguageCase2(this.data.generate, false);
+      table10 = this.showExtendedLanguageCase2(this.data.generate, true);
+    }
+    others = this.showOthers(this.data.generate);
+    baseForm = this.showBaseForm(this.data.generate);
+  }
+  if (!baseForm && !others && !table1 && !table2 && !table3 && !table4 && !table5 && !table6 && !table7 && !table8 && !table9 && !table10) {
+    $('#lexpelement_morfeusz').append('<h2 class="error"><span lang="pl">Przepraszamy, nie mamy w bazie informacji na temat wybranego lematu</span><span lang="en">We are sorry, we don\'t have information about this lemma in the database</span></h2>');
+  }
+  $('#lexpelement_morfeusz img').hide();
+}
+
+Morfeusz.id = "morfeusz";
+
+$(function () {
+  Element.addVisualizer(Morfeusz.id, Morfeusz);
+});
\ No newline at end of file
diff --git a/omwn/omwn.js b/omwn/omwn.js
new file mode 100644
index 0000000..15677f6
--- /dev/null
+++ b/omwn/omwn.js
@@ -0,0 +1,83 @@
+function OMWN(data) {
+  this.data = data;
+}
+
+OMWN.wordClick = function(res) {
+  Lexp.target = OMWN.id;
+  var target = "/lemma/pl/" + res.target.textContent;
+  Lexp.go2URL(target);
+
+  return false;
+}
+
+OMWN.prototype.showHTML = function(tag) {
+  tag.html("");
+  var _html =
+    '<div class="table-responsive" align="left">' +
+      '<table class="table table-bordered">' +
+        '<thead>' +
+          '<tr>' +
+            '<th><span lang="pl">Znaczenie</span><span lang="en">Meaning</span></th>' +
+            '<th><span lang="pl">Lista słów</span><span lang="en">List of words</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>';
+
+  for (var sid in this.data) {
+    _html += '<tr>';
+    var synset = this.data[sid];
+    console.log(synset);
+
+    _html +=
+      '<td>' +
+        synset.definition +
+      '</td>' +
+      '<td>';
+    for(var lang in synset.translate) {
+      if (synset.translate[lang].length != 0) {
+        _html += '<p>' + lang + ' : ';
+        var _first = true;
+        for(var le in synset.translate[lang]) {
+          if (_first) {
+            _first = false;
+          } else {
+            _html += ", ";
+          }
+          _html +=
+            '<a class="lemma-link" href="/lemma/' + lang + '/' + synset.translate[lang][le] + '">' +
+              synset.translate[lang][le] +
+            '</a>';
+        }
+        _html += '</p>';
+      }
+    }
+    _html += '</td>';
+  }
+  _html += '</tr></tbody></table></div>';
+  tag.html(_html);
+}
+
+OMWN.id = "omwn";
+
+$(function () {
+  Element.addVisualizer(OMWN.id, OMWN);
+
+  $('#lexp_results').on('mouseup', '#lexpelement_omwn', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    console.log(event);
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.clientX - 80 || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.clientX - 65 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/plwordnet/lang-pl-32.png b/plwordnet/lang-pl-32.png
new file mode 100644
index 0000000000000000000000000000000000000000..60cb1b47b99e319fec6dcd781a14f5b0f3ae60c9
GIT binary patch
literal 815
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANM!-#lF$Ln02po#t3|$3>v^
ze^%z3&dJOL%^TWu3zYQ^UTn}^^Fj7Ts$hqDUa75E=-RxSd}#-#``)>~JkwKoW!&DX
zue%<m?&;C5l}LNNe*d4C>#2#^Z#T2N-MH`fzxK;qb0${&{+1mhx8jTek9KPi*U_B)
z{Wt4;=c_WrFmd``f7f?M@NwP7LvP>8GdvfKxI6dsaqiq~!8<xk)0-q2Rhn<JESsOr
zwTk6o5R2H3YKD`~r<ESO%XqEGVHQt9A&2X<Q!1i2qyAJ{Jet>ce%4d-PqQ0D5^NaP
zGrZ#HT(FEIVcPq5>L2g^yWRe5_qJ~BgM1FB)T<*Ini$KUNJ*9*NwZ!d_i*K#ejT2G
zS5_ORc&DGZ>Mg(!mHk^gX<7A#^y<Dsm!I<UoBQ5>c~f2Y^Y*64*BBmXD!uNM*S!9D
zt*Y%j)0Zp5H%?z<D$j67dirTrM(@aoX_HRrM|cJ-RoSzqaHBHAbw}Y>vx**e&D#FV
zBtPQV9EprKKW{%_{(UB)?V<+1PHx!Kd$tmauhy~ZNX}r`^ZTRvz53t0zX}o!7d!lL
z5Ra2|uw!-LKP9Ns(qYs3&SCO~*~ahde%B^3EXWJc=6de<%(l_z@j{U|C&O%%F6o^u
z@Zc{gT{`>UtzM6<Y#cmYzK)j}|2GTpf7Fc?<W;Ty=D5~fIg4Y~;$4cyHm4sP>4`M>
z9P-vav@7rA$!7m)xo4H1onzo(`&PG6<V?W*HH@~GC!K0A6JIpjXYH1mjlNFN&bg;W
zt(dI)!|iMrGX3o~+@aQddTYbkn`vyT=KPLY80L56)OF42H<cf~mHgGN&h|9vM)u?n
zYlG6+UPbMgym^XKq*$1@@TsgR7rCoHyc7Oi<g>iGp~U6njd=_z%TN8>af9W-uddy%
zr+$8ITvqyQ%Nou@ZR>9rw%#$<sO2{Zd;LQ0?3Uw|M{j05E!z3`-!Bt}IeBq~)&I@Y
zcRwmEK38_D`G36g%J$uF=Y9Xm{QB(bTK^wxKe#GB&-}i)p0QpkZKJ-Ancd?X4cz*V
dyXF5gB&o{xJ>a<J!N9=4;OXk;vd$@?2>@!4h7$k)

literal 0
HcmV?d00001

diff --git a/plwordnet/plwordnet.css b/plwordnet/plwordnet.css
new file mode 100644
index 0000000..931f5dc
--- /dev/null
+++ b/plwordnet/plwordnet.css
@@ -0,0 +1,235 @@
+#lexpelement_plwordnet .plwordnet-container {
+  padding: 1% 0;
+}
+
+#lexpelement_plwordnet #graph-visualisation,
+#lexpelement_plwordnet #path-visualisation {
+  position: relative;
+}
+
+#lexpelement_plwordnet #show-graph,
+#lexpelement_plwordnet #show-path {
+  color: #1786C8;
+}
+
+#lexpelement_plwordnet #show-graph:hover,
+#lexpelement_plwordnet #show-path:hover {
+  cursor: pointer;
+  text-decoration: underline;
+}
+
+#lexpelement_plwordnet #graph-modal,
+#lexpelement_plwordnet #path-modal {
+  padding: 1%;
+}
+
+#lexpelement_plwordnet #graph-modal .modal-content,
+#lexpelement_plwordnet #path-modal .modal-content {
+  margin: 0;
+}
+
+#lexpelement_plwordnet #graph-modal .modal-content h2,
+#lexpelement_plwordnet #path-modal .modal-content h2 {
+  color: white;
+}
+
+#lexpelement_plwordnet hr {
+  margin: 10px 0;
+  border-color: #E0E0E0;
+}
+
+#lexpelement_plwordnet .row {
+  margin: 0;
+}
+
+#lexpelement_plwordnet table {
+  text-align: center;
+}
+
+#lexpelement_plwordnet #quote {
+  quotes: "„" "“";
+}
+
+#lexpelement_plwordnet #path-to-highest-hiperonim {
+  /*background-color: steelblue;*/
+}
+
+#lexpelement_plwordnet #plwordnet-box-left {
+  display: flex;
+  flex-flow: row wrap;
+  background-color: #F8F8F8;
+}
+
+#lexpelement_plwordnet #plwordnet-box-right {
+  max-width: 1000px;
+  position: relative;
+  margin: auto;
+}
+
+#lexpelement_plwordnet #arrow-left,
+#lexpelement_plwordnet #arrow-right {
+  position: absolute;
+  top: 50%;
+  transform: translateY(-50%);
+  font-size: 32px;
+  color: #41423A;
+  cursor: pointer;
+  transition: .5s all;
+}
+
+#lexpelement_plwordnet #arrow-left:hover,
+#lexpelement_plwordnet #arrow-right:hover {
+  color: #63645C;
+}
+
+#lexpelement_plwordnet #arrow-left {
+  left: -8%;
+}
+
+#lexpelement_plwordnet #arrow-right {
+  right: -8%;
+}
+
+#lexpelement_plwordnet #plwordnet-box-right .slides {
+  display: none;
+}
+
+#lexpelement_plwordnet .plwordnet-box {
+  flex: 1;
+  height: 100%;
+  padding: 1% 3% 2%;
+  text-align: left;
+}
+
+#lexpelement_plwordnet #plwordnet-box-right .plwordnet-box {
+  /*width: 60%;*/
+  margin: 2% auto 3%;
+  background-color: white;
+  box-shadow: 2px 2px 15px 2px #888888;
+}
+
+#lexpelement_plwordnet #plwordnet-box-left .plwordnet-box {
+  min-width: 25%;
+  max-width: 27%;
+  padding: 0;
+  margin: 1% 3% 2%;
+}
+
+#lexpelement_plwordnet .lemma {
+  color: black;
+  margin: 0;
+  padding-top: 10px;
+}
+
+#lexpelement_plwordnet h2,
+#lexpelement_plwordnet p.title,
+#lexpelement_plwordnet p.description,
+#lexpelement_plwordnet .emotion-description {
+  color: #41423A;
+  font-family: 'Saira Semi Condensed', sans-serif;
+}
+
+#lexpelement_plwordnet .fixed-space {
+  min-width: 120px;
+  max-width: 75%;
+  display: inline-block;
+}
+
+#lexpelement_plwordnet .fixed-space-emotion {
+  min-width: 150px;
+  max-width: 75%;
+}
+
+#lexpelement_plwordnet .category {
+  color: #929292;
+  font-size: 12px;
+  text-transform: uppercase;
+  padding: 0 20px;
+}
+
+#lexpelement_plwordnet .emotion-box {
+  padding: 7px;
+}
+
+#lexpelement_plwordnet .d-inline-block {
+  display: inline-block;
+}
+
+#lexpelement_plwordnet h2 {
+  font-size: 22px;
+  color: #41423A;
+}
+
+#lexpelement_plwordnet #plwordnet-box-left h2 {
+  background-color: #E0E0E0;
+  padding: 10px;
+  margin: 0 0 10px;
+}
+
+#lexpelement_plwordnet #plwordnet-box-left p.title,
+#lexpelement_plwordnet #plwordnet-box-right h2.lemma {
+  display: inline-block;
+}
+
+#lexpelement_plwordnet img.show-icon {
+  padding: 0 10px 6px;
+  display: inline-block !important;
+}
+
+#lexpelement_plwordnet p {
+  text-indent: 0;
+}
+
+#lexpelement_plwordnet p.title {
+  color: #1786C8;
+  font-size: 17px;
+  font-weight: bold;
+}
+
+#lexpelement_plwordnet p.description {
+  font-size: 15px;
+  padding-top: 10px;
+}
+
+#lexpelement_plwordnet .emotion-description {
+  font-size: 15px;
+}
+
+@media (max-width: 1300px) {
+  #lexpelement_plwordnet #plwordnet-box-right {
+    max-width: 800px;
+  }
+}
+
+@media (max-width: 1100px) {
+  #lexpelement_plwordnet #plwordnet-box-right {
+    max-width: 700px;
+  }
+}
+
+@media (max-width: 961px) {
+  #lexpelement_plwordnet #plwordnet-box-right {
+    max-width: 600px;
+  }
+  #lexpelement_plwordnet #plwordnet-box-left {
+    flex-direction: column;
+  }
+  #lexpelement_plwordnet #plwordnet-box-left .plwordnet-box {
+    max-width: none;
+  }
+  #lexpelement_plwordnet .fixed-space {
+    max-width: 60%;
+  }
+}
+
+@media (max-width: 761px) {
+  #lexpelement_plwordnet #plwordnet-box-right {
+    width: 80%;
+  }
+}
+
+@media (max-width: 575px) {
+  #lexpelement_plwordnet .fixed-space {
+    max-width: 100%;
+  }
+}
\ No newline at end of file
diff --git a/plwordnet/plwordnet.js b/plwordnet/plwordnet.js
new file mode 100644
index 0000000..1ae61d4
--- /dev/null
+++ b/plwordnet/plwordnet.js
@@ -0,0 +1,676 @@
+function PlWordnet(data) {
+  console.log(data);
+  PlWordnet.data = data;
+  this.analyseData(data);
+}
+
+PlWordnet.wordClick = function(ev) {
+  Lexp.target = PlWordnet.id;
+  var target = ev.target.getAttribute('href');
+  Lexp.go2URL(target)
+
+  return false;
+}
+
+PlWordnet.prototype.sortUnits = function(_units) {
+  // console.log(_units);
+  var i;
+  _units.sort(function(a, b) {
+    if (a.synset == b.synset) {
+      return a.unitid > b.unitid ? 1 : -1;
+    }
+    return a.synset > b.synset ? 1 : -1;
+  });
+
+  for (i = 0; i < _units.length - 1; i++) {
+    if (_units[i].synset == _units[i + 1].synset) {
+      _units[i + 1].smallestunitid = _units[i].smallestunitid;
+    }
+  }
+
+  _units.sort(function(a, b) {
+    if (a.smallestunitid == b.smallestunitid) {
+      return a.unitid > b.unitid ? 1 : -1;
+    }
+    return a.smallestunitid > b.smallestunitid ? 1 : -1;
+  });
+
+  var i = 0,
+      num = 0,
+      first = -1,
+      ind = 0;
+
+  while (i < _units.length) {
+    _units[i].rowspan = 0;
+    if (_units[i].synset != ind) {
+      if (first >= 0) {
+        _units[first].rowspan = num;
+      }
+      first = i;
+      num = 1;
+      ind = _units[i].synset;
+    } else {
+      num += 1;
+    }
+    i += 1;
+  }
+  _units[first].rowspan = num;
+}
+
+PlWordnet.fullQualifiermapa = {"og.":"ogólne","pot.":"potoczne","wulg.":"wulgarne","posp.":"pospolite","książk.":"książkowe","urz.":"urzędowe","daw.":"dawne","specj.":"specjalistyczne","nienorm.":"nienormatywne","środ.":"środowiskowe","reg.":"regionalne"}
+PlWordnet.fullQualifiermapaEnglish = {"og.":"general","pot.":"colloquial","wulg.":"vulgar","posp.":"common","książk.":"bookish","urz.":"official","daw.":"former","specj.":"special","nienorm.":"imprescriptive","środ.":"environmental","reg.":"regional"}
+
+PlWordnet.fullQualifier = function(str) {
+  if (str in PlWordnet.fullQualifiermapa) {
+    if(document.body.className == 'pl') {
+      return PlWordnet.fullQualifiermapa[str];
+    } else {
+      return PlWordnet.fullQualifiermapaEnglish[str];
+    }
+  }
+  return "";
+}
+
+PlWordnet.citeSourcemapa = {
+    "P":"przykład spreparowany przez lingwistę mający formę zdania",
+    "W":"przykład z Wikipedii",
+    "WN":"cytat z WikiNews",
+    "Z":"zasłyszane albo wymyślone, teksty z języka mówionego"
+}
+
+PlWordnet.citeSourcemapaEnglish = {
+    "P":"example developed by linguist having form of a sentence",
+    "W":"example from Wikipedia",
+    "WN":"quote from WikiNews",
+    "Z":"overheard or made-up, texts from spoken language"
+}
+
+PlWordnet.citeSource = function(str) {
+  if (str in PlWordnet.citeSourcemapa) {
+    if(document.body.className == 'pl') {
+      return PlWordnet.citeSourcemapa[str];
+    } else {
+      return PlWordnet.citeSourcemapaEnglish[str];
+    }
+  }
+  return "";
+}
+
+PlWordnet.prototype.analyseData = function(data) {
+  // console.log(data);
+
+  function clean(str) {
+    if (str != null) {
+      return str.slice(0, -1)
+    }
+    return "";
+  }
+
+  var _units = [];
+
+  let language = window.location.href.split("/")[4];
+
+  for (var rid in data.synsets) {
+    var synset = data.synsets[rid];
+    var synsetDescription = data.synsets[rid].definition;
+    for (var uid in synset.units) {
+      var unit = synset.units[uid];
+      var _unit = new Object();
+      _unit.unitname = unit.str.split("(")[0];
+      _unit.unitid = unit.id;
+      _unit.smallestunitid = unit.id;
+      _unit.synset = synset.id;
+      _unit.url = "/lemma/" + language + "/" + unit.lemma;
+      _unit.definition = clean(unit.definition);
+      if (!_unit.definition) {
+        _unit.definition = synsetDescription;
+      }
+      // console.log(_unit.definition);
+      _unit.qualifier = unit.usage_notes;
+      _unit.link = "";
+      _unit.islemma = unit.lemma == Lexp.element.lemma;
+
+      if (unit.external_links.length == 0) {
+        _unit.link += '&nbsp';
+      } else {
+        for (var elid in unit.external_links) {
+          var link = unit.external_links[elid];
+          if (link.length > 0) {
+            _unit.link += '<a href="' + link + '" style="color: inherit;">' +
+            '<span lang="pl" data-toggle="tooltip" data-placement="top" title="Link do zasobu zewnętrznego" class="source glyphicon glyphicon glyphicon-link"></span></a>' +
+            '<span lang="en" data-toggle="tooltip" data-placement="top" title="Link for external resource" class="source glyphicon glyphicon glyphicon-link"></span></a>';
+          }
+        }
+      }
+      _unit.examples = "";
+      for (var seid in unit.sense_examples) {
+        if (unit.sense_examples[seid].length > 0)
+       _unit.examples += unit.sense_examples[seid] +
+        '<span rel="tooltip"  data-original-title="' + PlWordnet.citeSource(unit.sense_examples_sources[seid]) +
+        '"> #' + unit.sense_examples_sources[seid] + "</span><br>";
+      }
+      _units.push(_unit);
+    }
+  }
+
+  if($('#type').val() == 'synsetid') {
+    /* Synset way */
+    this.sortUnits(data.units);
+    this.data = data.units;
+  } else {
+    /* Normal way */
+    this.sortUnits(_units);
+    this.data = _units;
+  }
+}
+
+PlWordnet.prototype.createAdditionalInfo = function(jsonData, title, titleEn, lang = 'pl') {
+  let textData = '',
+      quantity = 0;
+  $(jsonData).each(function(index, element) {
+    $(element[2].units).each(function(index2, element2) {
+      let definition = '',
+          horizontalLine = '<hr />';
+      quantity++;
+      if (element2.definition !== null && element2.definition !== ',' && element2.definition !== '.') {
+        definition = '<p class="description">' + element2.definition + '</p>';
+      }
+      if (jsonData.length - 1 == index) {
+        if (element[2].units.length - 1 == index2) {
+          horizontalLine = '';
+        }
+      }
+      textData +=
+        // '<a href="http://plwordnet.pwr.wroc.pl/wordnet/lemma/' + element2.lemma + '" title="lemma" target="_blank">' +
+        '<a href="/synsetid/plwordnet/' + element2.synset + '">' +
+        '<p class="title">' + element2.lemma + '</p>' +
+        '</a>' +
+        '<img width="40" height="20" class="img-responsive show-icon" src="http://lexp-dev.clarin-pl.eu/img/lang-' + lang + '-32.png" alt="Language" />' +
+        definition +
+        horizontalLine;
+    });
+  });
+
+  if (quantity != 0) {
+    let data =
+    '<div class="plwordnet-box">' +
+      '<h2>' +
+        '<img class="img-responsive show-icon" src="http://lexp-dev.clarin-pl.eu/img/lang-' + lang + '-32.png" alt="Language" />' +
+        '<span lang="pl">' + title + ' (' + quantity + ')' + '</span>' +
+        '<span lang="en">' + titleEn + ' (' + quantity + ')' + '</span>' +
+      '</h2>' +
+      textData +
+    '</div>';
+
+    $('#lexpelement_plwordnet #plwordnet-box-left').append(data);
+  }
+}
+
+PlWordnet.emotionMap = {
+  "+ s":"weak positive", "+ m":"strong positive"
+};
+
+PlWordnet.prototype.showHTMLForSynset = function() {
+  let synsetID = this.data[0].synset;
+  $('#lexpelement_plwordnet').append(
+    '<div class="plwordnet-container">' +
+      '<div id="plwordnet-box-right"></div>' +
+      '<div id="plwordnet-box-left"></div>' +
+    '</div>');
+
+  this.createAdditionalInfo(PlWordnet.data.related.fuzzynimia_synsetów, 'Fuzzynimia synsetów', 'Fuzzyimia of synsets');
+  this.createAdditionalInfo(PlWordnet.data.related.hiperonimia, 'Hiperonimia', 'Hiperonimia');
+  this.createAdditionalInfo(PlWordnet.data.related.hiponimia, 'Hiponimia', 'Hyponymy');
+  this.createAdditionalInfo(PlWordnet.data.related["holonimia/część"], 'Holonimia część', 'Holonimia part');
+  this.createAdditionalInfo(PlWordnet.data.related["holonimia/miejsce"], 'Holonimia miejsce', 'Holonimia place');
+  this.createAdditionalInfo(PlWordnet.data.related["synonimia_międzyjęzykowa/Syn_plWN-PWN"], 'Synonimia', 'Synonymy', 'en');
+
+  this.createAdditionalInfo(PlWordnet.data.related["Hyponym"], 'Hiponim', 'Hyponymy', 'en');
+  this.createAdditionalInfo(PlWordnet.data.related["synonimia_międzyjęzykowa/Syn_PWN-plWN"], 'Synonimia', 'Synonymy');
+
+  $(PlWordnet.data.units).each(function(index, element) {
+    let examples = '',
+        definition = element.definition || PlWordnet.data.definition || '-',
+        language = (element.pos.indexOf('en') > -1) ? 'en' : 'pl';
+
+    $(element.sense_examples).each(function(index2, element2) {
+      if (element2 != '') {
+        examples += '<p class="description">"' + element2 + '" - <i>' + PlWordnet.citeSource(element.sense_examples_sources[index2]) + '</i></p>';
+      }
+    });
+
+    if (examples == '') { examples = '-'; }
+
+    let data =
+      '<div class="plwordnet-box slides">' +
+        '<div class="fixed-space category"><span lang="pl">Słowo</span><span lang="en">Word</span></div>' +
+        '<div class="fixed-space">' +
+          '<h2 class="lemma">' + element.lemma + '</h2>' +
+          '<img class="img-responsive show-icon" src="http://lexp-dev.clarin-pl.eu/img/lang-' + language + '-32.png" alt="Language" />' +
+          '<p class="description">' + definition + '</p>' +
+        '</div>' +
+        '<hr />' +
+
+        '<div class="fixed-space category"><span lang="pl">Domena</span><span lang="en">Domain</span></div>' +
+        '<div class="fixed-space">' +
+          '<p class="description">' + element.domain + '</p>' +
+        '</div>' +
+        '<hr />' +
+
+        '<div class="fixed-space category"><span lang="pl">Przykłady</span><span lang="en">Examples</span></div>' +
+        '<div class="fixed-space">' +
+          examples +
+        '</div>' +
+        '<hr />' +
+
+        '<div class="fixed-space category"><span lang="pl">Hiperonimy</span><span lang="en">Hiperonims</span></div>' +
+        '<div class="fixed-space">' +
+          '<p id="show-path" class="description" data-toggle="modal" data-target="#path-modal"><span lang="pl">Pokaż ścieżkę do najwyższego hiperonimu</span><span lang="en">Show path to the highest hiperonim</span></p>' +
+        '</div>' +
+        '<hr />' +
+        showEmotion(element) +
+      '</div>';
+
+    $('#lexpelement_plwordnet #plwordnet-box-right').append(data);
+  });
+
+  addArrows();
+  showSlides(slideIndex);
+
+  $('#lexpelement_plwordnet #plwordnet-box-right').append(
+    // '<p id="show-graph" class="description" data-toggle="modal" data-target="#graph-modal" onClick="PlWordnet.showGraph"><span lang="pl">Wyświetl wizualizację graficzną</span><span lang="en">Show graphic visualization</span></p>'
+    '<div class="fixed-space category"><span lang="pl">Graf</span><span lang="en">Graph</span></div>' +
+    '<div class="fixed-space">' +
+      '<p id="show-graph" class="description" data-toggle="modal" data-target="#graph-modal" onClick="PlWordnet.showGraph"><span lang="pl">Wyświetl wizualizację graficzną</span><span lang="en">Show graphic visualization</span></p>' +
+    '</div>'
+  );
+
+  $('#lexpelement_plwordnet').append(
+    '<div id="graph-visualisation">' +
+      '<div class="modal fade" id="graph-modal" role="dialog">' +
+        '<div class="modal-content">' +
+          '<div class="modal-header">' +
+            '<span data-dismiss="modal" class="close" id="aboutAppClose">&times;</span>' +
+            '<h2 lang="pl">Wizualizacja graficzna</h2>' +
+            '<h2 lang="en">Graphic visualisation</h2>' +
+          '</div>' +
+          '<div id="graph" class="modal-body"></div>' +
+          '<div class="modal-footer">webserwisy@clarin-pl.eu</div>' +
+        '</div>' +
+      '</div>' +
+    '</div>');
+
+  $('#lexpelement_plwordnet').append(
+    '<div id="path-visualisation">' +
+      '<div class="modal fade" id="path-modal" role="dialog">' +
+        '<div class="modal-content">' +
+          '<div class="modal-header">' +
+            '<span data-dismiss="modal" class="close" id="aboutAppClose">&times;</span>' +
+            '<h2 lang="pl">Wizualizacja graficzna</h2>' +
+            '<h2 lang="en">Graphic visualisation</h2>' +
+          '</div>' +
+          '<div id="path" class="modal-body">' +
+            '<svg id="path-to-highest-hiperonim"></svg>' +
+            // '<svg id="path-to-highest-hiperonim" viewBox="0 0 793 1122"></svg>' +
+          '</div>' +
+          '<div class="modal-footer">webserwisy@clarin-pl.eu</div>' +
+        '</div>' +
+      '</div>' +
+    '</div>');
+
+  $('#show-graph').on('click', function() {
+    setTimeout(function() {
+      showGraph(synsetID);
+    }, 200);
+  });
+
+}
+
+function showEmotion(element) {
+  let emotionEmotions = '',
+      emotionValuations = '',
+      emotionPolarity = element.emotion_markedness || '-',
+      emotionExamples = element.emotion_example || '-';
+
+  if (emotionPolarity in PlWordnet.emotionMap) {
+    emotionPolarity = PlWordnet.emotionMap[emotionPolarity];
+  }
+
+  $(element.emotion_names).each(function(index2, element2) {
+    if (element2 != '') {
+      emotionEmotions += (index2 == element.emotion_names.length - 1) ? element2 : element2 + ', ';
+    }
+  });
+
+  $(element.emotion_valuations).each(function(index2, element2) {
+    if (element2 != '') {
+      emotionValuations += (index2 == element.emotion_valuations.length - 1) ? element2 : element2 + ', ';
+    }
+  });
+
+  if (emotionEmotions == '' && emotionValuations == '' && emotionPolarity == '-' && emotionExamples == '-') {
+    return '';
+  }
+
+  if (emotionEmotions == '') { emotionEmotions = '-'; }
+  if (emotionValuations == '') { emotionValuations = '-'; }
+
+  let emotionHTML =
+    '<div class="fixed-space category"><span lang="pl">Annotacje emocjonalne</span><span lang="en">Emotional annotations</span></div>' +
+    '<div class="fixed-space">' +
+      '<div class="emotion-box">' +
+        '<div class="fixed-space-emotion category d-inline-block"><span lang="pl">Nacechowanie</span><span lang="en">Polarity</span></div>' +
+        '<div class="d-inline-block emotion-description">' + emotionPolarity + '</div>' +
+      '</div>' +
+      '<div class="emotion-box">' +
+        '<div class="fixed-space-emotion category d-inline-block"><span lang="pl">Emocje</span><span lang="en">Emotions</span></div>' +
+        '<div class="d-inline-block emotion-description">' + emotionEmotions + '</div>' +
+      '</div>' +
+      '<div class="emotion-box">' +
+        '<div class="fixed-space-emotion category d-inline-block"><span lang="pl">Wartościowanie</span><span lang="en">Valuations</span></div>' +
+        '<div class="d-inline-block emotion-description">' + emotionValuations + '</div>' +
+      '</div>' +
+      '<div class="emotion-box">' +
+        '<div class="fixed-space-emotion category d-inline-block"><span lang="pl">Przykłady</span><span lang="en">Examples</span></div>' +
+        '<div class="d-inline-block emotion-description">' + emotionExamples + '</div>' +
+      '</div>' +
+    '</div>' +
+    '<hr />';
+
+  return emotionHTML;
+}
+
+function showGraph(synsetID) {
+  let width = window.innerWidth - 200 || docEl.clientWidth - 200 || bodyEl.clientWidth - 200,
+      height = window.innerHeight - 200 || docEl.clientHeight - 200 || bodyEl.clientHeight - 200;
+
+  width = document.getElementById('graph').offsetWidth;
+
+  const graph = new GraphCreator.GraphCreator('graph', false, width, height);
+  graph.showMiniMap(.25, null, 0, 0);
+  graph.initializeFromSynsetId(synsetID);
+}
+
+function createNetworkGraph() {
+  console.log(PlWordnet.data.path);
+  let graph = PlWordnet.data.path;
+
+  let width = window.innerWidth - 200 || docEl.clientWidth - 200 || bodyEl.clientWidth - 200;
+  let height = window.innerHeight - 200 || docEl.clientHeight - 200 || bodyEl.clientHeight - 200;
+
+  let svg = d3.select("svg#path-to-highest-hiperonim")
+    .attr("width", width)
+    .attr("height", height)
+    .call(d3.zoom().on("zoom", function () {
+      svg.attr("transform", d3.event.transform);
+    }));
+
+  let simulation = d3.forceSimulation()
+      .force("link", d3.forceLink().id(function(d) { return d.id; }))
+      // .force("charge", d3.forceManyBody().strength(-5000).distanceMax(900).distanceMin(100))
+      .force("charge", d3.forceManyBody().strength(-2000).distanceMax(900).distanceMin(100))
+      .force("center", d3.forceCenter(width / 2, height / 2));
+
+  graph.links.forEach(function(d) {
+    d.source = d.source_id;
+    d.target = d.target_id;
+  });
+
+  let link = svg.append("g")
+    .style("stroke", "#AAA")
+    .selectAll("line")
+    .data(graph.links)
+    .enter().append("line");
+
+  let node = svg.append("g")
+    .attr("class", "nodes")
+    .selectAll("rect")
+    .data(graph.nodes)
+    .enter()
+    .append("rect")
+      .attr("x", function(d) { return d.x; })
+      .attr("y", function(d) { return d.y; })
+      .attr("width", 200)
+      .attr("height", 50)
+      .call(d3.drag()
+        .on("start", dragstarted)
+        .on("drag", dragged)
+        .on("end", dragended));
+
+  let label = svg.append("g")
+      .attr("class", "labels")
+      .selectAll("text")
+      .data(graph.nodes)
+      .enter().append("text")
+        .attr("class", "label")
+        .text(function(d) { return d.name; });
+
+  simulation.nodes(graph.nodes).on("tick", ticked);
+
+  simulation.force("link").links(graph.links);
+
+  function ticked() {
+    link.attr("x1", function(d) { return d.source.x + 100; })
+        .attr("y1", function(d) { return d.source.y; })
+        .attr("x2", function(d) { return d.target.x + 100; })
+        .attr("y2", function(d) { return d.target.y; });
+
+    node.style("fill", "#D9D9D9")
+        .style("stroke", "#969696")
+        .style("stroke-width", "1px")
+       .attr("x", function(d) { return d.x; })
+       .attr("y", function(d) { return d.y; })
+       .attr("width", 200)
+       .attr("height", 50)
+
+    label.attr("x", function(d) { return d.x + 20; })
+          .attr("y", function (d) { return d.y + 30; })
+          .style("font-size", "18px").style("fill", "#4393C3");
+  }
+
+  function dragstarted(d) {
+    if (!d3.event.active) {
+      simulation.alphaTarget(0.3).restart();
+    }
+    d.fx = d.x;
+    d.fy = d.y;
+  }
+
+  function dragged(d) {
+    d.fx = d3.event.x;
+    d.fy = d3.event.y;
+  }
+
+  function dragended(d) {
+    if (!d3.event.active) {
+      simulation.alphaTarget(0);
+    }
+  }
+}
+
+function addArrows() {
+  $('#plwordnet-box-right').append(
+    '<div id="arrow-left" onClick="plusSlides(-1)"><</div>' +
+    '<div id="arrow-right" onClick="plusSlides(1)">></div>'
+  );
+}
+
+var slideIndex = 1;
+
+function plusSlides(n) {
+  showSlides(slideIndex += n);
+}
+
+function currentSlide(n) {
+  showSlides(slideIndex = n);
+}
+
+function showSlides(n) {
+  let i, slides = $(".slides");
+
+  if (n > slides.length) {slideIndex = 1}
+  if (n < 1) {slideIndex = slides.length}
+
+  for (i = 0; i < slides.length; i++) {
+    slides[i].style.display = "none";
+  }
+
+  slides[slideIndex - 1].style.display = "block";
+}
+
+PlWordnet.prototype.showHTML = function(tag) {
+  if($('#type').val() == 'synsetid') {
+    this.showHTMLForSynset();
+    $('#lexpelement_plwordnet img').hide();
+      // Append Network Graph
+    createNetworkGraph();
+  } else {
+    tag.html("");
+    var _html =
+      '<div class="table-responsive" align="left">' +
+        '<table class="table">' +
+          '<thead>' +
+            '<tr>' +
+              '<th style="min-width: 110px">Synset ID</th>' +
+              '<th><span lang="pl">Jednostka</span><span lang="en">Lexical unit</span></th>' +
+              '<th><span lang="pl">Kwalifikator</span><span lang="en">Qualifier</span></th>' +
+              '<th><span lang="pl">Glosa</span><span lang="en">Gloss</span></th>' +
+              '<th>&nbsp;</th>' +
+              '<th><span lang="pl">Przykład użycia</span><span lang="en">Usage example</span></th>' +
+            '</tr>' +
+          '</thead>' +
+          '<tbody>';
+
+    for (var uid in this.data) {
+      var unit = this.data[uid];
+      // console.log(unit);
+
+      var spanb = "";
+      var spane = "";
+      if (unit.islemma) {
+        spanb = '<span style="color:green;">';
+        spane = '</span>';
+      }
+
+      _html += '<tr>';
+
+      if (unit.rowspan > 0) {
+        // _html += '<td rowspan=' + unit.rowspan + '>' + unit.synset +'</td>';
+        _html += '<td rowspan=' + unit.rowspan + '><a type="lexp" href="/synsetid/plwordnet/' + unit.synset +'">' + unit.synset + '</a></td>';
+      }
+
+      _html += '<td>' + spanb;
+      if (unit.islemma) {
+        _html += unit.unitname;
+      } else {
+        if($('#type').val() == 'synsetid') {
+          /* Synset way */
+          let language = window.location.href.split("/")[4];
+          x = unit.str.substr(0, unit.str.indexOf('('));
+          _html += '<a type="lexp" href="/lemma/' + language + '/' + unit.lemma + '">' + x + '</a>';
+        } else {
+          /* Normal way */
+          _html += '<a type="lexp" href="' + unit.url + '">' + unit.unitname + '</a>';
+        }
+      }
+
+      // console.log(unit);
+
+      var glosaLink = '';
+
+      if($('#type').val() == 'synsetid') {
+        /* Synset way */
+        if (unit.external_links.length > 0) {
+          glosaLink +=
+          '<a type="lexp" href="' + unit.external_links[0] + '" style="color: inherit;">' +
+          '<span lang="pl" data-toggle="tooltip" data-placement="top" title="ALink do zasobu zewnętrznego" class="source glyphicon glyphicon glyphicon-link"></span></a>' +
+          '<span lang="en" data-toggle="tooltip" data-placement="top" title="ALink for external resource" class="source glyphicon glyphicon glyphicon-link"></span></a>';
+        }
+      } else {
+        /* Normal way */
+        glosaLink = unit.link;
+      }
+
+      if($('#type').val() == 'synsetid') {
+        let definition = '',
+            example = '',
+            exampleLink = '',
+            qualifier = '';
+
+        if (unit.definition != null) {
+          definition = unit.definition;
+        }
+        if (unit.sense_examples[0] != undefined && unit.sense_examples[0] != null && unit.sense_examples[0].length != 0) {
+          example = unit.sense_examples[0];
+        }
+        if (unit.usage_notes[0] != undefined && unit.usage_notes[0] != null && unit.usage_notes[0].length != 0) {
+          qualifier = unit.usage_notes[0];
+        }
+        if (unit.sense_examples_sources != null  && unit.sense_examples_sources.length != 0) {
+          exampleLink = unit.sense_examples_sources[0];
+        }
+        /* Synset way */
+        _html += spane + '</td>';
+        _html += '<td>' + spanb + '<span rel="tooltip"  data-original-title="' + PlWordnet.fullQualifier(unit.qualifier)+'">' + qualifier + '</span>' + spane + '</td>';
+        _html += '<td>' + spanb + definition + spane + '</td>';
+        _html += '<td>' + glosaLink + '</td>';
+        _html += '<td>' + spanb + example + " #" + exampleLink + spane + '</td>';
+        _html += '</tr>';
+      } else {
+        let definition = '-',
+            examples = '-',
+            qualifier = '-';
+
+        console.log(unit);
+
+        if (unit.definition != null && unit.definition != '') {
+          definition = unit.definition;
+        }
+        if (unit.examples != null && unit.examples != '') {
+          examples = unit.examples;
+        }
+        if (unit.qualifier != null  && unit.qualifier.length != 0) {
+          qualifier = unit.qualifier[0];
+        }
+        /* Normal way */
+        // console.log(unit.examples);
+        _html += spane + '</td>';
+        _html += '<td>' + spanb + '<span rel="tooltip"  data-original-title="' + PlWordnet.fullQualifier(unit.qualifier)+'">'+ qualifier + '</span>' + spane + '</td>';
+        _html += '<td>' + spanb + definition + spane + '</td>';
+        _html += '<td>' + glosaLink + '</td>';
+        _html += '<td>' + spanb + examples + spane + '</td>';
+        _html += '</tr>';
+      }
+    }
+    _html += '</tbody></table></div>';
+
+    tag.html(_html);
+    tag.find("a[type='lexp']" ).click(PlWordnet.wordClick);
+    tag.find('[rel=tooltip]').tooltip();
+  }
+
+
+}
+
+PlWordnet.id = "plwordnet";
+
+$(function () {
+  Element.addVisualizer(PlWordnet.id, PlWordnet);
+
+  $('#lexp_results').on('mouseup', '#lexpelement_plwordnet', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.clientX - 80 || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.clientX - 65 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/spxvi/css/haslo.css b/spxvi/css/haslo.css
new file mode 100644
index 0000000..e3284b3
--- /dev/null
+++ b/spxvi/css/haslo.css
@@ -0,0 +1,294 @@
+    @font-face {
+    font-family: "Palem";
+    src: url("../fonts/PalemMUFI-nm.ttf") format("truetype");
+	font-weight: normal;
+	font-style: normal;
+}
+
+@font-face {
+    font-family: "Palem";
+    src: url("../fonts/PalemMUFI-bd.ttf") format("truetype");
+	font-weight: bold;
+	font-style: normal;
+}
+
+@font-face {
+    font-family: "Palem";
+    src: url("../fonts/PalemMUFI-it.ttf") format("truetype");
+	font-weight: normal;
+	font-style: italic;
+}
+
+#content-main a {
+	text-decoration: none;
+}
+
+#content-main a:hover {
+    text-decoration: underline;
+}
+
+#content-main a[id] {
+    visibility: hidden;
+    display: inline-block;
+    overflow: hidden;
+    width: 0px;
+}
+
+div.root {
+	font-family: Liberation Serif, Times New Roman, serif;
+	font-size:   11pt;
+	text-align:  justify;
+}
+
+div.level {
+	font-family: "Palem", Liberation Serif, Times New Roman, serif;
+	font-size: 12pt;
+}
+
+div.root p[title]:hover {
+	background-color: #F3F3BF;
+}
+
+div.root span[title]:hover {
+	background-color: #E9E9B7;
+}
+
+div.root p, div.root div.level, div.root div.group, div.root div.title {
+	text-indent: 0.5cm;
+	margin:      5px 0;
+	overflow:    hidden;
+}
+
+span.r {
+	font-style:  normal;
+	font-weight: normal;
+}
+
+span.upper {
+	text-transform: uppercase;
+}
+
+span.wyraz-hasłowy.zaznaczony {
+	color:           #990066;
+	font-weight:     bold;
+	text-decoration: underline;
+}
+
+span.lokalizacja {
+	color: #993300;
+}
+
+span.wyraz-hasłowy {
+	color: #990066;
+}
+
+p[title='fleksja'] span.postać {
+	color: #336600;
+}
+
+span.spec-gram {
+	color: #008000;
+}
+
+span.tytulik {
+	color: #003366;
+}
+
+span.objaśnienie-pol {
+	color: #330066;
+}
+
+span.forma-podstawowa {
+	font-family:      verdana, arial, sans-serif;
+	border-top:       2px solid #400020;
+	border-bottom:    2px solid #400020;
+	background-color: #400020;
+	color:            #fef4bd;
+	padding-left:     10px;
+	padding-right:    10px;
+}
+
+span.forma-podstawowa.uzup {
+	color: #ffa858;
+}
+
+/* style dodatkowe */
+
+table#nav {
+	width:          100%;
+	border-spacing: 0px;
+	margin:         0px 0px 10px 0px;
+	padding:        0px;
+}
+
+table#nav td.prev {
+	text-align: left;
+}
+
+table#nav td.next {
+	text-align: right;
+}
+
+div.root div.index-up, div.root div.index-down, div.root div.index-show, div.root div.index-hide, div.root div.fleksja-table, div.root div.fleksja-text {
+	width:   12px;
+	height:  12px;
+	float:   right;
+	display: inline-block;
+	margin:  1px;
+	cursor:  pointer;
+	padding: 2px;
+}
+
+div.root div.index-up {
+	background: url(../img/arrow-up-idx.png) top left no-repeat;
+}
+
+div.root div.index-down {
+	background: url(../img/arrow-down-idx.png) top left no-repeat;
+}
+
+div.root div.index-show {
+	background: url(../img/icons/book.png) top left no-repeat;
+}
+
+div.root div.index-hide {
+	background: url(../img/icons/book_open.png) top left no-repeat;
+}
+
+div.root div.fleksja-table {
+	background: url(../img/icons/table.png) top left no-repeat;
+}
+
+div.root div.fleksja-text {
+	background: url(../img/icons/page_white_text.png) top left no-repeat;
+}
+
+div.root div.title {
+	margin:     1px;
+	padding:    2px 0px;
+	color:      #222;
+	background: #E9E9B7;
+	cursor:     pointer;
+}
+
+div.root div.title:hover {
+	pointer:    default;
+	background: #F3F3BF;
+}
+
+div#index {
+	background-color: #DCDCAD;
+	border:           1px solid #005B00;
+	margin:  15px 0;
+	padding: 10px;
+}
+
+div#index ul {
+	list-style-type: none;
+	padding-left:    20px;
+}
+
+div#index li {
+	list-style-position: inside;
+	text-indent:         -17px;
+}
+
+div#index-navigation {
+	position:           fixed;
+	top:                5px;
+	right:              15px;
+	padding:            5px;
+	background-color:   #DCDCAD;
+	border:             1px solid #005B00;
+	-webkit-box-shadow: 1px 1px 2px #666;
+	-moz-box-shadow:    1px 1px 2px #666;
+	box-shadow:         1px 1px 2px #666;
+}
+
+div#index-navigation a {
+	color: #006A00;
+}
+
+span#index-navigation-icon {
+	display:    inline-block;
+	width:      16px;
+	height:     16px;
+	background: url(../img/icons/arrow_up.png) no-repeat top left;
+	margin:  0;
+	padding: 0;
+}
+
+.block-caption {
+	font-weight: bold;
+	margin:      0;
+	padding:     0;
+	min-height:  16px;
+}
+
+div#index span.level-marker {
+	width:   16px;
+	height:  12px;
+	cursor:  pointer;
+	display: inline-block;
+}
+
+div#index .empty-level {
+	padding-left: 16px;
+}
+
+div#index span.level-close {
+	background: transparent url(../img/plus.gif) no-repeat top left;
+}
+
+div#index span.level-open {
+	background: transparent url(../img/minus.gif) no-repeat top left;
+}
+
+div#fleksja {
+	background-color: #DCDCAD;
+	border:           1px solid #005B00;
+	margin:           15px 0;
+	padding:          10px;
+}
+
+div#fleksja table {
+	border:           1px solid #DCDCAD;
+	width:            90%;
+	border-collapse:  collapse;
+
+	margin: 5px auto;
+
+	font-family: Liberation Serif, Times New Roman, serif;
+	font-size:   11pt;
+}
+
+div#fleksja table td, div#fleksja table th {
+	border:     1px solid #999;
+	text-align: center;
+	padding:    3px;
+}
+
+div#fleksja table td {min-width: 30px;}
+div#fleksja table th {
+	background-color: #E9E9B7;
+	white-space: nowrap;
+}
+
+
+div#fleksja table td:hover {
+	background-color: #F3F3BF;
+}
+
+div#fleksja table caption {
+	font-weight:  bold;
+	caption-side: top;
+}
+
+div#fleksja table td .forma {
+	font-style: italic;
+}
+
+div.toolbar {
+	display: inline;
+	float:   right;
+}
diff --git a/spxvi/css/tipsy.css b/spxvi/css/tipsy.css
new file mode 100644
index 0000000..eb4236c
--- /dev/null
+++ b/spxvi/css/tipsy.css
@@ -0,0 +1,25 @@
+.tipsy { font-size: 12px; position: absolute; padding: 5px; z-index: 100000; font-family: Liberation Serif, Times New Roman, serif;}
+  .tipsy-inner { background-color: #DDDDBB; color: #000; max-width: 200px; padding: 5px 8px 4px 8px; text-align: center; }
+
+  /* Rounded corners */
+  .tipsy-inner { border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
+
+  /* Uncomment for shadow */
+  .tipsy-inner { box-shadow: 0 0 5px #000000; -webkit-box-shadow: 0 0 5px #000000; -moz-box-shadow: 0 0 5px #000000; }
+
+  .tipsy-arrow { position: absolute; width: 0; height: 0; line-height: 0; border: 5px dashed #DDDDBB; }
+
+  /* Rules to colour arrows */
+  .tipsy-arrow-n { border-bottom-color: #DDDDBB; }
+  .tipsy-arrow-s { border-top-color: #DDDDBB; }
+  .tipsy-arrow-e { border-left-color: #DDDDBB; }
+  .tipsy-arrow-w { border-right-color: #DDDDBB; }
+
+	.tipsy-n .tipsy-arrow { top: 0px; left: 50%; margin-left: -5px; border-bottom-style: solid; border-top: none; border-left-color: transparent; border-right-color: transparent; }
+    .tipsy-nw .tipsy-arrow { top: 0; left: 10px; border-bottom-style: solid; border-top: none; border-left-color: transparent; border-right-color: transparent;}
+    .tipsy-ne .tipsy-arrow { top: 0; right: 10px; border-bottom-style: solid; border-top: none;  border-left-color: transparent; border-right-color: transparent;}
+  .tipsy-s .tipsy-arrow { bottom: 0; left: 50%; margin-left: -5px; border-top-style: solid; border-bottom: none;  border-left-color: transparent; border-right-color: transparent; }
+    .tipsy-sw .tipsy-arrow { bottom: 0; left: 10px; border-top-style: solid; border-bottom: none;  border-left-color: transparent; border-right-color: transparent; }
+    .tipsy-se .tipsy-arrow { bottom: 0; right: 10px; border-top-style: solid; border-bottom: none; border-left-color: transparent; border-right-color: transparent; }
+  .tipsy-e .tipsy-arrow { right: 0; top: 50%; margin-top: -5px; border-left-style: solid; border-right: none; border-top-color: transparent; border-bottom-color: transparent; }
+  .tipsy-w .tipsy-arrow { left: 0; top: 50%; margin-top: -5px; border-right-style: solid; border-left: none; border-top-color: transparent; border-bottom-color: transparent; }
diff --git a/spxvi/fonts/PalemMUFI-bd.ttf b/spxvi/fonts/PalemMUFI-bd.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..e734ddc28c8f7c8fe61afdab9ab3e193af143128
GIT binary patch
literal 424180
zcmZQzWME(rWn^GrVF+*!@DE;;bbJB>TkZk|2F`o#!J$rO{yu38Y~>9M42(rSA;BJ#
z%Gp&I7{pi@7+Ajh2kRS!lt^YUFfiU=U|>iHaP|plXl!U;V9U*5U|=u{bMcMH5-rSU
zV37L5z`*(-IXAIjPTj-F3=ETX7#QTWlFLdI81mT?85lM{VPIeoN-IduWs96+&cLuK
zf`NgtI6bkrfI*yrlYuQaf`NfSAU&rt?c2L{CI*JhKNwguo@AutR@}V$e+dJF!W{;N
zqJWIl#FWq9nz<Pm7-K;8XJn)%@*en^#K6Efg@J)VB_p?_g1@EW7y|>71p|Zdne5b}
zyf2(zHZiantYKi_{FalSoX8Vv@`Zs-<_-gc@P*vOiUM|4rdtdQj5`<@7!>jnb5ljC
zgpC;3td=k^uwE_5FD`j^ev2Lhn?nr)gU+3TqSOMJ|Fv@%7&f0_U|<jfhb<$6)Bjzw
z9>nw8d}Wa2U;u&Ry`Qgu=o5^tcE67OnZs4gA;ZAPz{$V_*1-TGIa>bIFfjaH^y}E4
z0Ip(?2uKGEvwQ}LuzY6dV_*l1fnt$?fs28GiGj%*EW*sZooNpPD+2@T1l9=*3=I7c
znsE+88WRI66B9EVGaC~d69@AG2B!Z43=I4rAA)o$C@3f}C@?7e`_CHmPnjW-qlLLe
zfq`K@NRHWzl^Lv#naP2{o~fN-5px+sEK3=KGRqQ%a&{dCE7m@ST*l=L&df6y?l8|_
zaAsj($Yl*-NM({?XkgZ02w*Z{n8AF2A)18&EVqV*fgy#3fgzBEfx(J}fgzlQfx(Z3
zfgz2Bfgu9K2B`<>W%<Rhf^|Q`E)dOpiouyZlwlU@aRz-hFNScojSSYTX$*EO+ZlA(
zIvD)ejx*>pi!<ml^DyYL`7-FUsxqXqA7JojOJs0h^I`C0wPJ7q(;pc0S(Y$luwG^e
zV5?)WWaIt+n*H(r`)oP?AFwWA&|>Xi2w=`-IK{k<K@&{xVQ^t#`2Ufqks*pjk|Bbn
zoI#L9ks*R*8-p*42!k)vI|gl*L<UWkCk*CH?F>##Nesp;+ZfE5>KLrp+Zn7_9x|A)
zBr<rh9A{8vnZ^*v+`wSUtjQ3;%+FxVa+N`qMd<%yHWda&mWcmfn1B2~!~BvVi-n&d
zfrX86512m9;J|wR{|OKV`5WYCwz&)rY<C%aK<)>-3FIzx4059ggC7eL2D`8Q|4*j&
z|38@8|K9?;EsMd61s#Ljg^U>(5}CCbLcsoJV6bFa&Ct$tpP`J!oWYsp3xg?}2!j&{
zb7V0@GBq;zFfU+8U_bo-GRTcAB@FJM@MF2lpvr8*(93MXP|UiF!53sF^C<>PCU=HK
ztYHl8ESLW8V-9BUWt#uLk1d2@2IDsd29TdY7-SB|UWN#^TMY3m9Si|%H4FjFn;06H
zH!+kl$uP7rF*78yhA{Yp!jJU>LpDqE|L;uA3|Sz|!oZNo@PUCJl%7E9xpp&Hfy@Mj
zBb-iSumh(ZQ2G&PkN~kkcET|zoj@_OCW9x_Dh4MOJBDvej~V(wW`NQnI89|Tn1SpE
zr=hKkb6KqzcC&Obc(aBu++qu0XlDyxSjTL_aF$t<!5@?!*a8?jnN1k_nN1ibgYpT;
z{h;_~a$sO!ImY11R?Q&B+RR`DN{g&a4B9OJ8MHxh$Q;ek&(zMaidlidh&7Gz1hXbX
z2q?Tk7~~!-_&6y2!}AU(|A25jgBB>=gWS(1!(h!eoxuwnE@=#Q=rkxF!NsmHB(t+H
z=!5wW80LZUA2=V*Ven&{!{7&EgD^;(^)G`jTLptII80%A6cWxdATf{`AR2_3Uj2WM
zl8=)a^w~gIiy@dziy;`4r@?+xWk_XN&tSkN$H2~-#-I<%=O7Hu7ofZW!k}^jMEfv!
zg7Q5E2IU_Z2C2Er;KLru;03auUFH9K)(;H&aBRik!kWQg0E%M}2IWJR=?uE8#tbg3
zHVhG<vIH4}?SiHk)+G$;tiAs)g7PXh3{Ec}7_wn<pt1-Zv(zvIgWa-(L5oA3!3A7S
zePGDuv}4c(r8O7^l?4n8e|;Dj{(*2fh!4tZAk2P&fdLf%>^J}4U^&E40rn@zzd8RO
zfY_W581z9H6mRSr3;`g2a&R!Pb8KSJ2lL$+OxX4^s4%xMxP!_KHWmhFmeBuSSiUfr
zu**X*^IQfKma`1zpz@84nSqOKGJ^@ITm+d9(gSi2I%Z(_Gnb{7!I~w5!3-qFB*VZD
zqFKBcoLM{=vKSctiZU?#xy!)t=K=%6pGFu4l|>8;e;zR~{CN#xgYg#z6BcU*HwK2k
zS_};Tn80Q9HU?i-28I9@T?Rh}hCdYy41X;d82%n*VEEh1!0^`*RE8s$kx)LkYzK>j
z%5M<{U*-&k2<AkFAO?m%mzX~@xU<|~&;rRbZ~Fg}HHAT&eKLa^dnJQ5$W1H{8D4?w
z1PKN?FrCPt$-ITZgt?sI8;B38RUz^8*NcJSj{^h4-$<7C46dNC0)+<y!=J|t4F480
zwKJ%K!VQ$?k+3*eyr01dBKH3_Q#%7I$Sq+0euhe>QicMkJ_}HN1j5V@7+68|63ZM0
z6BY#q69$IA@t``2MVrBrsgA*dsqX(jFh2;?qWH@W3L6H7Ki*LMkAdM&GDwW+5`zm<
z9fKhQ!(TquoeX-QI*x(i&p`%;zw)f^3>!f9B4dz$Si%`pIDRrXfa^g}T?ndgKr}84
zlFwrBVl`o~W?=ZU6jWD$FsNMsHY1C{i-F<qNd|^L>sgx^JVEYajb~6}3T2qW+{s`H
z!=N&jf#E+FOAA8^sNQ8@_!A4oKNuMP2!r%7F#HW>VE7A4XC({_f6s%`E(n9t69dDa
zB@7II>{xy>c(E`sgtAD3!tKvA28O@?7#RLmGBEs2X5PRc&-Cm64W?fV@+_hZt}Foz
zMNspy7#RNSV_^7uh)IUQhb4ny2DrYz%Ag7^=YRY^1LNbR%NYdOr5Vh@arcnHg!Ka?
z&x7g-77GRgmg5X+pmLTa@&8d!xdRFxE_Mce)_n{vEM5$8%$FHFKxHN<Pr>A2G^iW_
zxdog)co=k<;u-i@WEpf>SQ%7U8yQTQ_c2H@_c4euFJX{mab=KVwgbn<HwFe!82o<C
zzyMAsml+uTiZd|$jbUK;6T`spw}^q^pEM|c{a*C@DFegbMGOpok25g*-NC@{ub+Y8
z?*s;h|G5kde{>=E_htr$zbBw+=qv-n{}~Jne-AP+{8`Mv@K>3E;m;=qhCizyaq-ud
zf#J_028KWVP%#jDCIiFoYYYs3W-u`Pna;rQ2V`~`xV~S&kO1;KdjW$u#|H)_R&54J
zc54Pb_Tvol?CTlSnfCu*&a#t%gN2Vlm1+O~*&rH}=9pLhzs2(8|0Cva3`Q*G42sM*
z85Eh*8I%}bGl(+(V31;Y#GudogF%bgn?a3vHG>X|ID-Q7h5sK|e*AyMT*IKtqR!w8
z$-{pQ7#RLO0OfB`*$Zkr!e~&P3o4&rG^ic~mp$7VbU|%OaGCjp!5mKeGU$WS0H|#X
zqCs^bD8GX0Jy0G*r$O~KC?CRU9|liQ+5oi!K=}ere_+rD<qc5%0-{0XJ~;g^VaNc{
zpn46|R)x`^_A;o=3aX<(?N%5KOG}`-2$VKKa^SS}j)4Q@A5c3HR0f0M1C$mqXi!@o
zRL+Vs=z_{IaC@Mg!3maDLG>djpTKCieM=a$K=yFNGo-S7WN>DE$zaJM#Lx$lXVLjT
zo8=(`1A99I1B_-gWnf@<!N9<<lYs%$&H`Z&n;`{KDudf$8Vn39Y>cAJ`x!ue$O)jf
z7Dydy2*Wnk$^V}){$tPpVHO64AaEO4nSqZL)Zh8cAjR~C!G`0&|C4O83=y2g|4*<L
zF+^}Y{ePLQn<0XO56VZPS>7{5uq|NlWI4#-#qyECg!v_dA8P@FJ}8b@7C__XGlM=T
zE}?v57FmX9)+zswgTfFQgW7-iFevST+Ad(ck--|&=40i<Z0mv2B02`O3qTlD)_~F^
zD1H$5{~2a+1}<hEaQ}-HN`w1i%sl_kfcT(v3re%#bb0{MFJl9>y^t}iO$Mbw?S2>r
zrCFGIP<jMmP<p_MdH=r#rB!qcO0OUcN*`EpCW9H+j=Ky#pzsF81qidGF+_mUEf(wr
z5(Bld@L^Ei2V+pb41_`b$1VnMP#FNq_smlu{YelTia~uhSUUtO4a!#_3~Ez=+72KL
z$~#Q$3{nvMe>YP*gC$e@|3jcMo+;`71_;f-!IboWH;4@?OPK2Z?_;WC5CfGbP;3e=
zQ`(XGu%LDj2;-`=VdBub8&qF|FsRQ4!{9Ux?FWPU!Y~XfcR*zf2!rxCP7Km3^#3ua
z{K0|mgUTHc29*i8FgVOWW`XcSNS*_WZDTM6)%&1w66AJ}yI^jH#VshV!Sa%jzCSEa
zgZg=(^a9cYN<Sbq$a$H4DT6OZ5Q8tsZ}4&fS`NU}gZi5wdqL?P9A=<2n8n})u4h1X
zFets4GbqCB0lTf2L6zw<gA}-a{sF0@LG=^5nan&4VoXW@4}!`EkY8YS!DyI2K=~e&
z{y^ml$gj-e47^P3|F6K!gVrN3eW1Jt@)M{&Wa0V$64rhIwH-iZA*g-?w;w?6mSxZd
zwIM+61GO=b)qu)NHc5sEwk(DS_Cf|vf@LVQjD@KKxgS)P!uaqo#!~hot7BmJlg_~K
zCx?OI*D(-gna>c;F7p2b%m4o;z~v;U9083Dss29&=7Ywa(iyZ_uQP;${0(X|uyFo=
z2W?B1fW@vds4_781&`~1(jp-YYDa=F^9BZAmK+8XP`YIch0q{2sI3X2+1`WGY8I$|
zW!}yZ!1xL>5(pY2U|{$SYA5|+VEDtt!0^W&6o;T14ODM|^BE}ZfYN&}gDS`$3=Axv
zT^Jb|easmd89^AtW^{2;bFpT$wq^tY9~U)7A4WzO9}tI;(Z$+D4x|IZ1CcH+jMn;$
zE@0I@*2W?(j4mJzASp&hMzFB8wF?L^GV1H=tAPZqeSCbZ8GU?wd_an=8I2{?)Ie&%
zs?E)PAlg7ixG?I2C`Lv`Z5RV&J;<%rj4m!9HX|d*5HM5Ug;Cpw(M80^1*8D%C2Od|
zp{BT)gB;+)=%Wpy!CD!8K>lMi)&}{`9OQOuP*}ix4AKa87bBw&$VQM)TwGkNU3`4x
z<QT23K~8|kgIFNdAPi?~gLoj<fJ9u(%^B4geSBO%erGgy@v$~H1_ddjkG?*mi;Ito
zwU0H(H(<4l#$Z2z^n)<SAJ*1tij2mL;DBUgR5aIjQDkIfH1^SF1pC;95u^j8nUN7>
z5F?|tkF}2vBPcvU?yzQLg!&p}AjHui7RYCe*4EabU^h25_AxeQG&VLi21SpL52LXU
zNFHP>qX;9&K8O}bl2C+&uQ4d#K*<LbnjjsZ*!8hCX0$eEWb{#T(RMLrG<N|d4i^`&
zSs+t<7=7Su5Fdj1AQZ$O5H^&wW@I#GbYV2NcJWaI*#k{>AQv(+G75rJskx|uJZ%k1
zH$LFt1c@?&0s#~Z)-J}@BIf35jQWiFF8WxkkW^#@iMlW{`sgz<x`4dp!>Gil2JtS~
zEL6f86gr?t1H~lBH^!hCvi4#00VNG^G=K~QMITtB8bm#q4JKTCK=RPw12ZAX%o-FU
zjNm{6t3xM@U9626!AgA?U3|>Jz{MPt5v^UU6@3)-85MmP^%Y$dL6PQS4UH&7towix
zp|v$QszGrAiZFeBeGzj|3WvlbNJxYc6qG2Io123S(`IC}c5yK`HwNVtV;4|h`B=O7
z$bll=*u~h|hfyDt&p}C24&r-|ptTR9IVgg_5ee1=5{0G%V@60=xEM2nb1>M4FqMo@
zo)0Jyf!qU1pHO!yfzma^5|9iCg8~9X8-vmehynJ8i;J9(52#3FWB`jX@G$(~_|L$>
z!1@0V11AI5|33^|4BY>JGjKET{Qu3s!@&Fh7XvQ?-~V3>d<^{me=_hh2>k!aAiyB>
z{|AF0gYf?!3_=Vd|9>zDGl>5G&LF}d_WwJBD1-R_Zwz7#692z3h%-q3|H>f2Aoc$%
zgCv9W|E~;E3^M<}Fi11V{{O-t!yxznGlMLH{Qu7katsRpKQYKNDE|M%punK~|09DU
zgUbJp3`z{D|35M)GpPOlz@WmQ{{I7mDuc%V_Y7(bn*ZN3s55B&f5)J~p#A?HgC>K{
z|F;ZU47&f{GH5gC{eR1#!=V5F4TCO&!T&c5dJKmDUo+@482^9GV8CGV{}qEFgX#ZQ
z3`PuQ|6ef}GnoH>$zZ}@@&6@*DTC$z7Yt?$R{vixm@`=af6idRVDtYugC&FQ|7Q$V
z40ivYF<3L$|9{3{!{G4$DT6J8<Nv1&b_`DcpD@@nxcq;@;K1Pe|1pCjgWLbd3{DL0
z{~s|pGkE-e#Nfi<`Tr4vD}&enhYW5E-v1vmxHI_tf570u;QRjpgC~RE|N9JH4F3P`
zGk7xu{J+oO!w~rY9)mAK(Eoc3eheZ1?=tu^g#N$F5Wo=j{|-YSL-_wY3_%PL|8Fw{
zGerKs%@D#6_5U_QC`0uBTMS_gG5>EdgfqnczsV565cmHkLnK4|{~HWZ3<>{lFhnyX
z{=dNx!;tj<Izuc&^8f1$aSW;duQ9|kr2W6fkid}s|0+WwL&pEB3`q=`|F1A4Gi3e0
z!jQs{{r?I>Dnriy%M57@x&JRSq%-9Gzr>KikpKS@LncGP|BDP+42AzMGGsFp{lCDF
z!%+PH0z)oC>HiB1c?@O$&oksRl>a}^P{2^}{~SXhL*@T-3`Go8|IacMGgSXS%TU5l
z^ZzVEDMRi5GYn-6b^p&Wlrz--Kh03V(D45>LnTAw|5FTA3{C$}F;p`&|3Ar4!_e~o
zBttDj+y9dcbqwwQPcYOobo@WT(7@37|2RV<L)ZV~3{4E(|Bo>=GxYpF#?Zph`~N6I
zD?{J^qYP~f{r`_Lv@=Zje}tifVdDQI44n*<{vT%OVwn8@Fhe)Pl>dhqdKjktKg7_>
zF#Z1_hCYTF{|_?sGtB&dkYNJDtp5iXCNj+ae}G{U!<_&7874E#{SWFX&-=fRVJgG?
z|N9uGF)aAMk6}8)!vA|2W-u)Jzn5Vq!{YyY7-lgn`M-x@Hp9~YyBX#%EdRfoVJ^dp
z|GOFHF|7Q*i(x*)s{gwf7BH;-zms7h!<zp)85S|D{l9}@F~hq5I~bNQtpC5AVJX9g
z|JxasF>L(5onbk{rvKX*RxoV-zl~uf!<PSB8CEfD{lArAHN*D*TNu_b?D)ThVJ*YX
z|C<@sG3@%knPEM{?*E$^HZbh@zlmWZ!`}a!7&bBN`@fN4GsFJ>8yU7R9QeP1VJpMI
z{~H*#F&z58fnhtt;s5Iyb}$_Izn)<y!_oii7<Mrn`@fE1H^YhlYZ>-1oczC*VK2j}
z|7#fbF`WLthG9R$ng44T4ltbkznbA7!@2*f84fX=|G$diFvEras~C<jT>QV1;V8qU
z|0@}eF<kz?g5fyBmH#UkPB2{kzk=Z;!?pj*8BQ_W_`jUtG{epR%NWiu-1@(a;Vi@L
z|4SLpG2HpTl;J$X-TzA&E->8tzl7l;!~OqD7%nk9_`jIpGQ-3Fiy5vkJo>+g;VQ%9
z|BD!|F+BOdkl{MR)Bg(@ZZJIizmVZ3!}I?O7;Z7V{J((VHp8p`^BL|iy#7C*;V#3Q
z|MM8`F}(dhkKsPUyZ`eT9x%NBKbPSl!-xNK86Giw{6B}`F~g_-a~Pg5eEvV1;VHwH
z|FapMF?{_$i{UxLxBs&kUNC(BKa1fd!_WUS8D25``ahH5HN)@!GZ@}5{P{nF;Vr}8
z|I-=XG5q^Ko#8#h|Nqk%J}@%;pT_W!k@5dDhEI%4|EDs1W@P?9mEj8`%l|11Um02d
zPht4R$o79S!*@pZ|C1ShFmn8#%<z+u>;EK%UyR)UCo%kH<oQ35;SVG4|A`EL8TtNC
zVED(#|9=9*e@21-{R|8Y;tUKdKRExhFtf0-ak4S7u&}Z*u`sc)va+&)2v$}mCN?%U
zRt`3H4mMVHc4lUFHcobSHg+~Pc6N47b~ZK^78Vv(W>z*<R#s*<HfCm4W==L%HdYoE
zW>!{qRu-@!Y#<#R9IOby%*@OL(gGF%GuW8f*f=;inOQhN>R4FVSy`CbSXr3anb_Ic
zxj0zaSy-5uKqfOYvobQV@PggI%*?{f4hAgDtSsytY;5doENpCS9PBJCY#`e~&HxKB
zvoN!;v2b#N6+>Ll&dvey2OAqm7ubpHtnBQptnBRU%<LeO*_fGGKt5&%IiHP{oeid)
zot=Y&gB?nOb+fUuvx0*JWIlqy&dvz}tZZzYZ0y{ifMj4`U}b0L1o1i8*}1t{IoP<k
zI9NGY*f?0(*x6awSlB?W0*4C&D=RA#D=RCg9%cZqRA6NTtycgE{RbHYRs{+Z78V9j
zn6q(mf@n~ruz@wPfhcA+W)@I5Ff%c;GBY!Sd<BXX1~3n5I0G{?0~-ee11lRFD;onV
zHz@wuSV0bE1@T##Ko+wzfK6g!U}XWD4kB1sAT9#4nOPu?1v#39g^d+t8ptG0kV!18
zZ0xKYY~1XuEbOcx78?sQGczciv9KZ;$iVOiWEKO+gJ1?a!NkJO!NtbG$;raT%EHRV
z!p6eN%)$h+jfE8yd?59pIOSmF0HsQ1P(lG&$i@tc3Qi6P9~^5S<t%J0py+02<pd>X
z5RZkK85EshJ)m^V42lqTP{6Qqvay5A<Y47sWMpJ!2CWKWVP#=pW@ck!Vg~t?nT3m;
zn}ds;lY^53teAzJjg^HB>{3wD06T$`laq~|or4|ZN(creI%W`H0ujtC;H1U@16*8O
z?BMhUG69M?IUzdPI5<GYgHr;?6o@n%C`+-ivVz<MaxhpL<VrS(1rQRH8km_u4uwZG
z$Pa8B92{T+SXsdF1M)e@Jg_0`?4S$}N>6NTY@j?2&i3q})X&Vx!N$tM!3K6cD>nxx
z2L~GmD;Ea`C?T-2vaqo-v$BAaHwPOF6DK<;en2|dS(%wR*g%jSYzwG70jp+VVFBea
zSb%b|bFp)>!FV7RD5gOr6DWIffYT}i11l>7BnUtxh|9vx!otA9!NS7I!~n_-46F>y
zpmYgZ7Q_WA_t@CD*qK;aSlO8&-T^y;m6e&9jh&5^lbwT;osE-&g@uESivyfQ*f}`3
zIM~@)SXn^f3(kF@a*vG}93w2CbPp=QKp_c=WDan71`az=5eX{yKu!h49y?eK3#i=V
zW@hE$Vgr@A>};&e>})K|98B!&oZOsj93ZE#v$BJVRz_x4K5$_KiUUqgP7V$ZaJk3H
z#=#C!!p^|~3Se-l%gn|JjuaMV7IqdcE>Li=bAXF14h~Kb3nT&(-~<;(93WS4g2IV~
z1yrVkd<;ql?4ZJwiwm3-VTqTMlM9r_K?bmaN-Ge9ofDKo!OA#5r6U&zuyL?+v9t5A
zv$KPW8CG_7E_N<94sH$(9v(JMHZE>XP!{E2W#i;zWn<ysWCNuXP~pY~N-E&83slO1
zVi8pQfPxHMEI<Mi9P;3D4`cuXB$cv&qnLpmL@|T>!NSajRPKQy9<|(KVP;_GWMBa2
zMFv(LkR9O60IEb7*g%yM0|N&GJE#O@V_-uo_t+qA1cx^$F@h5oE7&ZsL0q7~0~P+P
zoNT<H`jeFdT!esA8apTfAq*r~?lH5nb8@qBadEM*fhq}BP-<ae0{IA(j36Edm2Kd<
z1r(m(JjKDr#>~YDf}kA6$p%uv!2+&lSlC(ESwI<-ivv{Faey)>8;AwMpd1d05Du^i
z7aIqtg5zZ4WI~jCtPIS|?Cj9C0t+_>F9$aV$RdzpP;JS^!okMI0;*2gIY6lagxNVb
zI5|K~2XLAJB`yw7T4n)-FAF%6adCi?85b8PCpR}YJE+Qqq$&srP065&l?7B;gVO@s
zKv1y-%3bhs50sf%KrI4Di3cIsm_fBWs1ydr61aE*u|Oi=$OC0!kO0Uium!BF@YV|p
zxXlC71FBg-S&W5?lZ}mq6XazsE;e2cE>2E1E;epXPLLu{T!C6rENq~7VPOL004_Ez
zPIgf9gc&3T3T2QpLCFDBSFp0OuySy4aKZwV8x*W;+#I}|;NWHB2CtE1162teY#gA*
z7$_C8u`xgb2t<N%3@ZmKD+4PhD=Qllbl{VL8RRFBZtnk}78^Sk2NNqR8@Sv9$$%<p
zP)P==nYcJOxj>Z=3kxSZHzy}38aOyPxH%!gzy?a_Y@mW3)STc1)uo^k8=QYZttn1W
zNy*6xN|z8rK_L#d9b^wERN2_rS=iV)IeD1bxVb<aRt`|P$Ii;a$;`pQ#lywM2`=~8
zIoX(**%+Bw`8hyk77Gh23l}J9aDqxH4saNN5*Q~33oAPZDCAg~**Q5_+1Qv_LFFDd
zHz+tbIM|_y3KU$Rlm{yFxY#*3*+A7OCkGb`C&*-W78X`c78X#s3JL=bc5ZHPT7(cF
zd%3tdxi~pNO+Qcr4ph#84CVk4pyHSloMySX**HLj94`k42e{k=@wh>SIVT?<r~(7~
zj*Wv2RPM2}a)PQgQ0c`AD#Jjv4yY($0996?&|+YKkPHw8hy$u8L87eeTwDyG$`90N
z1#4ml)oRdkj~(3B1C@WEwmlmg1E}T43@R8wN?Dj0IJm&&9y=QY8!yOM7-mP5dmNyQ
z#LfUJeL<Q)r7@_WL6m!-q{jeGSfG>y&OB^v?4WXw1KP~x<78(8m3p9>jF|=0$Ok10
z<Z|yf*l3*XJ!UozE*^GnZf;Qf5nLL9T70aaKmaw<z#al64lXt>c2M5rWaEUiubH_y
zxjDJHK$SM6y~WAO$qFjlI9NDXIM_h>3e*Mxm3ts3f*LFApeh5BE7?JOP&LKD2CB9o
z<sKsgsCoyLdmPN5QiX$sm4}0mlLurGCpV}+!OFo7>MgOcf?81=9NbXA!O00~G=S0`
z2!o;?T<$>$PIyuS6_PwWJRG1z2uXL46bwtr9GqOBt_rAW4YLDUO@sO}AUDCHk&T6g
zosAt*;(=S0;P_`@<^&a2(3pa#1+_210^k||EC%L+Sda|Q%E}6Ai-B6Qpw1vWsDa4F
z!p#Y4A+fP?uyb*<@o|DmJT5jKP&)=x2eN|tU92piHX9o&GdBkpxKIRzGz&O{x!AxB
zCUDUQE=yQhSwX=B3s4>o9u97H7>}ES2UKz~uz}mw?3`Sn9Lfetz$oP&8yl#|V_@ZC
zWo2V#faqXg289?W0|Nuke^5J*of};4aWJ!jG8;P^D=6eZ{X9-~P^rxg@(wF2CkGD~
zs5ax^<l^Mv;sEs}K&}M!1z14MEOr(iP$v-NXf{wk7+mgga)N3)a1#v_c%Y6L3o|GJ
zAq_8(RU9nr>|9*DENnd7pgMq+lY@<ggPoOyi<y&?ix*TqurV`puycZXu#C)Xf}oxR
z2P-QZD=1}fae<oAoZO(~0ZL$8T%a%m*E7uQTpXaz0I2q0<>7&(9S8|3wLp#lHC#dU
z3MUsks2b(s;sSN_*g!P}hyf~BIXF4kxj1-uxVX5uAr^v3Zf<Tauvs97ae|9GE>NQo
zEXl>m$;HJ30_>a|JRF>Spm1SeU;q{GoS>Y`#m&#p&c(sY$HmUY%E1k44S*U#pbQ8K
zC3aAY9n_5nmjjS;j{_97?Ck8|_8v$PsEz?O4;et6d`=#25Dn^CfC@YY22M~+LmICv
z?BJe03z!Frcm{BL7NU-UfrW*ElbZpQX4p9x*uhQ(buvIjIVS@L2Qxbd0|O@mC#ZwW
z!2mA4A+7>-gBdv3z{aqFy0Rc)W^hITRR@sZ<zWZ6Za6?)6@E?*P%*^L#m>P7>X?EW
z@@z;2DFeeVkP%=Hf*I%pGaDy29|t!N4=V>dD;p;(IJJOMEGRhGS-~y=B@QljP#24x
z1r(g1vW|lV6cs$&TpS<>Qo+f}#R@9vK;<7N8xJQBC!{S1>R*9dAYdo5vVfcoGK+(a
z7u*<U=Vs@Im3yE9hXIt9VdWk#CqFkY7Y_)sgPN6`9PF$h%mz*;U?=c^lOd?l00|yY
z4}pst6ttkW4ya7wgd{akYUAeS=H=z(1SLXPssfqB1IlHf<`5UCRt4oO(C7+C282Q7
z5U3zPFZVb&pbbiJ`3mW>@^JHj902N*fnuBklnuEcBA`qRszNwGi3=3Gpz;|)v$24R
zS5V={&I+pML1Q#LpawIjdBnlP%fZjh!v*S;@^W#5nzQU6WuP88I~O}QI~y|(Cn#Qc
zxH#B2*&rdz&CUfWT|omzphhDrsQ<#n4GU0SPF_wPc3w_?E^zR2@PbM%26j-M=i&er
zvK*k^4Lb(|C;%Xsfq{*kjf;(qfekdqgednQshWX-_dhEO8#@ONCo>xxJ0~-U0}Tc?
zb{1w(p6BJ{;^ySw;$~&#;^5^1Rht}~++4h%rYxvnV_^pc4=bqL;{ca?psWb$+<_tk
z)VSi}<mQI-F+tTEJE&2QRPM2ZhC5i<Ik>s`SlD=Z*g;J-E)F)(P#?J5<L2W5jgB!h
zbFy=>v#_u;F|!GQ+f$%&4^o4I28}@F9v3GYCkH3Up&VS`a*u_BixXPzakBFALIMO-
zB5`qp`~l%}gSxDoTwEOBLW`RlRNR5fJvNY!K}8uS2L~4?FE7M0ILX5Uid|5X4>YC&
zHj5k7D1<2B;sU2xUS4)iPF_wfeojtKP_6_O@0`3G+&o;|0s<U79DMvB-+{_K9v;wu
z2oDE0sK{W4mU|qavI|sPGBAK51ynY1LdrdGP=Z6Ajg<kE%sF{@7(k6#P-h)nT)@gb
zP+sC-VFs6Zps)vx2QYv}K3G5w0x4x>Vc_He6_gyHh3fp^3<*jepsdBf!NCG@1s4M+
zC?jz&fJ$GGCQy41RM2pMN<{_+Hda;$16uBZ4FM6npul6}-~i<V0WMG-0b+52%01BF
z0vj8+{|_~hh;omIpM!^&2h`_c2lbBFS=pG`K*MG1pwR}9F`!Znl&?UeNFW+i(s8ix
z@_-<S4H|sn1h+U~<sKJ1FDN;Kh8@^gSs_I;sI+8dVFj0*+@LNCJ0B>T**SPPc$gR&
zSy&hu8CY4_*%(+@Km*gD0dH1TJ}v=nK5kwR1Vt&h@C6l`kda<qDBuLupWu2DoM<?}
zSqs{gWCdq3UM_GV0u_{ee0-e9sR~s7!Ba9f4?CpC0ZI)Z8BnVPRBVB2Sy0~x)Gq>K
zP$w0o+ykWq7Eo;fiX)J6P+H;ujlMt&RZvL4<v`|x%0y_n2kL{evw{*TD+dR70FsrL
zn*-Er1~m})I0U$Pxj~IGJ{}%Was)M(IY5na4v-)lGcOmY{l?1;>Iy<a7?$io!z-Xt
z64dbG;^yLk1t=dE9~UnNj0a+YVw!`86O=u<Ks_-~?}mee0TKux5|m>g<sJ_k8#^-t
zq@-j371^N94FmswR#r9+PChPXc6JUf(AX~2x1fPD7EW$X4n8g(9xhHE9yT@}E`A;!
zE*@@9ZXRxa9&RqsNC^ikXjqE_)K6pKWaR@zB|B&|kOwqw#sMmZc(`~#<r%m_0htZT
zh#+O4s)7?#&2n(Ea&YqS2(YsA^Kx)-vaxY<vV#T;Sb12uxp@UZMLjzU3l|4B2P-QF
z6AQa2H>lwSiUVF=ULGDEP$|XD!^y?X#m>da#m&RU&IuZ%VrOUJ<l$lm4V<yEak269
zLlP6T9R{kELE*#2!^H(EhIlwZ$q8f{NG~YF*g!t!;o;%p=Hle$;^zk?LnsE>%ge{Z
z2Ws<iadLvfA7nTW4-Yq_mB+))&BMbF0vz1j{M_6^p#B4>0ORK7=i=w&;p5>E65{0L
z6cFU);AICD+I)QMob24ZpoRyi9s!kMEbJWM*aD5NF@OezK;<462e>%|3P_L;CkJR$
z1Jokr<740iH9OfsV|5G+3|t_+pq4(U=4NF9vp7L*drnRc25@^8TBw4?gSq)Y8aO#Q
z88`$%aRV|4L~}84a<Xu8GB9v6aDgg#P6lxC4N7&Oegy{u0~e&Y1NG>@=CN>qhND1w
zA()SolN&UQz{A1ADa_3Y?ym4~a)U<KI5<H4G^B!*f#D~_WLzW*J2#&o7au<#8)$@#
ziyc%tv9Yj&MjJpSD%b&_4hb&@FDDlVCmXn(0E!+~em)Qcwd;7mBYoWL++f|@Y}{<z
z9Q-`|JfJoQ4?7zh$cfw>+@Se17B*Ih4sLdC4gqj0g_DnykBJFV?tw-w89;+A;K3*^
zHZ}onAzncqeqMfFeoh|nSP*1n2;9YmBnN(eeozYG2IW|A@&hFwaEb%vc~F|>fhRRk
zIVm6@z{LYjO`xO)N@U#J(3H&0#ls7#tU-km2dLoykp=aNA@d55Gy*0;jWuwCos|{b
z++zU^Jh8HZN>xZSfzuKvCnu<V2^Il`1egIb4^j*AfJUi7wt?EO9BiPWbvDpw4rq{w
zpO=%9od-1h#mCPn#LLgi14`Yzyr5Ae(AXFksB+>239_;9bA#fApO=e+n;jCukYvvR
zns;L71ewgn#?H;d!v_mc0d4_qeohz<!~&%dPChPfZXR&(aB{FSFmQ4*fC34E89=Q8
z9#8{<mz|x11+)nXl#f_ALCqY{M)3b^tn8ee{M?{&kDCSDh6M#1D7aWyxOliY_<4AF
zxjA`w+1Plw1b9KU87B`fj{q+>Hz*7^SUEU3xH#CjI9XXaS@}6Rxj@5=oE$u$U;z!!
z@$ho<@`1*;Kqi8k5U_F&5~`pX04_F8E?!<iR(1h?P)*Fn!^y$I&Be~j%fiFMC&<Ui
z3z|vd=HTXplzU=4+&tXepk5vyA0IC-FK7^jhnJHFlyo_{d3e~^xp+bCYYtW}UeKs8
zXgHdiO+Ww=Aly9QQVZk{a6$pK<M_CF5ak{($YfCC802GKP(jbd$-^xm07`~X46>J>
zkC%@d<PcDU4pQ9lf*OSoB|JR5yaFHq(#p*v%*_oRi{;?q5#SNv<mKb#6%pa&;}jI)
z1C@I`oScwykB^fV5^kU}3{-@G;ujQO&~gtnu!vUfv9mLPCYiYS`53^BR(5tSuqNbk
z4^-Z9vVzAuK;tH8<sKU=12;do+~eY8-~_d%AyLE0$;ksN_jnk%K@A8llyVPL<Z(gD
zW>9#83R(t`qe0ajWDJ0llb@55hns_wi-&`kQ-p_;1Jqps4NtSOv4X}rL3sx3TnO<4
zLP1E(VLldi9)3YCegOf{U@Qj@J7}7X9n`7^jhS#k3VcvW#mmLZ#SJa@KzWRdRe&D^
zL2O=5P_+pw_juTN*myVucm#MrZ9`D=go~4h9n>BH)v|1?P#qlH9D<ynRtXnB7e5md
zBP%N-BLip}jDeMvn;Ts2akH@r@rdvW@d|(-7pUOn0ha}w?4X`G4-Y6cfG{}yL0WX6
z1jxzB14^x+QC(262g+p7q{h$B$0sN#$PKF8VW|p~h6Myb`aqpvJ`Qehml;$pfn-2^
z5KuYA#R(qZ0TpJDT*t=71s-FEH!C6K9zQ=g!@{E*lnnVm-D*zIFcnl7GNA`<3qlM7
zEkgj8PMn<VpjHG2CnuW#sNCZPWqW=BP7z)KUS3XqPC-6C(4;6>8K|b>;^pMyWM>iJ
z;pgP%6yOE7{=gv&O7@_1&&~!O6#=)Ad3bpFVF4<{Bg7-X1>=EOpcKLhszP|VczL-&
zg$*bHqm+9b92~qH91I+wfg2VEZjcTR23AmakB5PQLGTBt+~X49VFAsbu&{&j1-RY7
z$-&9W!p+0YA;8Pa4{GnQv+;5Z@bPi;@pAF-@e1<s@POLJoUGspEH-W~R#q-n0Z?rV
zT6_Y|zo4>}mxq^|j~`?=q<seoeo(I90@Zn-x`305jf<O?SBRBE5EKpUpmL9un~R+d
zRPON$^KtQkI?>#mJY1}-oJ=en;ym1-GLD^togb7m_}JMv*?9Ottx67VkU{L=a*v&Z
zgO!Vqhl7g?G=R;`E+`028N8q&6J9<(eo(0eN<Vy{HYGO?KNmkg7Z*P-KRZ9DO9`sl
z_}SS&<tjH1Hy1CrfB+vKA3q-ifb8WL<mU$$bX=fJ#tkx@kB^Us2cm+P7o27V1-W>6
z1bKKxK;zR43=AARJc7J}T>OH3{Gy^<0$hT^0-SstTs)lI{QMkT?7Vzj{GgsQCkF!;
zCkLnq0mT+*bd7<Nlbe$P)Q$(2F7Sa2P%Xp2$;HXR&CkyO>b!%7V!@iYLB$^{7icmG
zG_=bKD)+cRZ9gt9PVgibE5syFAC-YefPn!#c*(#i42m^q+;DO;aB{MON>CmKP~Vb+
zi-8N)I|g+mKrVumd*GQFki9IRAp;Ij)Iypw0$g0Yph)27<l_?M<p!63d|W)Bv0+d{
z88opD(gwvS<sMWFiDKd45fJ7U5EK9n#)2l)K_xz@+ymusZb-QYD)T`7B5qDDHV_Ts
zbF+d99036kpO2H9i-(Jsod+~U!Op`DDu@Mn1$jYb9WMu{vjJ+F@^El-g62KII>7xh
zAudpf$|b-hz|6$N%F4vZz|Ib8IkR%}u&{z=vDny!c|`ey`2<0bi;t5VG#bv%%f-dc
z2}&Hif>6NA%gYa{Y(a?+++pD72Q?rd16*wE(4+=RZT$TF!otEl$f*ic{y|eR4-X$G
z<AcfzP(uY|2MB|TEl~9c>0Cq0E;i64IHb@6Pac3%1S=?1Ah86BFL1o`@$rHCji5ze
z5Gjy(5L0+ztrw7Cpq37}K;z*7jV1~5adENpadGf)2?%kC@(J?saq)8s^YL?mhB-iE
z=WO6U2^T*X2df~s+!N&E=H%gEX9a~YKNlaUMBoH9f<T6X7(Bdu0<ZuT<`L!*<bv@8
zxrIR`7Xz07H!m+AH!o;75!5H);$i>=4+JwXaBy;f%RSJ*4GRNU2PolladGi7Ffa)J
zXJg~w<`(2-0nH(R#@1nB04kw)_;@%4`S=BRxdjB-+4*^d`1yJG`FQyF`Gom-c|i-6
zxY$5VO;8t&jg6a4m={!1a<KD&^Dk&@7F5Cr2!Q&Spw1~M0711HINm`GejZSmaI<sq
z@binXaS927G6n}PHz#PofQ_G(k551p)WqdvW##4K<7Q*yVq)c#;sdppK&6v_fB-)~
zKL;BZJD&g#FCQ-_4>vDAKL-a7$giB7tlR>;oV>iCksn?TAt6YK#KQ;be)0?OL2Fe3
zUS2*yUOoYCP&F#RC%`TUG8xo32KktupPz@1hnt^QNJv0HKoDddKR-XnUQj9q7j!(_
z{Gc{DB%$*1f=%b=;{&HzVPS4QUSVE7F;EG~z`(%G%PY($%q=L$FDN0wEyyD*D##_k
z!OPFZD=5gx&A~6gBghL%ZrlvqT->bO;Ia$UX9bmbyj%>R`iu+Q-UBC6F39u}0~e^h
zC@jRl!_5V%|G`xo0}m*s*?2+a9(ZUMG%5j_s|Ag=GJyN>5OoZo6)${344^c_!^^-W
z#tj0{_6Q#XXuy-3fq{>K7c^<a!vJo!LW&{|&_D?f7pQz?;ACg#0-MLm1sb_W^vr}n
zt$j{z9szECZV5haE<SF4ZhmfF(6B!j7cVDhP6=WfnEVbVaT2VYd_rP8f<nUVpfL^5
z<SA%&jgtp7jl{_Vat;FnX!rrte&gljW)}o?J3-OICL}B*EF=W#&w?V0mxqsoj|0@g
z<74Mz=i?IQ7v=}G?D#p^*?GA5xcRvFxOuri>s|P{L3%)PBD{Q{QFS36Ay~Nw%F+yM
zth~Ietf0)q&LPS#E+8r(41zrT+&r9oJlq_7yxbgI;FKo>1$_Mc0-!z=B!BX9gR>TB
zb^=`bfijs8Bn^R5n5d{IFQ{^dh=9%E6BdSQ<rf4scDTXqS8#O>66fLO;sOmlgPJ3t
zRtUHXV`t~)h4iLDxsMH$RY444Az@x#9#DLP3SbZ|0O}Tj7#!^EJUl$0VI=TeCMZ#Y
z8i$|^%n9m)a<GHyNlwrxHfVrJSb&?GgP)s|k4IR9M_fQyfS+5CTU0=h8#K(p%>nL;
zaqxfyIaq~w1-S*eg#~yy`MB8GK*>Rnn;$f72%2vPRhv8@20tIa5G+7N`9=AKd0;#d
z9#PPNS`6HRJp6q8Jp2N@d_17KnVW|J5=<bHfq|17)Y)L*1P$D<GJwiD22KW6P!|oP
zTl7CWs6G<rXW``J=40bv1E+Y<usjzx8yl!*66O~a<l_+(;@}YE6A={P6X56J7ZeZ`
z<mU&ClyI|i^KgTjti0@OJnW*N(PK^y4qk2nZjc$EVn~orP)HCIlu!(cVsLnZ8vMN6
z9NgSI9NfGD0%Gi(B0@aeyd0eTJX~yiyqxTUto;0f;zB%vp!sk<ZUG*4c5Ws%E*a2J
z4IikA2c--_K@N6qc78z~J^_9%J{~>+K@JXH0q`s`8?PWA7auP>Cp!lphlmI$IQRwl
z_#wLZ1tF<OkdKdFh>u^82ULv;3J7utflLN9P(eNx6cFI!=i?FJ6A=*<6ciE!6@C!?
zpq#|dF952H1$jWl96!H+pddfgbOC-rK~WIk;pZ3S7m(oR=LZ!F+#sGPkC3pSkdzdU
zFprqHFt-pVuOK(CurMbNhky{T5V%U<X5iuBX5$8zU7+HUfq|Qwmm5?z@o|I8JxExB
zLY|Y8ft#0`i%&#^ffv*e<^s)8FfcIifnu5+yv7?ei^k5)&dvtvP=Urn7(hIBP{9Z)
zV%XUk_(eb(czJmlxFtZ11{mgN;Nf8dxq_d84>YR7%fJI`C4vSUK`!C~8^Z-!rvWmI
zjfa<)iwl$i!I(#whnJt9i<?)FN03K~pN9*S^aXkNx!5?^xVb^KJg6B9(g?=iz$8wB
zjgwzQf=^gP1eB4uL9=_@p!O&)H)wE|7c?o&z`)PT&jYfIkDG@B6r5l-yNIZWsE7!t
zT_?Z;sy0DAEl>-OpM#%6fLl~RRDhq0pG$xXlypHkk)NB78??kz5Y#^B1Br<7f=FHw
zUJ+){dVVHG1`ZBxE(UfsK7Lj<Zf<Tq4i0evNkMTzQ4r)6<l*J!=i%WL-~~74`S}Gz
zpa7IY1b88d4_tAAvKDA+0n&>Ugd{akY7-I?5*HWeLrPWPW~-<uI3@G*2?}xZ@xh8M
zh!|)XnwuNc$pS6?gQODB7z+mvFE3<?AE>-zV*~YP*w{ryL_vc-pmAw%hXpk1EClLS
z^MHDe;0Od&*id5x1VE)9Xet3T^2Gs4Y@DD`Y;GPN4pBiK9!^2fu)l~HucV-;pdgPB
zkGPN!4``T!hm(hwgPV(!7bM8ZCc+Quw~7jasz45QQ2Yq-2!fM67YAq(l#>@U@h%`B
zC;|&maRG4wQC=7i!~!J|9$`KK0YPx^@Pb+hyu1wH@BtGH3|u^1f?Qk-T*9D58Vr0O
z9o!6Tpu${$fq_Bd3kL@mFQ1qos3a6%1DEBnRL{=FFUZd$CMYZ-z$YTg$tlb)E-Wk{
zEW|4)EF>W;D9FXl#mxhnUgP88<mKmJ=VKS==jG$$=Hlez5rPzLd_sc40wSWqFe5?z
zJq`|bP!AE*73AXsjZ1<C`h|ofIk?3|d3pG`I0bpR*#-ExIE2{*1x2Mq`Gi5Ec>=sb
zd>kC0MShBc0)m19ppisTQBh%GVNMQSPC*e~0U<$d0bT)NVJ<E{VNg?uhn-JE5Zr;}
z;1u8#7YCPDLIQ%q!oniLB0?hI@DUIe5D*j-5E9`N5#i$#5fb4P1(__!$;k!sv9Pc(
zzaT%Kkbt<jh=_=&h%gv{>=hLg6%zur0(tqs;V&o%G8jw<3kwSg2@6Yr0I!gsgrJa&
zpr9bAeBcoj6c?1>6BQE{m6PKW<CTyS;}zlJ7v$v^73JpV5)$DTh0LEY@bdD2iV#q2
zF@PHBJUslo3=DjH{2*h%4L@*@g6c^I(5SqCxEKRJFDOBBfuop#A5^PxfEvCW9DE$0
ziAWB1eo!sW$H&9K&dbiu4k{Qy=5w$!2#PT<fZMVRywcF*4jMV-6=2}yW#{E(U=U;w
z0Ii$jV*r)DAWfiFD5!+x2gx!paC3qtltBv%c|kP+A3wNm;^X5J<Kq_+<l*HL;T7hU
z6XN3$<Q3)><`v{&=Va&M5#$E-IibdZs4pM_h9T!{!gwH>jayJmT0l%(oRg22lUD##
zuyAp)@$mC<fo9quB`~O)DZ(ehC&0tUDZ($pFU%**$ImVf0%D+coiMKep8%f_w-BgR
z$0f)q$SK4lAtWIL$$y-jeBe@3kVgPCC&nQRYM+BDMIK2I$;&U!FV4cu#Lmvd$N<XH
z3>@qNf^2L&ygdAzoKixv!qOrV!V<y~{33k(Jc9gu+(P_(+&rL^2P(oqju00V78Vf#
zbr~S(kB?786x_)JH>Ehag!#qA!HG;5RBcL0NeKuGBT^Np%_t!OGEY!YKv<MdKme4_
zK!p}WOi+*)GS&jhSKt%^COA3y`1wJjfS}o4P`eVe_Md}YTuhuFJX!;db6#FiQBg>V
z%ncsv1GAycJ{}<<uvt7joS<aL$p=bopwS#qr%*zemycVRmq(CaT#`>#SVCBsSCm&u
zRFszs)E439<KyJz;o=7ga<PjGit>u`N(c+^2=Z`(LYP;SSC|j%56~C{X!ewwlUqng
zSPT}RQbJNf68tb8hy_Xwe4_lqLc;vQA_9VZJiH7H{Co_c;DKOJ--<_=hlhbj6x4)Z
z5CrMqVPNOu<>M1(U|^8`&%w#V&o3d&#>2xW#Lmsm3+hDjf(j*Gc6LEwL0$<FQE?#w
zF>x*~Q9&s&Q6W(g0TD3~X)$3?VaChH!6(2c$jc=l$jKqVAt}f&Ai%@TCBP@j4>E#J
zKv+anNK9M|9DtzFGSI9kCx;-ob^=8_A2%PL02jZYh=>dakCZq+p8z+vFh4JckN`KQ
zD7%P=xU4w87-%L*h);x{gM*KmokvAPNJK~ov>HHMTwF{{jGL2>OGI2iNJN-dP(Vmj
zl$%=sH08_7%OM~t%meB`a&ilCOG!cMTOkopdJ+>C5r+hjn2?Z&xR8jLfS8zofS9Nl
zmpI5|kn!SNTw-FPqJkoV0-{1vQet9a;$k4ZqN3vB;-cab;u0bvB0|Cf0;2pvLLkFM
z#l(b##lS#BL`+N?1o%aSWrRiKg@uJd#Sx#du#||DfVhO1xT2zfgn*2k1iv`9pa`hj
z%Ol7wA|@yfX@)ZJ^YgLu@`Ln%+HRl{Pmqs+K~PYT58U2^L=Z2p051<W1D_x-kFca9
zgMa`yAAqVekWvN)P$M5S7{SlU!O6?X$sq`8iVFzvK?Zw41tTamaB(mQOEEAA2?`1b
zGVsfTqXyI$0}U@R@bj~SN>E`2Ar2lM9sveuxeL<A4VncO<O92rhl`UBY#uwv3E(Lm
zP}^95Us6C&M3|RPK#X6MUrCssSA-ATY2oGI;^5;G=H=n#;|7@p#h;)w4vL*eL{eT*
zLQ0BDkdKp3m<N=}x!HIH__#qM&OBh3hzN-AiwlSg3h@eXiG!M70-^$f98!`}l2TG)
zf?|TA{6Ydk0wO#jJfK-Z5iSuf5k6^AX;Dyd49cd0e4tWOginYM)cO$R7ZVT@1j)$=
zihwFONdZX~W+n~}CPoHsZa!WHP7Wbqc6L5KJ|QkHIZ*{MIWcJv6ciH><P{bW;1LlN
z-~qKzMMR{aKtxnjTvQN}_`nsXm^i4*2=0$^adC?ZN=ZSI8K{($m6a6|6$PaxP_hCg
zG7%AJX-K&!Br47i8NC6u9wB1F!UCY#5Pm_>I5r<NFZ1zoaR~?ta)3)#NUKr+Oi4;f
z3c|*2Aki)^E)L3-0s=f-To49$U>lr$ML~^2PzlK;AOOnoe4s%u0byZ20bVX?F#!P{
zQGQ-w0Vx>)1u<zcQGRiLS#fcGZeD&q0Ul6SjF(#gB*@JnB`nS_&Mz${#4Ezb#R*Cd
z;{0Nu;d9W;0jS+10Ah%Wh)Kc%R8CY*R9X<m1F=8}L_k7NR76Zr6x0~w<zrwF5MY30
zPY}t#z{Afg%FD~ZD*>ANWB`?Q47>~+pdl(z1_lP%|D2q>0)kQ^Y`nbu!W`TjpsE@&
zR>jZ3AtWlqCnYK_Ap#nX;uaT{5f>L07Znhd5R(-b5#izG;p6Az7vLA<=N1&=<P_wT
z5fTstHCctg9^vQb7Zep07m<(zRV$EjHOL?VXs}E`02KH9-29*^Iw3JJc}`v#NdbN#
z9v%?^J`Q0)9xicqQBg?+NdXC7UJiC)K2ZTqPJU(%UUg9sQDG5KM_p1<QbIz4n~R@Y
zR032O^9l(Fi;MGc3xWoz`1m*kB}Bj-NKS4MZW$R+aEOWui-OXVxP&OE)DjU95f>2=
zlN1q^5Cm1D5@HhE5+IX76R;B8+@Nw*SX5Y0OhiTo)OwQu>lK%jloXegl8_P=6$8~a
zpeh_>xVVIbhzMAjgqWCwge(XMh>FOGh$)GPh=7U(ei0EFQ5iuADRBv9WkD$cIRz;J
z30@&F0byxrUO{e<D}+EzC4L400e%iX0gxUB@cH2U{KEX8!c3SST<$?qDL<$^&cnbj
z#Lp`tBf}sh$S)|!%L}gB7=%C+baqyN6Ev~P1?GYJ1q`5(4^F7zpcOBo(hLm3py*%_
zP=qFTaIq!KARxdYAi%&N!XV7S3o=@O7nJ0{n45>6fk6mT-0^br@Po@+4gpYB1Q`W3
zPe4jgNKAx}Ur0hgTtGz>R3CymEh3;L{rvnQe7w8@kOnN+M23$L3Kz-2D=MuZEF~ku
zCCCSAJqYpf^YXCs3Gwmr^79Gtf;}WEC@LT!C;_TVxFv-^9ZzvVVNMwkkOq~5;sU~g
z!r&GMsN56f7UdS>mlcy01C@4SeB9hZ{GgmD$}hqX+Ik@_AR#0nEW#(kFDDEV6OtB^
zW?^RL;9v%od;EM1oE*X;>>Qvff}2}GOi4mPLRMT>TvkXzP>5etNRU@dNRXEwT-AbH
z0K%f;;u2!udJ<fW2?|O`fcvW80VZx9abX!5aWIgSl$2CZP!JXu7Zru2Dp2VsD+|^r
zA}lT`AR;0F8UEvgh>3`RhP(v@1o^=O&9FSj%`GSd8s`F+d>{hCk&%`Gm%Pv@7Z4DT
zl$3-t9C^99L6ImVBqRt<ko^4oVzAZ=x1b;>$Ag+Uf<hu9d;$X8vf=`Qyy61<qC(R0
zLP`>{;^G350t%9n0=&Ee{DQnfg53OkJVGEr9u651NdZX#S#c45Q9f=?P;!tIkN}Tq
z@^OR4$9X_)WL_~bacNk9Du^kF$qFfmDT9MoPDnuvltKihgv7+eg~cUAM1?@LuaFP}
zD0m>4fq_?mPn?gBflrc;kB^-}1f+wXfkRM02-LY@Q24;f#U~^zE5;6*L*U@$gtWlH
zsh*QVL|lYlPFzx2Ojt^qheuLWUP@9_QbJf<N<u+OTnw}(N`Om1NKi<SM@WQ=OPEVe
zL{M0WkC#VSKoV>Ms2GwIlaiK#ge*8nL4yR~!7?FG6(s;_qj3w0NJuDg@ykmK2?+D@
ziVN~{iVE{`NpgsbODjtYNrC1nL<J;-xVQvZIQX^2#l%I$K&@|SX=y1bDPC?tZgFX0
zF$pn#Q6W)DDPCS-DPGVr5>8<$F@6ydE?zEPF<yCjaAFb{1(jM-QqmHj2Ar6fn53AP
zxQv*Dl(3YPu&|Vb6pu8>WKkX-5JO5zQc_f0R9HexUS3K{N?Hn(79}O6rKKgMWu;{$
zBqT(|goP!Az)e7LNhv9DF-Wa0At5CNy2L<1NJ3muTtZb$Obk>k2#AZzi^~g3%SuVB
zs|(8tD=5nfO7n|I2#Uza@CoxuNQp>`2nYxY2rvi<32+Dqg32z?q&uj@6A@%!5E2pr
z83W=93J3@a3W|W*TLQv@{GxJl3?f1TLPGqYISK{_1`$w9bBTavlej?32L-sexkR|Q
zI0b}-1Q|dhA6!D9qyQQ{<YEw)V_*;k<s1e<Rd6JM;#5#jP?SMXkQ3wzF$PgiK2Q$<
z)ar!l0~Lb|!UAA7^7HUO7#u>v!U6)Im<5js2+0bINQemt3QGw|3TlW835W}T3nKw8
z9!>!PF@8RNL0+hFAnF5%z>PWh#pP5)W##3$g#<vY2N6(XghN0?fRA5*UxW|r5^+Is
zA!%W0VKG5r9%&J25lLZ5VNou5IS`Z*krI&<6crW~mf(}%1GVDBdBk}n1Qa9{B*g{9
z1SADOl`beJf_R`Mo|1x6!crn25k(OR0dYYQIT1Nl7G_RPW+nzumS*7M6cghB#gr%y
zkFunil!}xB2#QDxiwKB`2=hsZ2=jq@=HlY=P#`WTDJ>xa$(>@L9s($9L3@xq;7leD
zNoJt#g0ix*sHCL0I4o6x%0C4KaWD{*lok>b1E&K40Rga(xVX5GkRYfr2^#kT4F`c@
zQ$Uc1M@U2jG+_zKd>{-O^y1=@lamtx4_pfhK_grm)R+VnczirO;PD_~P;^3aucRb|
z7T^&U7UAa+78DZV6A=*?7Z4QWQIHZ6=93f@5EGGC6jqZ`kdhRX7F3p&7Ubg>5)kGS
z7UB^U;1vN0@^Z<GOAAU1DoBAkH#}UDf*?^TVUXGUJfJy4UJ=j~f~2IB94tVUC6y%=
zM3f~}!NIF2qAUqYBSJDFk`hv)lG38$!l1fYSeOBlJwYS`1D}w9q<{c}fHbHH!2l^K
z890T6goQx572k7#%RO;+ettnQPEffA3M%Ljny7@RfSiPsjF_;r3@@*gr~;_mlN6Sa
zmQ<7y7YCJlf?R?^g2IS$Pe=q*`-%uk3PJLvgoKosw2U;^OfUh;gIpq@pas`?g1mwP
z!aRZ^l9I|?0tzxhf+D<p5<&u;Vj_IpQXCQz(ke2-()|3K9AW~J!dzT}ES&s05@HhK
zpcztLP|A>&=H(XRk&qD<mlWq06Bd(_;^h^Q;^X5L5a1M%76+Ake4uhqK>?IzBqT&7
zz-dTEQW}!<q{PG|WW^+;g+VbcEg{V-18T~P^YVfi;BrqwR9I3>K|xwtT1Hw@QW8}D
zNlQz~$jZn{N=kytJt<*PF_7Vs($eDM5I0FmNJ}e%fUtzPlDMRrxVShdR|-l<C`c#>
z%g9Q}Xle?}2`j3|3Ci$`NC=6@$?*&GN=l2!fT{#RK?Y$VK~6z%n+>_#6BY)QejpKW
zSR$2sV)F6~B0_?=%RSI&ETr5MMl1JtxELhl85qRC<(`llIBKATD1(p?r;rfn>>hD0
zetv!t25@&Bl<Gi}EP@OSqM%Zdfq|cg7sB8a0yQ~6MuD-AoUn+5xPXwbw2+jLrnr!R
zgaBx;MqGf4mrGC()D1u>_ufNH#zk@pNXV;-$|@-E2n%ovit>vH2=eoB2#5&sfo9qu
z<sN9PPDWS;T<*z;$cRV@O9_i|Daa|vDaeD%Jt5E(ha{gQxZIQAmEe^WRFqVd1eI;z
za!*hK++GwD<l*Awk`e-yo#KMx0?Hzwwxfu=h&-a)6XXY#d*U3Nf`Wo#JUl9r>QbuG
zic*SFiXt*1A_C$f!hDh<!hC|@!~w1b6%-UCq@-jdMIng~T<(Fg7HE0_l<vTpOhF0^
zK#fBc6%|n_DG3Q^ssiO`Nkv6y87CzpEG8xdO$i`7Kp0f+2@4B@$~~wIXlxl&?t#iX
z7>1U6@}P1L8rNV-Mn*;i+)xLvFa<{;BtZ%a3L?rq5fKpqSh)x4CJFK=N(l?|NeKyv
zizq0Gs7onINeRgasmRC(@$m}_3iF8w@dyd<ihu-pxfCR1gk*#irNo3J1VJGT5|swq
z0xI_e1$jjT`FZ#yC8gwH0jeUYBB>~%BB=%mUQrcL$;BWnD<UN+B`PH&DlP&l_e4Zc
z$~}G|0Vz<qCkrn3#6f9FkbzT3SVTyQfq_BwKR1tnsHmb8hoGRaBo{vyXmlP_C<=py
z(8Q(1g_NXZ<t4@B6!`dLB~;{OC1j<=q~&B(<fNno1O)_zd4xrUL7fC~9&RxnC2<ik
zQ2{<aF<}`I(9piHn3S}vq`ZP0r~v?~KSV@8OWC*~lLVl+2h{~4ydvVVvg$m7D)OSj
z;{5#5B0}7fV*EU^oYK+?8VaIvf`VL}l0wp=JUqfIT!MzulG2ire0=<T3JMBxa&r7U
zB7D;FVv^EQf)XN<vU2=<VzT`F{6a!pVses#;^I64JbaS;Dk_k)BOxU#D=Q}_FC!05
zM3QonlG2Kj(sE+*@?v6gGV**1Ad^9jV+B4wIXPKb326y2SxFTYd3kvSc~I9?R#rhl
zK~`Q#K}lL#T0&AxR8|y{FlFWBq@?7)Kw4T(P6Y%+Wu(-kq_w1^q(CDK!qU<zQYvB!
zN^%Oix?)OVsv1fn@&e-0BI1gQg5rEK^5P1RL2U+65n(Q2VUQlsVj~6yVPSC*1_m)P
z31M(QS40HdoDu=obV6bxf|ANg4B{ffA|iqUpoSg;gE%OrdBnjD2{9gS(8MaYI1e|M
zkeH}218BsT2cnLFftQCtN|}K{5|o=5L^L6Z9YRVlh=_23T8@$olH39U0%8oJkoG1h
z6@i+64B|pyHwyCc34_h!5)~5@5(3367>g>3iAzffiHOOG$cpGmiwH^!%Zkd1NC|QC
zaf2Gl0)pWFKgc)`ehVUC7<1h+m!PzgmV}~;3XiA=kBEezxR9`*0H=_+5Wk?XkhlQY
zB~l_%qVi($Vv-_ad<tR;;-EgP1doc6ijs=5oVc90tcZk|gqVzgw160&7@stsG@p#H
zij0a3s5q7p;^Pw+mIk*MC58ET_;_SR<izB}q=ck|)y1WSrG&+m#g*Aun7O!^nHc!_
zg#{USxFn=FIfX@pCHZ(YWVGcp<y1jXTwY9ENJ>mpKt^0tKv)Wt^gyWrgr#I<<z+yf
z4oLbF6O&T_uL}hY((!>anTi}ZnSt7e8X6iBva+Dm1WHz*l2ArQMFm_eN=eGfi%3d>
zX7)fmCy*7=(o)i(sXj3gF<}8=5%BySIOp;4iHM7X*NyQ&y3=ByIb0qkWhHU&gdHTd
zMMOjt6cj*X+M?i03>we|m&{-@gk?aTVo>SGCnhE?#3v>!A|e19#TFJ3=2Mju5fzXX
z5t0&9Ruj{fQ<akykr&ZWkQd<>6cH8`5EJDS5#kpI3G#8PNXv`Ji>S&;ibxBCLKq|}
zCkFC^ATMYJhhH2tbt)q(rvwX74H*p?RdE<kRZK$$ltx4q#ARjVBxL15{ZS!M=3syX
z5Qt=85EK=X6%t|)QV<dn<YWMslp+jVq9S6VvJ4CiTK{=?g~TOPWjTd~MP;}Jc|^d2
z5u&1^Vxm0UQgTwlYI2H7GLlLv0s@NCnu<!&O7fEON(!1va<W3gLL#EPViIDKqWlt4
zyu6aU8dBntl0t$4Qlbjtpb;-oNjZ5%8D$kEa3+9+D5zSKl8}&qG~Pu8#Y83f#ibM!
zba;g|RmDZ61O?<IM0jK*1^E=Y<mFZLR3wyyg}J$9MC2uSc|}>dg)QV|<Yi<)?P3)b
z6(uDlK|V2lc_m3%d0Am;2^l2?K|x7H0njoM9!Vux(7>4xuYio8rY0yI$;(O0ftq1T
zO7hB};E|D0l97>9m62DHR8o?ZRFYQ`Pyux`LB^{H2q-BjC`ijoODf1{YAP!$t0*gh
z0mxoe4HY$cd3k9WNeM*>X=#w*N=iy{vS0;D@(M~ynjjz{C#NkZZzwA(3u<YL$;oNT
zX-cYSD5;p5N~%g~>8gq=3rQ)6ORK61O9{#=NvS}(-wYDsV%%b4pt1{mTOos(n6wxJ
zgQTRC7`WU62d=27sHCWn5QC_csIaVt27{D@n1qC|5JZzCs8-_zb@+L~L%U+Ud|;l4
zq=Xm)FQ~Z;Q3qQ2!62u>zyKODkYW(m6Bmb$Vv0*hNHa)C@Q6z=Fvv2<fcia>3=**3
zF$063fEWXVlo)7~m;p4qBLPZ`+~QJFqM}lgpk}d@l$5xdq?CfJsF<XZgp#<aoS2Bb
zn4-9nxSS}j0FRictgx^!xE&1A3Bs>H1a8bNEU&IFt*)uTCn?G&DlIG}Dkdz%B`PH<
zBrGZ-B?Jm#22j}s>KDm~O7g2nsYrp^a?-q-8XyQ_D~W@uO?e@CAqhbVL3sgr0R>S_
z1x*DxQCU$1QGR|YF;J-~FD4@j+IXQPt|X--1sYe^k(L*g6O+=A(qLm{;o)InVh|J*
z1+5*Dk>vsv_A>nZdWuF$`bt_LD5WeZB_b;+AtWy)AtWXXN*$oo0K#&Lib@L7ki;h=
zBO@uPqyiojf($T$GMT0#I1#C;s;cVg=}9Xo$;*QUlpsw;O-)c4C?_YYq$(jR3!2#j
z<u0h0oP@ZTn52ZHs1PiPfM|YxaZo=9l=Z-?$9N?{OkNEQ4Nx3`Dm-y<aZqbfMMXtY
zN>V}s)Lny=u2Pa913*|o0Yr+5it<ZJN{aAHii(R1NlMDeiHVExYbi-c2q}q+$VzJJ
zNEs<<DJhAoO6aMmN(c!{h)D=ZO7M$`3QB<l1$Z^(R3%g;w3K8-<;4VemBc}!N>ZQ#
zM}!|VFDNJ_D$FmesGy_{3s5~pJw+`k7*AVLPZ5+xB-Er76_lhEm1O0mL`4}GB&8T2
z0R$o$7(~QH6-7lEL{&sZg}E3&WgUYk1COMHqy$K}-V0uS5h-a+1ujuhad{pgUNH%A
zaWP0p@bbti%8F?zs;J9LtEvkLsmST7s>rD*Nhzu->#8a!fEGoG^GQfbNJ$7v%JB0^
z^J&XSN=u0d3CV~nOM*?2QBqWqS5sF7g((Ds`ZoMBQlK8BjEs!5xR8Xnw4j8Hva$i6
zsIIz{xQvjnf|MAqyo@lv3b&%7x{-#Is;DRrkG#0D6d#{BE03t1qP(KKJgDMPS65e6
zRTbiw5KvT?l2=j?m6euPQ56!BRuL8!5*Oo@R#gy{mE{-a7m^p!)diJzib`^dDk>_f
zs_M$1QcGT5UPWGBNkd*qRa#9=T3S^}RY)CVvb>Oxpt_Kds;aWGoT8kxvb?UYnwpxr
z8mPinQBhY{S5eni*8~-G@>0?&QgYzJR7F))K>?InRaKRgR8@6BKuSqLUqQ(f)V~3(
z8d6ZuRn(PM*H%@xu#nc0(lgSMP#2L=mXy)b5|tKGQj<}K%%3nwNrDO-a4p5aAi=;O
zAt58dz#t_h3ocz4!1ac>xP*+jh%kegjD)DXwl;%|q=clTs0c)p45&`zmjN|i`K9>z
z`NjDK_+<F`_{5~8B^dZ5`1trB>KGUV_!ty*7#QS0S&>1~L{d@;)Dn>Z6<x9nQc}F2
z5>$afo>xRfM4CYg+^Pd5I|d;kP=N?46~WzIaj<zjQlMdZP__nP8A(lP8ASy#329YH
z6-g@vNijtUP^U#foKJ{PLR>*iL{t*oN&_1Rx#$SWWB}bB3ui+ZJfe!)#&VjvIs($-
z0^+iwGUAeABHZFK;=-VrHW6^pfXX&?X>}=i328xfS#=o|X%%TXK3#2HZCxEz8C4k-
zNjYgbX(bV55l{<HQAklpSzK3HS6M+^K}=a(P*6rf5e((U1$l+|RU}nqRHYTf6~ql>
zl*APzWVB_p*;!e5d0ChkgoMCrhvXHwdBi0o<OBtbl+9F()$~;LRP|(3Wn{z^q@_ia
zWu!$U6ciN|l|ZQhgcVg()Rn;{A*eKzmzGvl2Mx%9#%4jY2r6>Ax~kx0rmn7`VPs?^
zr=p^$2uW4SV4$lD%Ge4D@+ulq^75dWJy2?Zh$$+7ruw9$rNl)b)fc1=6BLw`kpa(i
zfSZ<leA3_<T5TO|aLEgbZ%}kgNoi<kfXB?inHZEHKv@)GlDM)mq*xFal$Mqe7nBAi
zHW_IJ1#t-pK|NJzX%Q7kaRq4|0~s?FJylQ_)ks4_N?24{Qd&e>T2NA4SVl!sLrREG
zS3zA$T}n??UR+TE6v7};RT)rqD<&Wcnm&*b7ZVUwR#w%91*nm-k+PnQk+PX8ICy1^
zltJl1T2n?vSyfI&U0z8V)Vq<9VE~5@m|$QKlM+`E7iSPx2QB$vPyp$WVBiHcy;T?(
z7>xe&3y8_c>MC=IiAgH*itvG2;1ZC4;Nz87k(ba@QP)zE)zT6cR#!04P*+q}l~vJH
zGt^L476nZb2uR6F$w>;y$P4hx3h2wr$jOR{2+K*TNrN(>q@0S1x{{_gs9FKF06^w~
z8fx<3AO%%Xk|I(PvO?1GYHFqeVuso>l5!#<$}$psigKa?8ayg0+UD9an&RTTyo!>l
zG6DjUY`o&mDoQGfN}#s4wzjsWrY5NKq@pFOq^c~gD5I#ZE+QhQAtE9oDZwYFsU$8h
zFCZ!)q9kHy2u@5Yil9<ULqkgqRB9<HDQPGvscI{!YRPJ8%F1f0Y6@$COjZ;Y7Sa+H
z*3eK_S5Q%qRZ}uB(A3n_(o_cnZEbCJZ9OerRaI3*C0SW@Sw&D`s-g~R6l#Kjs;Z`@
zAqdE*DjO@SS}7|lgW6wG%F2c+hO%0E8d~=DvbwTHX1Y>ZV)E+J^18a>aw2M)@>-zz
z6DcVM85t>FNoi?NY%wrMfl54iDFy~PIe95?dk++lAS^E_D#{=sCn>I^ug@Sa11faH
zKm{HHgPc5Q_q9A|TdII8Xr@j;kY8SapI<^&R*C^M@*w~<oIyx{K}DZ|K?#%%8Kf=1
zQ3EctWMmW=WMue2C8!dEBEOiJm>h!)xKRammWYTH1B1LIxVRG+7Lo#+$15!-2WkX>
z;#N*hPF7b|UR7B_N={2!UB+HnN<u|SU0Pj6S(0CvUrJI*LQEW~AZ1{91~wQc!7HYs
zXQ`lTXdoyjDJZ2NE-xu1F3KY*FCii>B_S^c3SkBn85LPAIW0LQNm(H+c`bQ$S#?<j
z0Rw#y)R5PZSC>(gQ;<^?Qx%gHkrh!9RuNW{G*mNGQ<hYgP?HoAl9vLt5>=#>Btcs*
z)MYf~H040;M-zEfNo6T{eR+KjHda19Rwf1!5lL|d0X{`#9$rZ)DMcY+b2V#C3r!;s
zl-HD#mr$0I6;qR!6_Zj1B|T7T0AUq%buBdoNCQquNl8{#Qwuz10qW=pgEN_d1}v3n
zo12>}sH>}}fD@Ib8W<QFf^)XAqPn(>l9Dv21tBFR1rbwGmX(!~l9Q2>6ays>7#0$e
zk(Y-wC?Qk4pcKI`ps%klFAvU(ps{OE#A|D7%gM>g$jFKb3qzw&4rYj&8k8j@D<>}@
zBr7E?BPu7StSl)bC1j*2BP*sZBcUv3U?OL&X{4zxqb*~utt}%WE+Zu?CMP2#Eh!=o
z5)|e$RMwW!mNC*)l2nlr7EqS~iE7G8NJ>eH3xhg=BJ!ZAQ#CaWeOQ2+tC_1A$-{Uc
z7AT3x>L{qIX(*^`DXGYTQlXq212}xZ1OtP(jHHI7B!i@mgoFeSgAz!GBm<wUjGT-*
z=)(CY{DR_g3WjRj5|Yv?e4_lI$x2Y6C@n3`&!?oWBxR_srK_T#qbDk=t!$#Lt)i_V
zudbtMs;#CfE-5Z4Ehr-=BQGN&rzj|(AZQF4J(ds^Rg~70l?Iujpsuc^qN}e13R5Ts
zjkbb@<sfY&X;B#&MPV65O-)NdNfUiJX+<$nbvY>k6-6;2ZC-VCeQP~=9nff=inNBD
zprAAxpQNX{in^)_sLidfudkz{BPt{-qOL2is-Y^WEU%)iB_^t%B`PW^Eyb^(ttzRc
z1X{$UB5Gm+PE6`5>RMV_+S<CBI-ta;qN1&$qHds~p`!q*Ms+l`MfE@?tBQ(>fPAd2
zrKPN{te~l4Vxp_7tEa0C2KxH?+WJO%1{xX~pm9Gfd1Ymg;o3SnYN|S5prN6oV+sOt
z8fxZh8uqHHs-WUXMqS-h-Bdx(NL$a@S;0`=%*s$!S3*HkR?)yfLQzyhM^R4!983&y
zax#1}a^TiE1A`0$gN%%#ECYkQyb{P55ErCORz^WaT%18#QASe5*qA|4PDV~n5;Ql<
zz`&pgYRwBOfI?ePUQkd_Mo?H#K~O+IN<m(RK@hZ%8frL$upooF5d(v=f`Xy~gRBiK
zxr1mG201x?IXMOfH3k&{2?+@W203t}3Y3T#L`7v77?dDov!sZK4A?wAIYmY2ln$tU
zEoY#hpsp$<qo5<FE$5;kBdIQ<Evqf3CM_T;AS10RDIo#w|AWnAU|@IxV_>KGB-M><
zlnqUdg%qTOrBx&qrDY_=d8HMl#Uy2<lqA4Gqb{c|rz@{3uOg!$qNkvzsI8!_pe$%&
zY+`I;q^+o}s4b_WprWWDp&=nJDle)osxGQ2ZK`RisV1!|r70~Uq9_B(iRv;cGN6qY
z+HyLII*Mx2YSNa9>e6a5ipGk@9Bi!o{H)9jqN38041)YBYP`JCGBT<nBGy_CIyO3H
zAgHLTs3@(fATObzATJ@K3Q8R&P@t}*rK_m~Nqj0QDhlAN1zrgcN_ZmL$|fe@M5e8;
zucv2iZLOlMt*#DER63B-&(sv0v(;3!_2gAmLCtho85tRn73%70>T+^2GN8gt0+K*v
zWI&Q4B65nLu^&M}aF<#@0Fo|@jf@o(6hRRU!+Lsp3W}f#5R{2Q5vZsLn$QCe9%^cW
zDQRgDMMXtv5d|4JISEAtb#)mzSrIcGd3gzKIcZe|6AMKL9WxzmIej^6Jv})w33(ZL
z2?co(S!ppvZ8<$TQ2`TmeK~zOGaVIKbs14XZ8?yrjv}b!l@yVbkdYBnl$I2c)Y8&6
zf(59xmbI3dB8+FQXsrcGAMyrD+M3$RTDmIgil9`esK@{bAP~vGASo-YEiKI;tuG}d
z$qTyB4wR4hL4)+#3=9lb4+VrI6%<W0c%-Cc)%nE*q(Q^}va&L=axwz^Dq1QsrdoOi
z>Pq@XVq$u#7J9nsy4p%w`Z|{Sni`Uz)f_@{igL<wqVg(2f=WW>DhkR<lHy{@a=Hq#
zGP1I=%Gz3b>IQ}euyB==lM@mW5>`<FWin6|B`Yo`t1K$7qN8IgByC}+Age4cuBjj`
zpsp+-tjDLNWoU1ts4p$e&#x}4ttccU%g!(Dr=_l?t_~V>H8eET*Vh*pmKW7BP*T^{
zkXBPv*V7XhSJo337nhY0P}bLwR#g#_5E54xx3JIx12ru@Jv}{r104fMO3_nS*D_Yu
z)>kqxP*T#@(HAoUnG9+igM6%~tE;M|s-&xKVPRlkU}OO5sOah%8XD>vni?5{+I<>I
zN_vXwY9O<9_4PG1^ua(|TVLN21QfM3tu?isH8eEj7#JAjG&L=?ER~E*^^H6{luVSY
z9Zcj6rBrm}RZL8zl*M%nRE$)>LB*h`AjdB!4{Ec4w1HZBD)I~r%E~GrV?bQ6GC6Qf
zC#xbSt!{3{pe!#Z4;qXFB?<-=6$S<dAr;VeIw3_NVIeso5g`>JK|vWMML7l`P%MC(
z{-6~vLJXSb3=HZjD#|Jh@{W)W6NFS}P*4z1P+(xtU{DtXH7Xbs!Oc6c4dP;Q3=Aru
zQjvi{8Z<l)66IG=R+g0o#Vi;rnkcDgYskne>nrFgcxuVZXvyg*=qhN+3W^EJ$!f?*
zNy{S&QU->HAR};NerYW;M^zIG3sGfR5m|L<Wm!3CNj_O+Sqacgn<O}Bv=p@z4U`R(
z)#a2#jZ}<O^py0JRD~?eK~PUcPeoTjU0F?8TT)w6NnA->OH4~lN6u2$Qdd(}Lq=Ct
zR8&O{)LPV%Q<oDH5);x@&{x)1)|AzhwN(L4S}2<<n{%?W3J9<=Gl+}JN;3!vsA=%=
z$;!*Ai;CLoy68LTTY;d8zLJWJhO&~Rwu+LZoCYX$SU`c6o}PgYxFiH8KqV!8BiI-n
zXlcBjs)dCfIGKSOhxYdNYPz~wTHr(ls^oQabSy1F8Cz3RUDr@aU0ngxs+N<JgNSKr
zDk{p!DJv?=fhX8xA*n=8R8&Dl1>BnkP4@~43MzpHbA-&z%~e#CAyEw>jf{+xm6a3~
zl_bT)zysRK%F0kP<aBkx(=D>HqRPrDGNMXy3JOxn%9@&T3bLYB`ie@Dx(YHH$`&@t
zF8Wsbx(bF0_C|&Z64HutN|MS7qVlp5${;~;K?_Yo1w#cZeRVl4IZz0LMD>+rW#we0
zML{z-63VhNqSCrL`ev{Iwb!-RwNioctX1rFL1{$ESVdPyUscaQLt9x^7L+*{z~Kfa
z7#O4!W%Xob8Dx!QWTg2RG(bA!7zC6Ql@&m`o$m;V%Brf{=<~_RDd`GH3CSygybT^%
z6%x`i&{D87FtyNCH?x$IGSzl8HPJCKQZqC&b~4k~la-g1R}xiLQ&v}!RM8X_Q5SX4
zRMk+Im6p;}GFDLpnW155XsT;&X$H;&O5kY$P_3p39<KmJm6DXQqPm2#rm?Y`sGOsv
zs*<L(w7#l>u&#!Tn5lrFp_Qklnwh-3kf5%jk(#Ke5{Hm{q@k{%t}bZQ)ym4s%*;$m
zOhwYrLQT&|PhLk=*VI&6TEkRIT1rt-Si?+DUQ0_<MpQ~y%Fz*&jtmWS3_#5=GYeyL
zaQNt&>FOF<>l&J=o13evn;Dr&S%OT~m6DPK`PkINMB7kX-B{Pr(cIkJ(i~D}TUl9|
zSlU?H7#SJq=&Grks_E!}3^y?|)7LWt10zE-Gba#GGtzg_H}cif(*uo3DC_Gx8aQcK
z+L&1e2dmqtxp>;BSjcG_t7zHS$Z1L&S!h~nDk&)|DKn_4DhnwogY+;kFerl}RZE$H
zL0uh0GB7Z}x=9*JvN8;c8cOoI4)zS1DoQFU^0J@;kAXo;lYxOjR1>`PUrkh0R7q4^
zR8v$$L_u9$nL$)pR8$nAj)6f!l)=EBfdSl_U{LV}M-7zFVNg{SQdMPO&|}aQk&~0t
zU{C|M>OhHzK^im*tfd5YqdaJM9waKH3d(w#8XBO;)znnAQP(umQ&iS4Q#DZyF;G=B
zR5n#HQPo!zkrGi-(o>L=R{?jAL0TCY816u6Fon5KO-Rnr&Rg5Y(Lr2YNnA-sUQ<y;
zK~_LfQ&C!8NkK~%>=FYt162!k3w2#3bxBK2OHEUCQ*~`oM+Zj-M|)7a&O}v5Lr23%
z)<{-eT3y;u%23K!$;sHsSYJ_3(O6MZQd8Mb*-*()SyxF)R7%uD)lAb&Q(sYE(M`)x
zNncshUelh7gH2eNjhR78N=cqUR9IJEP*6!(Sw~XB)5PD*%iP(_+00qfTtibqPg7mi
zNK;)_Nzc&G(7+K23`|WejI|(%Pghr0UERzQGz0|NPXZeCHq~}?GzBL!P_^ml>8WF4
zVrU3XRA!*7OpT45oFJv3u8F0(o}LOQYbhx!L&Oa9)l`+0)m7D%<UmOTlm$UpQc^`z
z6Ea~5nYvXM6%`c`b+C8P)CA{6(2zGM&Mhr1L1R1W>atQ&nwpxRSkwR+1j5F~kOrWl
zq=ts3f~2~#s;aD}roO(Cijt(WnX0<1iK>F0rh}WNznQa{iK?Zlr=_K;w7jZ{x~ztp
zq>7@nCP+|9#8KZ;)l${jOjprR85F`GQ8Vydj=Y4tyo!>vrjmk$yos@y9V|dSO*~DU
zHDNp#El(3r0#UctGBq~SHnq?-)KF4lV9?NHfCLbTWMGg}RWwypWKgtHRFoHB&;#jE
zVh~nW)lf5KU|{gRAu6GurR{9OucV}ABqArOtO{vGtEs7pis+l^E4!Lm+ZpTF+RMsX
z8+h7S8(LfFnA=)<*_fIrC@UzdiK}U;>!?X<>Pd*{h`Z@&>S`;>$?B<DX{v$@(ls-)
zHnwxHg_x-hqCnFddRkgqnwp@7mztcqs*bdVo~5O~xRR%XmYSZNoT-+IsFAL`q_vQl
znM06+maVd~h_I2Wg_eYb8mEYIs+qBwu`#Ibad2?3wY8O#)Q~o_(=oO%Q8v^zvbK?v
z(*<?bR8>WFZB3N*^(5paWR2xKJt1kw(9GJ}+S<m>(hd|n#>O_r#%7Mj=C(R^b~-w?
z7PhkXAd`({Wu@(9Wo>M%tPIQybS#ZMJ?-r5?Cn5$t*sp#9IPE&?VT(vEDVixbgZ=v
z4MBIcTHD&1n%IJYg@vuH7YJxsnEIGngqxU{s4*}wsF|92ntAEiyV}^t#OOHd_yjp?
z*emK;XzDvVE9uHv+UeQrfx<|QK}%CjL`?%+OEEC0gGxMo4F(1s9evQ?1Ot2^Lr+aX
zfk9PIP1(rZjX_USO;b}@0aV~IFzAC~T0##rCM}^QAt9kAAtkOSAtt7xqpi*$t}ZSv
z4pGOzASKRV=ElHa2#O8{%@EKqCZy2P(lTJs(h}9wVqh?4FcMQ#RMchA0(GB3X^4SA
zPF9_PL0=8*AY~aDHL!Ui8hU!Fs(QM*Ak*~pw48PHEKF3@b!|1RHRH@QRLs<@HLW#G
zRmEh*)YVLs6qUj4V2FVX3^!m5?6ioInOlf~i>HT_j;fTZfs&r8hKhoas-CKXlA4OX
zBG@HnT4q{yI(9n7YC6*PdiHwOI@US{;+}3GXrpJNXRQgUHZ2q_6m{fu<jiHwWi8db
zth}sDRZUc_RHdc$)XmgD&{$1QLRP|B(^k(`&s5b^)lbht%~V~_UC*7HlU-DlorOV8
zPEDCXLe$7aSV&Dn-AG0{$THF<*w)9!$Hqs`PDfA0SXW!oTu)n3-Neky%-j<S%&e{L
zEcGFY&)C>l2b{HJWx?GeS#T!vv;ikG2L}g-pr9Z_Yio0JaH6sWm4ud-US6P@+tk$9
z+Ckgc7&PdouBN6A5i>Q_(o$E~(biE@1f?TzhEoI0*lFtNfhTMwKy$xhVmhGtTX8ox
zH$6Q)NMvhjf*Pd`4i38D!5l?dSx5}(fhP1oW~o_Ofl5YIRaI$ST|E_P9d%7jMO|G}
zQ#DO>X&)PHZAEKM6=Pj@KfOpB9~)~;2dy9n2Q39<Z4GTjT^$(>RXIJ7pscv3se_h-
zmXD3Gnwc6Xgh8UVda7#bYRb||${Ol&dLV|SrHvabK!YrUEPeD~Ja4@qOHlgIcGk19
zv@x)@GcwatQ)6Jz)nl-N0|o|VO;u}ERR&c@RaIpn25?EK#vrP#t*c`N(#^oY%mBs$
zY7CGXR)&EY#9~xpU|<Aa)dEq5i@e3i1iGz;9elPjFCV{vppdYLsF=8fq?ELbtem{U
zQAH(X6;(BL4NWa=9bG+r14AQY6H_yD3rj0&8(TYj2S+Do7gslT4^J;|A74NJfWV;O
zkkGL3h{&kum{^8Y4C|+Fm{qs-;Kt*t=QEsQU|70r@sj3+iw<>MTC;%R=E~Vq8ye5_
zoo?!CpD<(E^|r(Hz1OaG_P4A%a&h9!3+Jy)nX_fn+_?Degl&nNx9-}$W9PA?y}S3!
zOFq|gVBh|flP6l!QqwatvL<Ec=H%rU78DhqEh#H4udG-;xw@*R_QvHE3@rRC3=B-u
zm_X-$PGeADaA0s`sAFVjlx9?BG-fnsv}5#OjAl$_Y+#(kIF)f0<2=S?jN2LaGhSnS
z%J`P?JL7*QStfNRZ6<vtV<vMZPo^ZMET$5sGNuNmex{jBbC~8c9cQ}9beB1dIfglb
zIiI<Xxr@1nc_H&T79JLVmKc_JmWi^Avh1?lvb?hVvJ$c~vP!a*vWH~P$^MgLmE)BY
zmy?%Ml{1zzmvfhkmP?k)m1~vjl<Sw9EH_hbvD|vOopO8SPRpH_doK4=?!N-Jf|!E3
zf`Njug0+H^f}4W3LWDw$!WxC^3hx!g6qOX4mDrZsF85s?zC3z)=JJ~5t;^dVusq;;
zAn-u-fzAWt2WAhf9@su`d64#?{6YVNnGd!<*z@4TgNqLyK6vxs-GdJg86S#0)Ou+8
z(EOqE!;ptD50f8eJe>D%$HPkx?>ypo#Pdk{k?tdxM{bY&9|b=OeH8vE@=@%ggh#oL
znjUpLdi3bsW6sCik3}DgKUR6H{aE+0;bZH^PLF*b2Rsgb9R9fYaoOXV$E}a&Kfdz#
z`4g5WTu%g^NIj8#BL777iQW_ACuUEqp4dKddE)yd?MeBQ{wEWk%zQHc$@V9Eo}74c
z_R0At7oR+S^5)6ACm)_NJ{5ne_0;sK`BUeo9#6fWhCEGvn(?&f>9nWwo-TR1@#&7I
zN1tALdj090r|+I|JmY!B_e}bk?lbdeuFu?``9BMO7WypwS>&_WX9>?zpXEMlde-r*
z``O}WkDk4I&iS1Cx#)B8=PJ+DpX)w1d~W{S`nmISzvltZL!O5}FMeM3yyki1^Va9{
zpD%j8>G|R3XP#eq{`|$o7nfgLeR2K8+ZUf-Z+X4@^~u-QUq62R|2@xp!S}lF7rkHi
z{`vdY?|;Al|AF^|&BrsJ*gmm;lKy1>ecNxgfB*l3Ryry$C^9%QI58|><YJU#RA)3}
zv}AN-^kR%-%mAm$nc#G}m2p4gMaD;ruNc2D{$Y|~Qe)C$(ql4WGH3F@k}i)i-C(-S
z%)lJZoWPvST*utP+{4_*yqJZNg^wkWC5~l+EQ2hIEEhCgO3Nz9R>~fbJuCZ9j!BM7
zPE1ZtPD#!{&P>iuE=VpxE=#UXu1&5_Zj#&#xjAy{<aWsIkvk!GM(&B+C%In=3<?4Y
z5(@eXMhcb+P6{pxUeI)TP2n9pT^cO+SsuPTYI(-;s^v|~+pwfd`v++c${wJm%NH2w
zGT>p%!z7&PGKi>jY4zCYu{S(jmOid|-12z-<I9hqqNPh6c)GL)r^_;Mx}1TQE+0O5
z0Zo@;Na@n+X~5GYg6UG{nfWv4XKv5@p9P_%%SIgOQX8But)4qQ_kJGmJQ$oVOP^Oi
zZ+zbJd>%Mm9(;c0`Q_(N;py_hix02Yzux|O@9VR#Z@qp6PL~Sr7rbBh{=xfK@87-u
z_kjzXE?J=Ia?@`HNV@$0fPvxveQb5de^!Q*3=9m17<MzPWmtx!B7nhz!HvO%!HL11
zL7zdKsfvM(f%X5N|L^`k{r~v?Lk5O_;G^&UJN|p~-}=8U1H*q+B;5=Q3{Q7G-SKqW
z)2&apJYDm2)zjrq1D|p~mwIyH$=N3-pB#L$`^nBH>z}NBvi!;1Co`W+W?*<y`=s(o
z`IF)&g-_C-#4|8F31nb+V$HztME5ahNCay5qyG#HkA6LR_vrQge;}a;KkuhK&cAm(
zMk0nQc6#)`=uZp`(RUaal;f47ltYyr74|EeC>ts3E9)xjD03_QQF^L$M`^#(Zlw)M
zD->juCMiu+nxNF6l%o`><getX<g8?_WT2$2q^|f$@uuPd#qEkcik*tpidk}R<=!ZI
zD!MDWDY`1UC^{<ID;g`xD@rLGRM@64M`5<YB!!6zt#YbzDhibfg$mgU$qI>bTnf<&
z4hr@PRtm-nQu5E`ugmY2-zL9Neuexp`K9s;7#QRy%TJW=lkbu5mT#8NmXDElm3NW1
zled&tl9!Vgmgkq}ljmh%kozw8P427QQ@M+B`{lOEZIN3kx0HcFZl2skxn8*}xkR}r
zxllPzIcGU@Ic+(0Ib}H^*`KoCWWUP3l)Wi?LHeTfCE1;_+hw=OZk634yHR$%>}uI1
zvJ+){WV>XGWld$ZWCdjTW!Yp|Wq!(hm)4efC-YL~xy(bETQWBp7-TNX?2y?mvspGq
zW{u1gnMpFuGNm%PGU+nm(s|Ok(mB%EpjeQYDlu7Nl0?5muSC0OwP?9$rpR}ZHzK=5
zc8Y8l*($PHWUa8A&{m;WLRW=qdAS)FSf4R4GEHM(V4A|fz%+?Dfw_sfhj|I}GUg4;
z`<NdvzXO@c0-hiTvqV_rSX5ZFSPVcse3(Uyfq_K~N#{NW29^^n?^s<}qgd~-equ#A
zatEJD5INQp5E@2;_+WenB*J=)^${Bb8x!buQ^<XOAW;Y(#6rd(n^_4QbcU>c;MlAo
z#MsRWZo;CgWQC1hp-WJe&vJ;caV(2i_7GNutb%0<n0JfeD8p=qsSFJajSOcP`WQ|#
zG%<8Bv@=X#n87fO;W|Sb!(oPchF*qi3|ARC8TuJo7}hZyVYtXJkzppo1%~qsR~V)+
z%wgEVu!&(VLmWdqLpMVL!#0LQhRqCH8Fn#jXV}58li?Uc62o4G-3)se<}oBQoMY%=
zIKZ%vVLw9(!%2n{46O`l45<w144DiW3|S157_u318FCo%81fkk844JR7>XIrGL$fs
zF_bctGgLBEFf3=7%uvlx#Zbdg%W#9?GQ$dnw~R9wUNUAdyknfj@R4yb!)M0j44)X6
zF??fO!|<JPEyF*?Jq$k?w=(=;+`-7exR2o%<2FVP#<Pq(j29U>8P74^V3cBf!zjY|
zjFF%54x<?33r0bPhm3rTj~QhdKQJmVeqmH*{K2Ti_?=OeiHT8ziIY)_iJMWAiHqSs
z<6cG+CTT`pCILocCMkyb3=0^onKT(~nY0;gn6wxjm@F9`nXDL&GhAZyU~*@4XL4hV
zU^&GY%oM}u%@n{G&T^75h$)&egyjfh6w6u01eRM2D;ZN+9x|q}JYqP-aFdCVDV8ao
z@f)KalOUrHQy`;1QwYNg#yqAprgTO#CPk(Urc6dQ#?wq$OxX<28FLxUnUoj~GCX5=
z%5aF`3F8&UET%>#Z>A=uW~LUVR;D(_TTJat9Za1}T}<6fJ&a2j=QH&(^)dA`O<=st
zn90PzWWxB1@ivng%W=jnOlnMQOv+5UjGGuYGMO^2W}3(}iRCooLMB<prHrc>=Q7S?
z@?v6Un#?qX$(PB6X)2QwlOvM_<02+!CL5M(Ow*XAGhSuPW>R7N%(#K&9^(SWgN&OQ
ze>3qi-ejE0_@Ctj<0ZyxOy-OyS*|nwV=`hgX7XcN!?c!hCeu2m^-LR>HZg5x+QRUL
z;R7Q(%QHqs#&kwzMlVKjMj1v$Ms-FV#yCb(MoUI}MrTGh#!yBJhOdlP40jkM7{eH+
zGag{t%J_<D8{;&_IgDo**E8;CdCYj2$&>LV<9o)hOdL#nEH{|s7;ZD^G1)WOF}boF
zWm08a$)wIC!?c}g2a`O@F{Yi2qKs9H+>ES@)r>-n!i>_4HH@{4b&T?ievEw#uNdAl
z7BF%#{9yRaSjbq!D8MMmD95P6sK%(xsLxo;XvgTp=*j5ISi)G!SjO;$v7E7jk(V)%
z(S?zTF@-UnF^6$BV?E<}#&wL_85<ZI8SgT_X8g$blZl0ihe?RBiAjgan#qGHh_RWm
zg|U@!1!EgyJL7eh+e{9Ohgcr4++=*t*vWW-@hD>#;}dXyubZ)lv6t}^Q!rycV<lq;
zGb1w-V+_lA#z>YkjL|IT7+DyPFd8rkGs`l|F($FxVOC~VVOC{UV@zhb&uqzT#dwNg
zA;TiZd}eEgr3}j$)-!1^EM{23uz}fzp^jlKLo>52lLC`J!z^YyW_yN>Ozcdy467N|
zFgq~ZV|HS8X8g-!$oPlJfaN`N409}_D{~U#1jb2>Qy6zL?qYe(c%ShR%SD#Uj1w6r
zvp6&EX1vGvfbk*YJ0?~paVCAHP^L(xD3%K>msqZ_TxC4QaG&7;<8j6lEQeSQkM@DF
z^fgBNz@vTO(LV5KA9%D6JlY2y?E^D_`oADN+6M;r=Ex*Q`@o}p;L$$tXdigA4?O7l
zzzjPW7<9aMFmMJ$Y-D8Yi`>EZzjX(Li|kGYP6p=qINco#j5-Pmu9+?y7!!1NFfi%t
zU|`fz)ZM|rtfSzzfmzipC_*_>p-Z95Go?$xO(7#OWdn;Um=20iPVI`+SJ=Q19FeK8
zfgvP9af3soG@O|l8EK`vgMkHP4hz_vu1Ezpg)FEES&1n@5z1YW`hRtIFtF-)D{Np^
z3y27e*wEl2y}`jHQd&__!F9udfQStTT%;8vBXxH$u)$rbpx|1YDFJmeyUq><HZ9#9
z3>*+sf+IFKNN-?>?CJuU862UkxS^q|OS(%r62{-bZ~#q!kpW%60V=SAfmtm$Vgs|P
z>kh_-fCy#99gGdiiqaqfWkqGhNNL4L7u_8UoI2jY5w0%Mii(lCpfJ~F*u}uez{0?;
zy@P=P;#$xF9H2cc|CAXRm|YkcSbl-lL^3cj*fTINF|zz(U}j)vu;0PJp}&KHO@9Xi
zhrkX7h6_6w7(jf19Slr&b}%pq>|kKIvx9+2U<U)|9fn;DYz#~c%-Xv^4H*VzZ39DL
zML|VjK}A7(#zX(?G#Lw6e*I=+x%fMRWd*2iXJT0N|1RSb)*uF626=|qT?~8-VhqgM
zj?xTlU?v}f8Ur7L83P}K8v`Fh7y}<e8Ur6g83P|f8v`H1GzLC~Wej`_+Zgy5j)87@
zigjdVxXQrC@RWg%fhm>&<m_Dx(hS02moPG`*)dr&8p$!SGYgCGF)1slnVQ%!85_wl
zF><9cvq|cyB&h01ura6Fizw^MSb7L6>&wXKD~m9eGv`ZcO7rteYfAo^`0u%lzOt}~
zB}hg@S)YM{i6NF*nwgO`h=GqmmO&V7>kbA{eMms@>l+v{GOL-Im{~I#iHVA^u`?^8
za+&O-nQg30t*jXtqyC8@*v!(5H+i_#6%^E2dD#A`qi`T$r~LmZiz{m|gEWIYLo&k-
z26p`&4BYw<yCwB^F|aVOLgRvwfmwS811l(!E<kAB3p*HC1a>g+U)aIGD6oS;5EQWj
zI~atav^Z2;2C7c>f`K6;yE3yeyE3z~Fc_N~3oDx&3mY?oFe|gMFpI0^8<#hlZ=y1z
z9z|tFy@BuoGXoz5W(NN2ae3sz{Ats_+nfH?Ft&j3CPvjwjEVo|gYc$*w;5F#m>J6d
zm$R6%)-kv;1TaK1+V5frWROSl#4ZL01~;&0<OOyx@Lbrzz@rcGfF#txN>C4|KxvB$
zj;su~7~B|MF}N`>#X3qea5A_tNHVxFXfn7lSTeXVcrv&#L^8NBWHPuhR5G|RbTYUx
z%w%w5SjphVu#>@!;Ut3_18*!Ot$SYpr_DeHF@`_}HHJV2GloD0H-<olFor;eG=@Ni
zGKN5gHikfkX$*l3%NPO~wlM@U9AgM%;Dw~kK!&FbfecKs5I2Wi*umf+u!AA?4#N%x
zWpIkw#UKgIL8=TEV2`Q_>|g+S3Y5iMFYIFQ2CZEd6tdjGAStke!RNvb1|R)h3}J9l
z3xORB;TLu=gzFm^vMQS@=`pG6F`Js$GnyG2iHXZGiwlCdX6B~GqH@gQa*U!P{ETeM
zN^0tQjOv1NtfC@(OzgrYdQ9qqcFc?-a!lfae9TNq*3Nk`zDgWI0$luV!cx4FoI<*`
z{wAK&Dt)e>wYEzM@l@thWOw5g=9lA8D~vG7OOJKcaHw3Hdt1pmK+h=9QvRQsoQa2)
zikpQ}XCa@YvM37|uP~3WRJoFvlu?ka3NzzV)xf0cz(woW^YfVmCFJ<oM8tUc`X!}B
zVhY&)l}ei0c}C_q26rTzGchWuIa(S^{<C7yu<>TLl{Yig6=Te07FD+f<qK8@tN-`e
z-m*$E2s6ktC^MKdI5SS(#Q-`&0aP$?F-U>alLdncnAT&kgOxa33}Osi3~CHq3}y^m
z3~mfu3}Fmh3~3Bp3}p;l3~dZt4AU667?v?`F>GVtVmQXY1&dWKhNlc%ki^BtAi^NV
zAi|)=Ai`kAAj06rAi@yFAi|KwAi_|_Ai~hbAi^+>L4;u$g9yVm1`&p13?eX7L>Qhj
zh%hk4?gH<d*Ao=7+y&lA3SxoNunNN~1{H`koD3=qk_;*gnhYuomJBKko(w7skqjyf
znG7lnl?*BjoeU}rGZ|DERx+qC>|{`3ILV*_vE~+o9m6XIJD4eU43Z3X44Mpf43-Rb
z44w>j43P|W44Dje43!La44n*i3^N(*7*;aaG3;cpV>roR2hIt40y`L7L1|V|e+PrH
z{w@Yq23c@miZk$oX-x)4aM}fxI0_ebFc?GAuo6hUzzzoMI|hcr(83p#;FOj0n9N1Q
zjE&4pP1KZ?*i;#n8JY3OTRCJjyEwOIIyz>yI=i%_JKS~&403l53Upz9{kJxWsd*A^
z1*>AZqV@EmyJDg{WAyZ5I-^(2ox5Viym`le9b>inV}nB$w7M_%|2<Y|mfs9s3~>y3
zjJ&%TLK&37-Zf>22c;oUITO$DiXk2ry73H>4Dk$_4Dk$>4Dk$}4Dk$+4Dk$^4Dk$=
z4Dk$|4Dk#z8R8jMGQ>0NWQb=t$q>)L8w;wi;u%Z@g)G4(O(=sHLnwn9Lnwn8LnwnA
zLnuQSLnuQULnuQTLnuQVLny;EhERrO4519$7(yA2F@!>*`6@#w!&8P(aB9+KP-X}P
z7Z}?5pz;%9`VNNlJG&SH7_=GE1%)gbb})$P?_iMA-^F0SkOKCU2Lm$$sMcUcs`ljs
zb};aQwJ|ezfQ<x+MBOnkWK>d9R^nq~mt!_IGBX$FV+KX3Iv*p50#&o-dW;|nRNI0g
zoL!Dt+}MuU+>X)MNSslRS)GqrR78%+*vO6vRQ4z<v4Obac8o0hgtY|>?KEWtM2$_1
zMWsz7UHFWh1GEg>EDR*H8sqAhCu?X2SNdvcXoNII+9Z2u=z1rciRtJWNV2eiF6|Q!
z^O2SKmuTu^XQ3#hAi*nZ;cp~wpeoJF!7s+Erq0U6$7x{56wM~*UJ|D6W36IjW2Eb>
zD=w_8FYV-E5?SeL*HD(C<XP=tm*$}%WfEv+80cmrqnDZzuP$b8Z7pT)&i40=M}At4
zo3Nc%fT~4KsEM$=2J;MUGa0UEZz(flU4D&1P`Sj&;LI$|m<(<wa6?-O4EhF!!l=!G
zg*aOP44~6l?)+0`4rSfQAjA*}YAvyX(jB#0OQ41wC#b!mqOQhdDj;m8D$d5vCMX~-
zCeCdBZ(F^$`=nY%PsOE)fq@B&{wW{7*TN_`l~I<F@z!yN&bP<@ZU49Z*xN3sU;imH
z?E$+paTfzG0}IHVp!~tY@QQ&2mOoe+BpFy3G#OYJEE!lBJQ-LRA{kg1G8tGHDj8T9
zIvH3PW-_oatYlze*vY`caFT%qT>9_|>|hW9l|G#MI~asOA!uf9CMck;rf$w6E+i<z
z#LmX*z9=CuFmb6Oqi5|TcklXt+y13>y*<Y0$>@3PZKuQWTmSz5dpz~u`<8ph85kLI
znUtBkSrZsM7~C0lFu3UNU{KTtwU!kbT)>4eKLd;<3umdrS*CE71C(W8$S7`Z$0R1t
zD8|Rc&ML|($IQ>j$Ee4s&&Vz;#-`1vq-HLx&d$fArq8Hm$7HT*3R<sh&uAtl&uGr9
z25u>`GjXy!=aLW?Ww&8t;uGinw~x_@SDcTD&4yi6OoHnLOC*P=RE3lXM-<BokTNzK
zHYQ#%K1Sz%`=kW~`E2-%L|(8&afnD&NQrVVUtxOB#mmIWlffe<%*PzU63ommEXI?;
z!^zCc^^WP^0cisRX+{U8w_ru-T;ihq%z-RHY@(v#>Edi6@0b`JK`KD$FZKUYmh&tE
z4BQOXyFd*UcoD&VVF#oaaDf5RWnj|Z1-_^pREB`N2^V%Sa0~2UU<0)z6$O<A6-^Zd
zjRh51&j0<J@sE-5e+CmX<Fdd1nHV#f82|ofU}R|cw~}!e!zTtAhE!080@RF$w8FUW
zfa^nHhF1*2u(Tx10IKjc8H5=u8H5=;8H5=k8H5=!8H5=s8H5=+8H5>TG6*xQWDsW9
z$so*dl0le(7t}*w)!)S+!N3RZA*hP5v9qzO+cBC$sv$ilSdqoJOH((jMo8CJ!A?U;
z)<8u>RLw|M#adIG-6>x;M#YjxMasxiR!LOFP*%oJMMTjy928aojMJHJFflSPGjKEP
zf~*kNHZWvVG*x7}@wbAhgK>HmI8V>`f0uDK!vh9EP@V=YkY?5f`;UX+6$1y%e;f>w
z3>*xa3>*xW3>*xe3>*xR3>*xZ3>*xV3>*xd3>*wI88{eLGH@{LWZ+;p$-n{fA1LdA
ziU<QkRkR+@Y}7tZ9BQYAks<p3QRY_GAh6pZJsBoY$zaT=%*@*GH>`m*=vOhQ@8kUc
zKJy+{Nd{>Kb%w(`7&O3*Sg`9E7(fT=L0jAm;Ikh!85kHqtL;4*7#JcM7#K1c7#J!U
z7#KPk7#L<UFfgoSU|`tEzyMy-2x@U_AT=BK?ttq<PzRBsULhm}$=un&pb6@)ibA^=
zstoMlG{9)0$D*vn$08~s$6{<`$D%60q^!gwC?I5PB*e6xkyBLDL0`vCQ=FTbnOj`b
zPDkHCQ<RgDk@e1lhj;Egd~k=U*1EH^KFP`|slKz*+N!g&A=%nGxuLVu>ferks~E!=
zJs3S0L;kG+rH?fX49wvyzZkd}gm;04KNy&`L0xryP*2XlP?OQrTu|9m)mTuRIs9+f
zt=o*MYi=1BvoPvq{LVB6=}%!`U|!8C%%H=Nxr;%bfeTi~axuJuHAguaxELfExEM4U
zxEL%MxEMScxELZCxEL}SxELxKxEMMaxEN+Ka51c8;9}Uxz{PM9+^F5b0P0=ofx<_d
z0n~Tg#UKT4*@619isp8#rY3q!;Obu8ju~F1^D(oFE1EN}*8TH=(XO!~%U@5{&{<tA
zFwjTQMlrs$&C|6l(?Q<MOItfGE>e|=@rWB^<-c}QpU&2{i3{UwBduhl%tNh}!>fFi
zRDxRK_2T2>^z>q*!ZldtL+X^k|M!@eu?jQTF&qVDT2R6Ur!-cER}8GMe8S2g$-v5>
z$-v5B$-v6s$-v4G$-v5x$-v4`$-v6c$-v4mlYy0CB?BwNP6p88SyphH%Z!1QK?2;M
zG1CW|X~yu1!3<`m8G|H)8G|N+8G|K*8G|Q-8ABw48AB$68ABz58AB(78N*BlGlrE6
zW(+$S%ot8Gn1Sml#XCC~96(`c$e;mkQ3*3}fN2>9Ye-tNV+J>O`Iy+@;mF1=F2~F+
z!p8#Yk(q;9Q+7;{&}L(26b>o#R&q2@^z?9$u+>V;%rUje3ec<XXN>KL)M8X~ODt>i
z2wmzqL($2>URKA;R8HC|&PmBzi|K%nYh;G0o2{gtgSxqEyp5EcWuS5R@=z8g9j_!a
z^Rm2TFKrj^gD&C5B1XZv)@Et`2H=|`m>8@W7?_W;YBMl1@G<!AVgM}~MlR5~Kn=nR
zI~YK;0H{s|4HmKJgNkcV^nj`e76uM*z=G-kF6ih352y|hROe(AR5WEY7Bm)B7G#oS
z`L~%d@Sh@+&Z@0j8ILnrF#bLM&yq1wj(N?WIcfi(X(0UnJ?7agzZkR`s&_H)Fet*(
zyduLZ21QtWDKbbhC^Bd=C^A?wC^C35C^AGcC^BR+C^A$sC^B?1C^F1sP-IxipvbV3
zL6PAkgCaP-cm#GZ=z`))20UT}@&hF8voolH<Bf$uje%WI$PzRXqR1=`YP-rYiDHi{
zbzx?I;lB?hSZvyy0w&}+C^<wIwR^)O$I#nIQr0TM%AnZQRF~z~g@31*v^31)o4jqR
zi&Nlnq354zZC{gYr)wh3R1V4mObmYi?=x>=6=o1*Fk-k5>U@C)xgZ@Zp$nkq&<+L$
zNJ+`S06IMjv{BHEfq}t|fdM>5kjB8kP{zQ((8j>PFpYr$yk>kG0|Ub`1_oHqfq~&E
z0|O{1LG3j*hF735J;=BT8-pYR8-peT8-pbS8-phU8$%=m8$%`o8$%@n8$%}p8^cTn
zHinf9Yz#XY*ceVSuz|ysO#oEZ?qX165Ms~-Cj}EwC^IwYfkRai+96kA;05y)8F(2~
zAfXKH5rRu(CRP(W7GriLJ{ER(z%zk*7mUI2aUP-U{1QrfvTCj-3jcoFW=~mvD3#MF
zH#^zah*d4aCZspr%AsI(bjiwG6UOuR@9x>B;2-E~qiP(IBT#c~Lsy)ksis?8dXABZ
zltaO^(1axwE`j|=!F6*Q0|WCcmR}4U4Ezi`7#Q_;f$}go_i{2SGb*wx3oA0u`Zx6r
z<H^6zO(Nx)MOlvgwqX(3$~YSoU(5^<|L-#|XO(0SWKd%8Vt5Q1-T@8k>|$_YV1T7v
zifc-6%_zwr#vsX{1}>^V!&{OJVGNQCX$+DKWek!GZ48nO(-<TfmN7^&Y-5mQIL06e
zi*HGWr=UTnSjd19D2sCG?_h8e*ufxlX9t7wom~vZ3>FN^;HIz}lm(IZ0mY*nv~;rt
zk2V?@GD7PHXa^3|ol^(*=0Kf0b8s^R(y%gD)?-wMkHLb5Mvdi|nP!S=+Ni79YD;K3
z_^Fwg$*I@{>vf6gy6S7Y=u3R?D4!9SIWODPI5f|i$s<WR+@rY9&84T%y{nVazA)5?
z`HMlgv$}$nzkywZy{?E>{ofXkWDj$h#EWK`!A5#MNx2cd$)-*z6=qIZq0UmuwldMF
zKGk9RDxUe?aa~rjZczoGc*B~{7$7wR#jyp+t(q5hFld5C(jmE(jX{iojX{lpjlqn8
zjlqq9jUkMIjUkPJjiHQzjiHT!jbR!C8^baNHim5sYz)W1SqnVc&BpK)oIxS&8lgL&
ze5T1Dgve)743gk{r3dcMgIa`;fiFeSkPsxFfyZ2+EgmLSP=RJ{WXEET=)HsLc&4?8
ze5UGVqQJ-s%4dgDI1Tf#<uhhw0{Lue7$ToBF@W2^%svc)49X0JprRL4Rf20`id(_Z
zkhuVv!H~MZ0BS6WgTsUumS(}p5}p<XQMrt0jb+rPGt()Qw)5W#6fUTZ4DQD;`!L8b
z=rNq!#URU|3d;GQUb`%V7=tW>8iOo@8G|f?8-pxE7=tWB8iOoD8G|fC8-pyvGzM9Q
zWel<m+ZbdSjxor>@~kYwQwCY^=ngl7DuXOIwz(nclbhic12?Gn290!cGe|OUGiWk!
zGgvZkGk7v^Gek0QGh{MwGgLBgGjuX=Gt6Y*W?0F<&9IY!o8cq_H@L)RxU+)+H0%tT
z3=r05*ulW6zl%YOK?xjYgnLWOXu*f8^CXWNkU0BNOucA9%D~95;{OqrK;};jYz(5%
zHZwDL9Fl>78JwnB8BG~QIT=|3|AaHI{L9Gn--hv*72~gpe~JGRL2<H+;WNuarUl?R
zE@6gU4D8?`3e;X2sE5k(@b^s?br5DU&-@ph32Jwv+RY5g#NhD)HmKd^oFK~?S1|qm
z%gDU)Pq+=^e8%|||Jbblfp!8jF*yIf%iPT>$)L_)$#8WSXdD_Gu+mg*!GnhF1TO4g
z5YPwL4k`>{3@V@#<`~QvR2bYCR2ae-R2b42R2a$_R2bSAR2Zf)s4y&JP+{1{pu%tr
zR5n0nEL0etf(M;<Fn~<dxU-8voq?G_1DxWd!9%$WyBJIvbirN_1J~gOhK%6RJ{EB6
zmQ7R@-br8+6%mtXL`xn`stQKl;oe66J^^w6{)xDxbw~NnDD%*C3XKeP(v;&1Kuso$
z0S2M!rg7mRVKF9gkp<<JcG1={QjUe;HW5xndU{sgCaU(TpHNc_6T_^3g>1zvoeXgd
zIgGZu7=plIy^A4*K?mw^(5w<@yq$|d3^eu%YWq+;X9N!UAO<mpAO<ytAO<srAO<&v
zAcio8Aci!CAciuAAci)EAckoSK@7_nf*7_j1Th?A2!iGDAcm(5LEt<d&j585sLV)V
z5MxMTP-948Fk?tzaAQbe2xCZLNMlH0C}T)rXk$oWn8uL8u#6#vVH-mV!!d>wn0YA-
zPZ?6cb5CLdI~ejnt#w)b9SrLFyTDx}(Bz09gEu%hjKKriI~deK9q>Cl80;@V*y(o+
z3{^p6yDDm+u@M$fy#Q$d>oJ*v#KAQ?SXi8yk5LrVfU{$P^k3k8Y9@0=&}gq1xIMsD
ztUveYqv8Yqp6-b;OPjLyQB(Vim5Itu@nt>!>JEBR(k}iH`UXxKg2vIcQ<sGa7+O0j
z%wuJi5|watbv9M-?LAVKzi)0;u(qOeTG#rlh`pO;n*5UqpHb+br6BL&Y|5*hwz$}?
z{1_u+SN_#K^NJiidoOhO%<Qd-G7(fZRu<7!mDF+y(g>a3QxdGl!p_b9cfEilx15ZU
zU1UMCSMsuQC+m#9rCVcy=5&{Y>Ki3ZOknC_4Qg2vXQnG_>IFI$gPB2}fq^xam6<`2
zL5IPXVe2jiJ<!OQ_AUl~aK`~$i>WcZVo-yX%AiJ?8iOW-8iOT+8iOZ;8bc(58bc<7
z8bc+68bc?88pBKmHHMW8Y79FW)EG`OsDb;aq6}&b{NQ}YFR+8b;?52RsXIFuKyxvm
z=|PZ~Jt$6D^>;9E>4O?=pw1B}NrUnxq|w0y8l=<T#URR{%b)}{3e<7azGGl$Y-%p3
zZfXRX4+oFXi$eRMpaFeQ3~Dn<GD3&wL0o11!-tLg7Of5HeX%TB+C0?KyTo6E(YbKy
zvbFwR`3vXkgg1tUNg6n7d6Wd}=qJz4F;HNMQZQg<W>$31^R@7|))QwDaf!;Z3a<?{
zmgZo3mRaQ-Z!P`z#lLEg2m=Ar@O&%FyigNRc^m%!IqNJ|Sq43ZL{MqT1FJnLF4Gux
zfd>jeDIYXf2wJZIPThJerl8J-ksOn_u(}>IXru$wngu6V)>&4qljnz|99Y$#Ze^E0
zeap!V*WBbpO9LN8kLWW0?9C1C5fgVOnH1$Fsr(Jfv6ocy%A2q;Gh_RVieMd1ei5F3
z*H{7*jQD*gTxe=MKham&CQzS&iNTtIfz6VYpFxH}mtpA+20eYqSQ;pHA&~}7MH&pR
z7&Kt1NP|I=L4!e)L4(1PL4(1QL4zTZL4zTaL4%=^L4%=_L4#o?g9gJ&1`URt3>pk4
z88pCkJ7`Qz6uM$V?#>PdQGp!{`pD@<nL!3z2JnH)^c@V!prsz*bhCqjPhbZFH)tGJ
zA1TGyGlDy0EZ~BGSr9pmSRXzt=^7BFU+++AoP74c$~sTylDS)tCf<}V4YjS>UGL~W
z^+qQoVK6Z>GqEx=3mZpv9d4;QG&Rdbf#uX6aUB~q!LT_unj0@q4FaVFI|c?;8J1rR
zG7RRsK!d;F@n>Oy9SmHccAW&cQw3Uu!U^^R4}&0Bfdt$SFn22ova2f!Dw-P$Dyu7k
z-K=PC%xrh~Fv}(jzrQCKU9I)>tpDxi6jzsLe4J_{3vuMXtE|`l@y+~KGxJ}$mZ22;
zr+?cS7#VaK7+7LieldtLsPAGB0XMUEFo=MI3fwjUwJtz|bD*}j5V-FM9@|qlMRkNY
zv*2Hu!-rW6Ed2j@GqQQ;>3RJ7^#R@Dzh4wU;o$fGDVrUuFoQlr?+yk7=%Nn;fgKF0
z7j`hHf);{6`W4&^Vhr32Y7E>AW(?d6ZVcQEVGP_1X$;&9WenU5Z4BHD(-^oJmN9TM
zY-8YNI0kM2g8LQR3{Sz$NJt6+jhBK_irfXzB;gJQ8G#)PhM?Y`0D}TJq_r5>z&>L{
z&o6@Nri!BMf^6(;%1SEWW&xuLsM-)`o#7*$SlMP@ytCQetK&eKoTI(9#6hO4lK#aD
zr!V^V@M=x#6Gnqo0W~>kmdqPj+%jC1!l$1p?RdB-l8r}@o6$|j&_MU!W@`nxkfmQ1
zuKBwx5R|(>VWZE$z*fuhi$R*fdk2GzKB(KigMsZ1WX%O=%?QZ#A{TZri0JQN;0KkX
z7j`hP3G85y1?2-!drn+`2Lot!Nf11e1sazyFl2=IL|9x@(bQZ}Q4m5ye8<vyh-t@R
zro(^T4*gwl=&#4&!%RC4F|A|#qhMg5@Ozn}zP=(8&)+W~nk8D^z(C<23nbkzJ!kpF
zzzrJzWdL_Y7<Mo)ftFh78yKo0S-_+UGW00Zu0zSj1_s6~?jUo);}g37l)+~3g3RE7
znE@Jw;|0x(*)f|!oGr-Mqoygue3)t1p?@9!iuJPd3yfKM6buaHe`o&V2laUwLG>7$
z95~z@cQFVsh=Q|@0C@VB0kY6WNFUS}*ufwHZtwCiu!08#m>FO!ekcnx1IDP&2#R@5
zMsZO^Mt0=jVp3&c@?)IO_<Q%?=S<VO{-yt2!UFOiIM8-5F@9tL2T{UbHw6Qx9>%{%
zLB0i59tNOOMHv}V85mgpu>4}+Wl#q76hQ;`43Ihxw89NEJPBIS1e%ay2Zf`eurV_z
z%D_>@6wSD2zMI?c_24K9XXO7k3zEa2X8SWRu=jw&z?5MJ0}D7Vb};biLlTRWJ}58q
zF|dIBEzAI8i9=ZihW3oY>ZXc}#*B)h?2x3wtjws)sLU)bs_4Hw{Q%=(#@Q^43mF&8
zwpsl*;+zi4KRxSz>MWY8|CvJE@h6LU8Ys<x{LH-Y4?pwYKfwy1o%4(g4*!3#iLv|v
zl{3(E0*Vh%T=RkF+JwL(t)SW+!h)qCu#3!@!Tx7fW@Kk<TK-RbkMaS=E@n9v{_~74
zr<u9_iDd}@S;-QmVDzV*iCGoI`5nOgjtP`Dm>4|&-)CcD6=o1;&}KNjgF#1s2Los^
zhmODw23F9ZE~M|N#PEti306NTF-S5fF=#R<F<3GvF?cd4F+?&bF=R3*F;p@rF?2F0
zG0bF8Vpz$b#ITb=iQy!J61aX+0xd?n16iad0V%^I7{nMP7}OXf7|a+X7~B{n7{VAN
z7}6Ld7|IwV7}^*l7^X2uFf3z`VA#eW!ElU00@mV{V0g+P0dDaM!p3%Gp)~{#s2ihg
zV8{wBlvs?7SU_u`_*hUHIZAv?%rXo9ecPX9lF+_%f95<!&i&ce>Ag$0{gbiCo}HXH
zA;G{ZcXnb-f0B`6>iSo0aqDN)M;WEAd)=0~V`fFLHq(XPH>=`(`c5~rKVBN+-Fb+C
ziNS?|f#n}7FM|Su0mI5242ICU-Vh#^;4xfK4}?nfy%=<*rs9Pi44}5Z5vZJllry^+
z1i|(EE(T@r8lD{tvI098Kx=js^mj1m3hZDoxB#kPU}*{5NMr*Q;GpVWn^8&K6x@&p
zHwl&4*qLk&fQmnM>xkUKoNz0)={I|vEfX7hCOTPga%gIWw#Mjdgfv8m8%e{Gn*kFO
z3o{E7lYUs4M`%r$nH(3R8@qmRp_6ffr!F%K12co?KO467(6r~u@O}q_8#MK~!9xt(
zIvUie&m9!zw)(pmASn-2aDfJbA%j!0&<HZT07(v@HGEDNb}%@B*6<Ndq2T^C3wYrT
zBdEE`#!hsiRWQlQ$}+Jm%*#nn*0(P)Hv0EJXw$B}v4K-Ph)d7E54uE~i;F3$D~g%8
zsQz0i5fScS1DfDvV$lEppY=W~KZ6E?1;g4M43_#3&soA_4W7;o8D23MGC=2w4H+aE
z3>h>T3>hpL3>iEb3>hLB3>h*R3>hjJ3>i8Z3>juJ7&5G6Fl5-tV90Qi!4O<-fN~Gt
z9Z>trkbw`}wE?XNl?2U4gXSMDKpL-BpjZH<e0gw*X$Ee)=zz-tkXCgD9q{N8yzbRu
zG&T|w1uf$c2Q8KamEwA=+Ki@hjG)c{B+;`ose{uzBMYOK&%1w&>Ygc9j5?mSrV>(?
z9<lcS0_ANSy<-Yo1w}Q59nw71lpUhXO>KN-4GqCPA|B4UD=ZQM93@y-&4bcSP1AzS
z*$gZ@ds@=$+?bi<9a3GLQk<3e85kKd{y%52XBA+u0?o8rgPSPebkE7~ih&ardZ1et
zIT<t=I2kM%I2k+{I2j@tI2ke-I2kG#I2k$_I2mR#a5Ai9;A8+Txj)Ik2@XALfgKEx
z(V`s;YLHS_jX{h-4Ghf~)EL|t)EL4T)ELqj)ELSb)EL?r)EK5Qs4*;KP-ED}pvG_v
z+(`wu9Mu?}g1fpq7&t-2$DJJvHlUUw3xg>*v_-*_b_RyR#;`zC1uaO0^gP8y*+B`I
zj|tS@5|?8J^+Z9FJn9+72G{19gxM+mJLT7vW@BGCCoXnMQLwCzh;MqeqrQ)soU}uh
zU&6u?2lwigiHXyy(v2CbX3mo}@zUv-ukIC5;OA2xZ6vCwBleZaIn7mBRLx9L+0xur
z-5@-@DJq~d)rwzM3w*Z$BSQcK18Wn@F9v=FdC<H(Xr2b#{sFD12F(aU8j>8KIZQ=n
zbzwzec4laEkSXBb@=_xemRBl9W&c)!+B7Wl|9xj-O!_yEiIMa7Mo^^+s!tgiEJ5ve
zmR}6=4AP(?7}Pyr*ulW74{EUPVh{s2<O~cMp<^o0HXOKXWyZ}2uE|*wSS{<X%%6R|
z&Grz}ro-YMoki!5a!GDr{C%8BXwsz)NBjEyjZDWuR{jl)pObI%o{@nm4a8+&VEq63
z|8q7qupgBfb})e2yr7li4EmtH6J!h(G}8rP85puctYkEY(o84*Zkx=s<s9QO7RLMw
zOgu~fZj@v>3^MyqFC%jii1FJN)IR-x|NnCiA(meZ;tZhn6ljGy$dAIHY^e{j7c@i6
z0G?F^m5eZ!00V>tvKiET0(+Rz7z9C$8BumdR)>F!S^izE`e!?XY2O7#5f(;UN5(dm
zR~MOhcK=J3WS0B$2<o6|%)9=0FlQjS=>Y=+TMf94XAND42XYf=^_z%3B*NLi?K^G;
z1_lTVbXz5aB?%QXFjO`*=Y#|YoC3GlK@DDoWlU=S<PI~t{9!a^OuNjazy6;T6W{(n
zUoZWe`Y(2)fdb=SrdW`R{#7xyfoX@o;HY6d_RmVefPs-gi-CbPm*p3O2!lOnogXL-
zf|{NT;Ia)GW1wj|P!EL-)XN3Cm>tgIfU*n>;jV)OBBUYCWd5(Vi)qOwMp;Iw1B|!&
z|MeXG>vo7qm#G%yn!k^kWWn^je;lAL0s}Ztu>1wLxk01loX}PjJ9wZA)Tahbg$gQ)
zGAas-3kEPN{hgDj&l36PKGW(vy?PeOzl`x^zwa@cGyThCU}QM;Pnqd1YdixxDD8s}
z&eUcAtsw^WAVKTyKs!i4J4Zwn1r<dVPcaGq`^U)i_bqF@`_CYE21W+W|3{gF;cJsX
zr8#IFC95){F>^3zZIU%>FDUJy+5=j^%M7xI8M>l{4VK41>(D@JvhMzU%gFTaACvGu
zWp}o9?vQ-y!c@Rq&T7E`n)-(H2SDkB3Ecl-0QUn73^|!VXIL@|{X6sTbSh(mF=GQ$
z0h86=V@xOhT7dG}$A7n2`2Smh*HWR*FtG6de#9d8?^XiXy;00xnG9JC8CX!}G?+ju
z$H29cu(2>ZW5Lf8*8fsi4gcK`VPpllk%=MV|8wRW%uWot4Au-AcQDxK?*MNm;0Dd!
zg4Rkxd%89PI~b%d>|l@v4**ItaD!_}V@PRl%pk^K%%H|#%wWb~%;3gg%n-(4%#g-l
z%uvQ)%+SVQ%rK3?m|+=%F~c?nV}@f4#;`WFF~d^^V{jW=;sU5+2pKTa0}T=h>|n43
z)wiJDi3NiMxb$aZfUJcPWsqR7fcVN3+<ajY1*J?SJtkA|s$tMv9E&-mf(0$2<b$pc
zHZz|fAC{PI;MtaHll||en1U!bi&>p_WxG*uPH~~Ww5Fc0zN>*OJEN~_s*{4CvXP>a
zlOhw(GBtB$0STLQzklKi2E4)&+)O4~C0RD1R%&umf_{3=S|VzW5r**`x;Czg5;_XP
z2I>q<41)ikvskbOF-S0|FwBOGs>ne4IWi2d7-V2It_*`DgA9WvgA9WugA9WwgA79?
zgA79^gA79@gA79_gABt=1{sEx3^EKm8DtnvGRS~yTvq5D8)zdAsQ6L7vx5P&f&(<%
z1{<4T6#&)73_BP=xg4~N3p7&6zyR40Bf=ohzyJ<G(4HnpMX9C^T`^|I%nVyg&n_s!
zbj`OZ&eXT(NO|b#qDICbM;3YCK>zgIf}Bi)IAvxh!=y<GX>01-1SME@8ASYTWRlU6
z;s5h<`qZ_v^^E`RJj1{UPGeh{ofy<XW3ZqbO`*HADBd%{02(HTqzxrljzly8z-?M+
zB?#RQAkOR}Wat=dZ0N2prs9%lXP4{ftQC<`?3%Kq)WN^+aH(Tnh$Rn`s*Jn6j($j?
zlW#+uiGz!pS%9gOUC!jNgk{z4Qkwdr3``8Z|DUszum&+mGH8MNVcO723ACRLv{;Gb
z!VU&)P;c}CBmy`Y1i=}82ZKB$&&V@~F~~EhF~~ERF~~ExF~~E7F~~EdF~~ENF~~Et
zF~~DaV~}T9#vsqIjX|E_7=t`4&&V@8WsnEw8IV2d&@EOvpu7UAiP`mG!`z^j0A#xg
zCj$>`RSaZJps1oL^8CD*IJ*+0)dUJMK|MyMd!UGJ`IqH0#V?>a*4U?YbB4T^%~Ina
zD+M{rAQSZf1MP5@Qw9;g{wWxE8ylJ?PlzhmQ0c(I>!|8o;1gEurz$GR!~wed0yJOh
z`~Nxf24*J)HU=dIe@OWPDhNTT6|{wnUmr3X!3N!RC3$BD17rXOvZ_P{)B==+PP&PJ
zhe$y^AW6uWp&lb>!9OFif8?0N6(Q|IbEYkfk$!=GOwLJXDiao$J9#y(PfMN<r^obn
zKgX1M6$cv|MaHLfb!}z;9v0@=<<E>tUs`1ASTrkY+H`(714U37$;hD1z`(4)8pNOg
zs!zEY1i)ikkmblb7zDtjB)I(rnw|&kdjPe5IKhfQjabm`IMDV-VNjb-R83ilO_mX~
zXboK93o4r$+cBC8gNiY6QD&KN+la`!cQ^js(>QAuBfrFZVM}LE6>V8ohiM8G^()f<
zf=1mGm`c*Eg5((uB;^EHd09YiWM<I(r_5r{?8IQn;KvZjICU3;Ei|jMGK7QXJU}A?
z;S8@B!eJ#(ID;fZID;lbID;iaID;ocI71{uI722wI71~vI725xIKxbaaE6r(;S4(&
z!Wm97goEdi+!?|dKm&I>7~CPHnLEQP26vd5?hKL)?hKj??hKX;?hKv`?hKI(?hKg>
z?hKU-?hKs_?hG>-+!<CfxHIfzaA!El;0`X$Kr;#qpt#rH#lQ?TA3XbM%OJ*J%b><!
z%V5S}%izXf%Miw3%aF!k%TUH(%h1MP%P@_>mSGu#EyFejTZUr{wy->6%kY%J7Cif@
z&mhlW3$Cm5^&#6&R1hMd67s?h1~rh3zzzm&P@dJ_#h}BW&%g`OBd~)Z2s+OZ4N8Sh
z(Dh~}4F2F6Nr1rzOoxD0c7b=U`ZJh-TT?0wJ`4h2mJS04LkOg-6;)>!6BS`m1XW04
z&~Xs(IyBH)adS|$#bj;@9_I#cEfr@3O@l&qwm@n#HDS=^7RXj77K{1J3je<S`y#I<
z%HGmazpvIVeE#F^xcMcH0y_S7o26_L+=^;l$`{1yB}4}+{{63|rW;h`>QNk|BWo3A
zkvJ>TJ8+4AXgIUuadBpI<E|NeqC!GE^2$<{(N6viQHFA6p4t*xx@Ia~S#pM&Dncw8
z9TB#femY#@D$;-UNLeVV+3841Xjv;OYD#c&F~`M4JxPqtFJxe3FlS(3ImjBspu!Lg
zsrjV!A!|Y)qkW*BJ7~^j2LosgfY=?-Qh!$P%sI5i0=3E{z+F_(P%>mDlAA#h9G>v8
zBydRv$~JP4+TYY%5WIMdjh*pS{oi+upc2d=JSxfBD%L?6Bp|9{Bx_J;3mH19GKl!w
zAf+iQpyUu^`HvOUU}fxgj<%3610Q3_1X^Op6vFb4fr~*7)Ukn#utP=`A(L2;!57gB
zpe?iD5mk^|LFFxq3mKsm52T9KV`97tatg?8{~m~In#s#sXi7+ETFA?rX^Mkg#?)ot
z#3(Cot|2a=VJ;_ct|cL^X~Dq6VEj*(@jA;t1|9|l(8x6?*MkPDL3IG66#(vy>|ziC
z&%hZN3WLLkQQeN&6n!(?7O?eigJcv1S-H?1!F0>O;?KT+vdVfsf$@$k`_Nqinj-<l
z?{3y026+Z=P(jQJF6uxo;RfyB0QD?DF(?Hd{|5EUm>9UgIf0J>#u9<E<e@C2P%~CF
z7F2~y0I<q2ii76>^cdBl(aO%~?Z_Cx*v@!j)xTfjO8ktrE&s~?UFDG$1&1F?l|jUx
zo}VlV1_p|UxfF%|l_?l7w)4wyGBASHBQyE1f|hRx!`uyyInaC!lKra2jAvo71UD1p
zZz~1{b{l3V25ZnLHmIeHo}NK%E~7h+%nbh-j2IYW9hn)<!x-@}#sn|}lID%TrHnF2
zM?8ZvOb3+lA0{#Z%-F#InsGG(k45ib0BxNEw~s*~4H|9L2k%AE1V@D?c&7|xaW820
zlJf${I!)*zb&v>XxCW%k;sT1lMM3#VOdLdF<SI}L8!3;$LkOJ50*hr$;u6yB(DE86
z6p^zXQ<s570Vvlw+Q{lD3S#EHzjsk{A|vR!1eSfwP7Epx$rO|&pu7nxM|LnMB83g8
z>V||3ma+vL78s$xcpT&>PzD0~8_mDq)B^V;ruP__7`*<!V3B8bW)Nmj2Bjhu{T&RT
z2}2bD*!c+HQ8{sjR}A8?T2-7ul0lq7lR=!pl0lrolR=yzl0lpylR=!Jl0lrIlR=ze
zCWAP`N(OO;oebg(CmF=SwW>I1UK=_zOuaTIXvv2vs3sHv@96;byg@Vm28QT6av4Eg
z2+&3k@bX<RpSB%2*&FLzz1nu<WpAi+W8#a8P<2kQiilTniD#UcvarAwG!>G(sMx_e
zf9`*V`pVo5)lOAur8^s3KnuzlRR1ZnBr-cO$T8?KEZ@NZs?9-Rrw<Re9Sp3Hon0yn
z6z+81!2pU40oXheXogB)2ZIi1JsfyUk^#~U1}%*Q^{M2clbxUjA@c>$7?>uwdkigu
zMM2pKHW;a<4#`H0Mu?pmf?~@+>4`-?Br;Udw<+G#zjbY#ZkjnLp)sB}4ziX9HM#ZT
zjj};ya}|?}o`Mjgb>@Vy_!aeDe0={3z***~hEJ}GUv-$StmZ#OA5fc+i6QWxGD|nJ
z6L?+7V#vA>P`ewnE(Ey_lYpiYS!lmo71BddWe{UfWl&>KWiVq<WpHCqWe8(XWk_RC
zWhi4%WoTniWthgG%CL+<m0=r$D#I}bRaomwmEkFaD!7LNDr&&%LqKz%0?;*}klB9F
zSPdJ47PtTe<wG%0>sS!2w`Oh(4ld9#a8M&3GK6W)^vfX7*H_!OInFeoYj?K3mz$Tq
zuNf$~_%&S3bF1VmgH0_XwEh({K2gw?;<ilh3oYJQZp$Mq&F}f!P{F`}`J|?wjq1EU
z-|A33SzS<AF*2AkFfivZ`!L8cXu|3SNDa>gs?$KFENo7nhk=QK6WpGIj`V|ST5v2I
ziODm9hoITm8Bc)R1CCb>I|FqgDKnMW92GNl87?VbEm$$(^o7wo##oStPyGhJ2oI~R
zJ*2P9beq`;u|ort%0XM;A+1x;Nh#pAF(-o<11EzT11EzS_)rQ?hA;+BhBO9FhB5|D
zhBgLHhG`6(49gfe8MZNSG8_XB)q_XaIT@Zp2K+%i0xISeZGjyOQWthGfU12E8!}o1
z=^ugjY$$^B322WvXsph_5VG2XO;iMFs9v8@9JFo8%+v&Y?gVIDUz}-`8IQh=v%Idw
zT-Ou_d7Z#w5B(4yPZfSM0Yf`?H8aO9k5qeEgNQocyjCVRCRJN)aeWn=a1{q9Z++`H
zClwZM0iJU#>Q-vPx*BGInr_Y>I#zK`Dxf=N85kLi|37Cs#?s6n4eHx5F+lc-g4P6y
zgO)7`>|l@t#Xsmo6n5}VPtX>7(10o=afpD1!~}LQfKxAIDG+!EJ7nuRsB>qkDyYbG
z_}_N{1$}u@BUvq{MnAh`H?`7IMj=K{ro;bwjKl0zgvHFwER^h{Eg7HJU(5ctpMjA<
z_5X90Wz0SdiVVJx*>X@V0h-^2^pqec=YYz1Q0osw3xh`NV50zn;6**4Emxq@c^88?
zDD1&$7Sb++<|OEV4`?_5yyxB&ToMVXm?#@&8GsUR%fBp}<cLrMr)UdFrdtM1|CBuv
zEX6Ifm>3Nm|FS3;RBKqM2<S&O27|^R|3Ci!oW+<~n}MG}5<1EZn-|~!jroG@ht38F
z8$-w984v!OSHmRVbdTlX491R@e~TrVJ}Vj+D*RJpyrp1hsPLB;l0O;$KWEcpHiOOu
zfQm8DT1AjQLHUwbA2b)h2_Dk|wK!ocP#%GfbHQy?W>#iah77(78w)e{y<|DGm2ugm
ze@EL-vK*cG?`$)ZeEoKo*UV;rPcz<xIDzryKXItDB$z<;5##?a3=Axh%-Rgn4Ahwi
z5I0vhRpe)61+{if&DGh(MHzD$ZT{^mVv<POyswFI5>w5;YmBj#e~*?PI8|eyz$ngG
z407Drvmo;Ozg$o)@ccPw{Qv)%f6Cx^kYO+f&pm<WN_H@S(l7%94|tt9sPu)g_~2qP
zP?muqcp-`?J0l-6ySh1ej^3UT5@bwaPd6~G=>4Z4<`xpGo5RE-qaGXSD{lO6YCDrb
zFQXdc7La@XBx=P6S+cBWW|1}Z(NAZ(3K9gR5r!-V2Id9K+6;UQpt%6ZmO#+t1Z3Ra
z*c3DuAgn0LD6VKO&YZ>g|KH3Y2MK1bzn_>GlPc}4yqG2)U=*<bTg9@2>E8<mMuvoc
z%FJ!7@eF1R+PfI^!GnO1UK*%p25KEBg4XtdcCmr#YH4Wih*6K(RM13^Mcven)l|^L
zj>%k<k6D&cgpHk#ksY*n6||v6oVl&-Xp;knn3{d0t!<Q@x+sT3)6ur@WJ7L6Ev>fb
z=$2qLCKi5q^C0Vg%FMzp9hHpiF45MCBD`F>T)ZL*R?)7E?3EoZ!pxd%qUITq2h)2E
z4XgxM1g#SK(hgdOTC0e1voJ6)GVb}O!eqp%%)ks<hXv|rfcNr(>KxGA1f#N`F_TeQ
z**_IF&^1Hoel`SeKHkB=4jzZv!2p`eRsi{#fdMi@Ee#&CFfbIhW3>ez8DOf%sIJFo
z3)*X?ZYswtDkvhyA}-3uDhk@V!k%CqWG>Io!lV}5924E9rKQMim>k}EtjU2xRNXGh
z);7{!O^m~#=~(MO9~N#=73&b2gK2#UR)Q=7RtAQ>=?5b-%thHW!NKwGr%Q~L0yH=j
zt)pH3{R9UG$cqk)UMzV`-3+n}$_$`#3RLidT9csB+#L*{0vJ@#fjU&Y7eH=jHZ~Fm
zjp>=08-p4N>Y!miJ|=btcC*lY$HsR1Of$b|em_oQ?|8HNe%CTHbr)kr7Dg}c@?f1<
zUCp>q|B67(7+q~yLnlxNpXL7v1_ss_Y!wXr48jcR4AzXIkhu>H{T&RTxeidl4qD*{
zTJZ-uB?`16Qx4KDl4B5KkYi9|kYg}okYjLTkYfmAkYh+=kYgxgkYi|LkYkv}Ajhzb
zL5^V?gB-&#202)}NRHttgB*BNN`OIxK@PT4fJ*ChK*Nlnp?+bg**h3Ot96a;K<80F
zB_?PF6|~bu5_<HEAOkme^hy|7IzxtAbuU1sVazXp=P4PDAw?3iBD1(Cvm&!H`f!3O
z+7O4uVJ4Xaj9+^HmhD;aPkr`dO~%=0S>B_MGcayO7co#^S@k<i!N5?SvH4%Ef&r5p
z;}^z@XyXqGXnfFFanQIt$H2`X&!Ep>%qYHt!2~=W5AI7*Vb7fjxQd4ybHfHn1ytH|
z$8!g=dQ=${=pZ)>>|g+$J_c&_F$nBn(6|6u%MD^f7WjY`=Zk@-mKk<1fO`Jw;3+#$
zy96@!44P^Hm34*;+ThqV28|ej>t06aUOmuRNywWiK_iijrskM2on)w{ZfvZsW|$~#
z=%S(FY$z>b<fN|QVkrHG6<aK`iK!VGsi_$otEoF1$VeMFYpA;z%E%bH{5*^;c0uJp
z_&;Uv`uqTftGgK7pxb(Rpb3<nL63n4mQR!!UNI=c`ozi%phT?6pv+*&pv>UOpv(}-
zpv;iTpv+Lopv=(8pv*9nL78DCgEGTT24#km49eiqYc;5OpnXVClR>*;+!(~bYgF7A
z%oyCjFpR;CA&tR}p^U+ep^d?fVH$%Q!!iaphHVUP49CDnx`Er$ZVXQuKnKGy>|&4u
z&6#V1b~8avuL3O^lmzd1VPxlH<Y$ES0708v%s>GSSp%e|ZmtGt>OwZYVA(PdcC}p1
zM?+P|%}7e#Inz_s!9ZG0Ld8f!T~bU{n!h}~(8Im#{Om|V+X<>_h1l2_?Kq|M+)UJ5
zjODn5<wV7m#bw0#B^3m<t$BB{@JVFMzub&}vjMm-4qivkcA7zkK@oJ4i!gX1A5v(8
zdrJ!7u_#b08PppF&4hs3WF)Po=VoM77dFPdr2fsn6zdZ|A*)`oEUagn^6$3@qXq*L
zWZf%U8iOc<A%iz`v=4dZt28vpaWg>Hy&_h?Lbk^!fDiisweTU?A2ejG3?DTEHDVc&
zR>ulMhR#6KXy9rJJOILuW6kVM7HJ(@b#-TJGbt?t78NFOEn9UBI|~a%HA_}-7m)>H
zJuPFSd7O)yqPn84jajU-x}v(G0r=cH76zaH_t{w4D!^-O?HPg@3t*>Q>|!v3?o;z(
zZ~zwwpzY+)8CZ%}$AU{(B?byt?mDtEY-2EEI0iX2Lma%3S&RX+bj*wa1VI@yjKPc{
zjlqnejKPedjlqmz8iN_bGSJ2Z$W}u$hNlqSpl+=L!z%^{SW)4?Aj#mspvmCCV9DUX
z;K|^?5Xs=ckjdb{P|4uH(8=JyFq6T7VI_kD!%hYVhLa2q;Nde+{tX2Ubio$=8iEhr
z03~E~@E|Lwo#lFA2LovJoBsu376YRXk)c<d%<@Do7S=$oIx#C#MWWUdGwngEPO((4
z49t-AW^5G<@(jkH={wk(vt0~!3?|^Pumks#L0ya;44{C6Edd6xwIHK%CJe6_Okh!B
z!XU|D!l21u!eGf@!r;kZ!Vt+|!jQ>e!cfUz!qCZJ!Z4G;gkdFv3ByhX6NZxvCg3Om
z+2RT6;ewVt$moOSw^_jnT9rW`><rMhW6KLW7(mT_XV7>OsHLdK1lz>`>GVQZz@bmf
zphpIt6>@*J5DtF=tLPXl2?spr{D<evH&_k9YjYexqs5Nks(uFp`sy4<I<L+FjYrvC
z*uh{2+AAcmgTV<DEB5+381Svu0VNkc277QzM3}^NJHnvaU;^ojcdme|338V3u(&{K
z5YW;u@ER$2JY3zufGZwAD;hxCUG2fEq?Ey)-NAr}ogECcS}_F*TxIaEGvuH&aEySa
zs0hc14Oub52wG1@MvVL`1g}9OD@v;2>()^7MgYUX9Sngu@<t$?^9CplcwX4S;0ete
zL7=?hN+53-7?PSJz{l>I3)?Y*j)oQ&7GqOZQdcD>KC*aN*acYM@`?&23X1dGVC84$
z;Q051ocLk3VC7_GR1)A|7yNgRje~Uq0|N^KIPb9h1D9d`49N_SLH!qLaIwwJ5CB@4
z0&0O%yn=8SgAIc;gE4qI0hH`Pg9o54Zvb>u1hhC;lpz3`LqMXSeb1m>NFX+7#UW_d
zEU4%2b_bG!QbF;CoO>Lh``gi1Awn{E=!G2&-U2%q;z6SoB$jT3>LPNY)rp8Yij0+w
z%$o^TT+qD9@&+8|;S5)IFht<Un-O%*o1iJWNc4DhV+a8!N6dHyZ4vSZZ9%vI85{}`
z*umg<X9t5PIdP1&XFyKOPQ}x0AS>IN<LXm@^De70cwEJoA)4XrE{0%uE7%#_<Z_13
zzk+9_f*HgZf*I5pf*H&hf*ITxf*HaXf*H~nf*Hyff*INvf*GbU1T!pS2xi#E5X^9l
zAs99`7R>OJAs9So7z~=Azq5k@M2ms;oaygi0NJ8_2SS@%*uh|;59(-JGiZbJJ4n_K
zG)tqWzl$LPeDXQwXownv2RN2Z87vqgz%?HJ(GW;<5xcIKDG}#L$=`FNH(OY;ag3w<
zts-MFGI-oQ;-4}zXbrA6Xq<%$e8e{BC?n7iF*xQZUW*Gl=FyQs9yVHIM(G)dyBI7P
zAm;62u!6D}b}<-&j=a$Z4Hbdf{*bA99ncxl=<9xo9Cm>$w8OG2*uFDDSVK$==depb
zl!tASiwf>V!-2^nEUZipI0syIFw2O0CKNj+EQ2m8293fp`2By*yph!qyjE77Ar?CN
z2ioNcy>J2dYS~>3sto+#?J$smTuo3(r=|~Dl?vJ-1e(^C1m^+B8d~s4JD_QGTx(~U
zL5*&vtppd)Du5f=_?FSK@If2X%xM0LC&hn|DOcDT1(Kkhc_1GulkY=tBbEps{w)JH
zTJd_(71lUK^`kjx4WtEVWLJL&188d|F)N-eLH^RAz+a#{8PFSt#P~A^Yhw_fznPiP
z8+|O0IA-|=PQzvlUJM68Wdr1Je@6y$P@4}lNMp|MioqN<B4ExS$zaZ)$zaZ4$zaal
z$zaY9$zaZq$zaY<$zaaV$zaYflfj%}C4)J`P6l&^lMLqI@mvN5a|TCn9RO<UNr7q(
z&^lt!Xv7`RreuBwDX^?EXgl&9NUi{%I|y4%uEAgg&Jmy^hCyTIkemUTI<dL1g8{VM
z&J8q@0Ge)M6UCKN2sPk{33@rg4K}>-P)n#`23gZOkJXTYi-8|>+6ZJ#E9hVmR`A3*
z1E~KFIzs{^#01_fW&k@$0<^{j+zDrdFJL_h&i3GeO7No9b<jM{^#3OV15*fIdqC>~
zK>MJ08JNILauj>Oxe{T|KPzzNLs;|_lGB*}|6pKXngF&(9x`(ZsuCD>fRE+?oj8rO
zK1UT>jzF@*3v0rM+qnomk%P+W|F;+zn07(e2pfUwRZ-}KnkIPdJ-A*KWe{Tk9lj*W
zV8$TI;Km@z5XK<N02+@jV-RI%V-RJS#vsbDj6sxP8-pmrF$Pgsi%68=DT63@wvd&9
zn?V$ujzLQv7$D<m@(iySK-)mTchbl+NHWMXfNZs7kZ15@kY|WwkY~tbkY}i5kZ0&*
zkY||5AkVOpL7rhJgFM4Y@Me-744?&|CZLiA6cYmASz^d?9nb_6C^PB7$GO1^MF^#G
zq~K&FoS5NZi?P}n%OE5ZWF08W8wM2y2ZnaY2n=XdIcRJJeHAWfh#qxSIe0V#G@lMS
zdqkhX7M$k=z<Y`DuLy;VC4!F2f>k@V0y`MA?(ASNLJb@2t3{b1tw>`d=&Ut#Isoq)
z(gZxsdsvu37SUp^FJ-L4(v)Y0tT|;h1g|;OV7Li6I~25@2$TXKJ!SAX{vcg-x{CpH
z5HV;8IpnNpEl`>Tojga{8dOeDbB4e|)NpW_MqoWE%V}sy2O1j$ujd_RVXLAKI?n)7
zVY5P4%%D$Rpsw!)7uop3_TL+DF-{<CS(zY(JE(j`Nw*dZ=OL#+fYL4K6o|o}ZXu}^
zd}@R)=^=`(!XgmDAF)<q1VWs7KbE?U1rqiw|G;I2IfFODTTpKiGNtPT?qcr%pYkkz
zX9oipWJLtUI~qY77a71k$Q=xz^$&WGn$CjZ6@vw=ooK-z$zZ{t$zZ`?$zZ|Y$zZ_{
z$zZ{d$zZ`y$zZ|I$zZ`Slfi;vC4&XSP6i8xlMEK%nIq77)V`p}JXndL$zTkw10bmz
zQWe@l@0xN4jqaeWX+cZvXtL;YM+Bm24dKd>K%B8y5o+uq@(;@!a2(n*Ohv??5ra5*
z^aiwUlv=UJfG9IG8EjBO7c{J@cV`EK`5naK7Esk=NHC<aSD^UA_ZOZDlt8#L@554m
zGC|hjvKlfdGN^%i<e&vNpi&5Qz$v5@!nPV0lA49V?KTZijiriZO|B|<Uz7@iC<BNE
z-7x?@QP9W?c7X?CbuPFD!?#42Sp{5wG2vUO%e)O*dr`|@ph0v|eb5>{#9Cv}`JkWx
z5CxwUO2}W}vkCC|Ya+Pn!0)ZMu!;lOUuF!RI~dHNdu+_%W0lzA3v?<f!wv?}Ms9T9
zfQA_f`T<*cjn7Y$u@=^N{m8Tmy{Kk}q)nE842le<44w=dLC4HMN@)l1@=tKP&W!T0
zIB^Cu1_y9j2Bmz&n)6-YTLwW#+Cf&S>)e5?1M&u?c;s+YXD|d8IiO5q4LYd`bPXUV
z|ATs#I8!`&s{_5H#TURngo|0cq0OvHxR7OJNc?w^c^<1PgD6A#E(TFhv8xT*#moTh
zu`vkjU;v#306J(7bOt6U<Uotng%}_zz-JGF?nr`Y0yT1XF@RRfLs+22?+_M91Bhi{
z$SBAx%&Kl`&dO|VEY7SdF3PSd%q+-wJuv3q^@s>YWk2n1U0+6}h=_mJqXYh3WKv;t
zWz-AM>C*FMv=0yechFa_ODEvp#eaML-eF*32w|GabcB@+yb2b22a_^nXSXt?>+L{0
zvLHh#urV)5NK1hVw@rW+27~Wll7pTLzyLZt6?8+E5%^ja_^xVk_{j#49aoG!PDLRG
zMq!2aAlf*r&{oS?UrJivK~>AmSVr2=g_X@Hyx7S;Kg7@|yu{JIAlR@`*4Rx;#lb*Y
zO5a&a)5TC4bf!VX|8nNd%$pdr8O#|Lf`+9bmso;U--7n#f)+4?&M*M28wSlZg7_+s
z`(F(i#25@2)EEpI%oq$A+!zcQ!Wax0(ijXG$`}k8+87KOrZE^YEMqWa*v4SUa14Az
z8F;m!A;VMfL1&QjVa+Z;?|lWGhXh*D2D&vE)W1~%53%iF0Bsgg18;9PFk}QRGE^57
zvu1>BPhl5TMmhlkbe${cepfMZRcL653o;uD35Y1EYRj^4@PJOqaGRZ`!7af9Iw!-U
zX=|<qV^F)UvdF&)pp!JDjlJ}lY`H}x_0(n9{}wVjxTr;?^OY4bGJ+1xh+a_T%~n*P
zE+Zzc2s%^4sVK^phpCqVbdJ??<|C~94B?<z;cx~kaHByQx(6p5e(Wx25up`BIBaHt
z;+xw*t3M&;?O?DH*uh|a0aQoqV(?(FVvq)xai9@|NKktbwr9<W!58c}(27-1^n${c
z^A5;iO5nX<AR{3xNVtPG3o=5D1{DF8pfN;IWj;oB$jv{X^Y%bH`qj<FKt~~hPbmW}
zR)QP>pvR~VIu-(Q!=)UPICxJP9}_ztGdt6smz)y9Ol)G@a#j{*CWhkTQj&^_>_^l^
zRgJA36|F<v9aOnh^eyD<JxqL~)MS*|jvZy>6qXg$>Pc4)4D^v($tkO8qQEa9EWpmj
z#mUahG|!`8f+{l;qnw_po}8kroSD8Fzk|4&jHi#MrLtvUgo1KpfSIkHn!T|)pU2cF
z50iqt4853Kei<E^Ig0)+dNRiD+FD6zDd2r{ObqS+d0A9g=P-CP#4~#CVgPNZ0}ZS)
zfHojOZl)7ucm*EV0*_pYGDtFrGH5c0GFUQ*GI%nGGDI?nGGsD{GE_2%GITPCGR$NU
zWmw4|%CM6`l;I?Jcnox5u_$=NatA{gq^t^Kc*PI~>mz`!t_fq%WC&xhWC&yMWC&x3
zWC&x(WC&xZWC&yEWC&xJ$q>e{k|B&?Cqo#+Nro_RAHfBD4uKr_+D7omoezT;gAaom
zgAaolgAaongAYR(gAYR*gAYR)gAYR+gAc<r1|NoH3_c9o7<?FxG5Ekn?tB=YGWdW;
z?m(Lae84FRbjE}=cuZQ2!5ZA?Gh~3+wF~TP&?coF3@!pY7!o1r4m6axi$NP)iNkK-
z(_>Oc-0H<<3fi`UbXWvCd<KjSblL#B93vxWV}~81sfiwoIv*qRDZBJGce|>b2<g*o
zMjjEmN{)tdHp#UuwaGRzCZ4*6)*yM?>YNDadu*z<p{B|X2zgUaT|=9{&c>nn<rOBz
zE)d$p**37mQ%PLgRxMY{&qh^L$63$R&(_r3A-ven(BIxjM5`bWrXpX<&kkLMgORXS
z0h5DOh=Y-yp@O)VwpEC|p`MYVxEFZNvW&5vDU-R1fu8|%=P76#28+IdA)^TBIB3x2
zKjvn}M&e>jnI7(0S)T6h9@$y$9!w2c9`5d*nc40h9-#BSoc}2^e`fi`Ai!V`I*A8z
z3>Whq$T~$>&CGrWazlj>sMP{HMF*DGLHU>!l79u2!4P!$ySbS$^XF!-U0&}$R8(GM
z`DOkyfo;Lh1m?#_w{1;Ig6vr{Wnf_0$(q36z_1!LAuR_kLbMq`$9O|d2V#fxaD^CN
zF$lp@uMmSI=&maUAqGnZAqG#-WvvWC44Di<43!K*44n)@3^N&o7*;X}G3;azVmQel
z1Wvt{cR(8}<rpl%sZATQCJ!{@2U+r~2F`w<aedGM_>hakK^rtdWfN%IFX&oS_*tz+
zcHmnV)J^SRSImhDg3dsO9%~OyT*jhe;$q^ELvNLtbmaVk{O#2=B6?H3<4i?dJaoLw
z<o@M0YPcsA*E@N(r`ziIX4qN?`}*10cvvMhPn_;%z%8xop6D3f5~asz%B<;~>t2}$
zx{LRZu7Nz$otzc5;ieMGZkcY*IU&}<EKE|81_tdB0p($43Ot}a9}G?me_8jlfp#K;
z)^#T`27}5P$Yc&^dIMDENI=&;J1~U7=A3jGUNPvvLRyDGl0k<-lR<~Ul0k>TlR<|e
z5_BCRgAPL_gAPL{gAT(?1|5c#3_1)u8FUy<GU$NkoTM3apa&^{_QI<{>U4_B3UE7}
z3Z)q6M)+h<2@=TQ3Qlg846$HZ6ud?jbY}tRawN#X?4TpVKrIK*=|rH^02)vS^~>R{
z24&EBrQj{tpbH*AC-sYguG)f}X37ZOjs?D^g`E+SHbBStGqNZv>9LrD7u$lHTr8j~
z5LmXp5mwREGk4MAD*2b4n%a9pZ{qA2UwJ)MIRRcZZGG{-*LkG4ePV*06jc6hGm2@L
zvpF$w^PI*Qqx}8<873xfp3@LxloYq*c5UsQ#qrwyd2O?TYi}=!WAaxD4h^tV`?pa@
zPEn9)v7iD6TSA&^oD#F5vAu$Vov{)VV-F*fZ%AMu=f5tHG0{dw(IC?&{@<5p6x}d;
zb0WwbkjcTb+VcFh;}_onjq5u7-^99~RhvPV!JQ$NQ54iVfLuAJ3~g}QFa&{86=?OE
zGJ_a{GJ_g}GJ_d|GJ_j~GD8@HGD8}JGD8`IGD91KGQ%_mWrk%8$_(2Wlo^hJH=}@C
zbjl1*VOv_*7(5un7(5t2>r~7bJQ&;<JQ%_lJQ&g#JQ&ItJQ&&-JQ$`icrYwu@L<@+
z;K6W=!2?#`crZL=@Bk%h(5z|@!z=K`FW}l0bUaxQgC;`|gC#={gC|1}LnK2GLncEI
zLnT8HLnlKJ!%T)ChLsFK3_BTu7*2w(kAdueiwC74U+6LsQ-(-z8qxr7uLPaB1}e%B
zCyYXe!^Gtn<sqB8VTXx<?k6UgGG?nsC1;r@@8}JQntCu@!^y@%mP3qP$yrR#(#y!X
zAVAkVrp!*>)7?S*_dDVf24k_6m$slq-hzzu73GesoZM_oOiWi<Ozai745M3uf|{ZY
z#Wc(m&Jvv@7?>C$nVi^<vIa5mGiZbMy|6HVwzh!J-2q*d1lb<~T5rJ*-4MeBI)dZE
z4hGQmDl$-70aTMHt1Clul`^}sxgw)7Gdt*XU{iBpbyM&`rSS9L)tN1AP1pAPbL&}a
zYAejNi>cE6AG1{Qzas^z;U5^8SQr^!`Dv#A>nKoUVd?7o+pJ+|sKHd*cjC_nCI!ZS
zmg<Iv>P$&$27k{n85yYkod@DGUSecmWbk4B%A^cGFOm^{o+=}Fe=zvuPhn#wW$<_s
z%P;7V5d#xL0`o;?2k^MCI%q|@2J~=y&|X8>SQvCfk>V9a;4)E!;T3}jC~-?Oa59K6
zNHT~pXflW}STcw(cru7EL^6mlWHN{_R5FM#bTWuA%w!N@Sjiy5u#-WA;Ut3yxNZdX
z!9Zu{fcuNA;B!kLTZBP}JcHr}w4aC2NJ9eQ(FB%Ef&&Ij|1UEzu=}w5Vo+hw0F4;%
zL8o0om!p8@F+tO=s-WGwBH$rf&^~PzaNbj8kOtH2pgr2!kS?GU^tc6(2SK$s=td^c
zkgh!F&`yCJ44{su5~#(5dRGXjXa-$a0;<zNn>rOu%^B4h1=SguY*?OH`2GFGC=9;9
z<SqCDlZ~l1vcFr`|I6I)?eD?+Ov0Uv>OTK&vi!ob>&id@vUAfwfh9oeZwOPk*x$*Z
zvef5)C)-3;CkAB(eFkgL8SJ1Hx~9;bwxCo0*dVQVQ-)Uzrm(m+WsqbrWzb|WWv~Pf
zZGj3QQ-(|iQ-(?gQ-)3kQ-+xgrVJ|?Oc{1Em@=GXFa^i8slW~f(0L|opna5((FTfd
z`q{w%*`2wI0d$lr<fdQH$tK|Qmp~^FfL0(GfT#RHEiA~cOA7{N20`#TLsoO}5!Ec9
z9=5qSJ9r}?_=a9~W)U%QM$pO<J|@V4Fly?Ia*T|r$q~Itrk0sgwq7bKJ0F#5lj2z#
zsO?ZVYwL;B#8rOT90A@;<xVToQkRuEGCt2*QEF#t_IH9!Phh)NS^v^V$Snf;+MP-r
zI)$y%0wH$^$jeM*R-5%boH^1v$h-5<UpCOS0+pu&|Ex1M1&wF8Geocmv(z$hGw?%B
z!T@b1g|v!6;~1c#j1x5Cz@ZN+|3R%t(3w)8p+?BEEEeeDG3Yn6gYUr;{uf^JFOqS2
z4dco`Cd_A;X8h}8EGlL!`q%f@7kp<X<NuEg49q`Relb`w%mf|f0J=712Lq^C3fk8U
zq9F+!G^otWzyxmPg4|>d$}4Q(E%3V-WT1HjbWJ#@0VoC?N&qDWPUylQz6(1TK+}hy
z6R<$te9)ydAX@7J<YF4oF)JXxE@<hgzzzoE3y=X#Q&73BC@LZ@W-O{`YGiI^3%ZNl
zR9(?jky%Y$P1#gY6m&G7xHO{~s7VCkg3c0PRuola7gc0F@vmP+wfXP9W>uAclNoab
z|1Dv3yrre2;Kg{v$wv0>5oHS}#;9O<0R_P`jQ;<ob1)V%F27JBDP>?FC0TO8uu;y4
zaZ;eXyn%s$q?FOWEXHPMX(<5%0}T;#<$t9{0{!6r66lO1(3v4R49TDauOz_*251pJ
zC@?@hZAdQ@v~o`V&JG3^fgKF$pg0AU8=!G-F@4DD9~E%L1{z8h178mbig8Zx38J7O
zPKX$E#SUoDLXSzE9em_EyB?z{c%=x+crJ?)=oFEdKz{=X9W`k-7G+}#kvozKpyNfv
z)QshzCyfL^4-?@P65(J9H;MJP6DiS}l)^ki-|3&SYrK_|g%%T&z7uGGm7$lZiD?<D
zBLnCbU@L~rI~YLc*@I>bL3{B)6)ouA9$0MzI?IV4H1UMAhZ}T<j|rr7Fkuj5Fkw(*
zFkvubFkx_GFkuK|FkwhzFkvWTFkxt8FkzU+V8XDB!GvKOg9*bi@K!W%+s%aGDR@I0
z=!6)^&Nq-v`k?g42(JHkfv-*n1wCkS8;Azov1<-46ND8-6@`&@34ku_2AyCE8vj8$
zxmX-}P^6i89~1B2&kDlER(7&F0k$d*8>J)}m3(wP0_BVxT%BbFBxHDGG-U-@PiWd|
z2y3f}s*5n4@?c_35mOZ9;#0BH|94whR$4$&(#>AQSXo?9fJ<LSLy|{a-9*lkRa!+$
zSXN6GbWS-lLorhm(*bbUiZiG)T;9O|s^LK$15gbQ%H%ANvRazq6@xUatd?ewWRPai
zWRPaCWRPa?WRPZvWRPaaWRPa4WRPa)WRPZ<$so<Jl0lkbCxbM@Nd{?fSq;i&e9&~L
z42cbjThfr58o)I@EEYJSw@gWZO9KN#P}rlNVZe%VT3IKP^xvmqdVzV44p}~$Isy4k
z4p}~0j5e00;u=;;W)`BFmQ1HS7<btuI;$!>#adY>x~i!-#m(~ZbjtM9@U(Ty_tgZ|
zd%pjlv$``oF}O1XF(fdo2Q5wq_5DFNNJ8?a9e7dt4u&8B$Tf+eoEZ%1QARL`F+?z^
zF+?z!F+?!9F+?zgF+?z=F+?zwF+?!5F+?y-V~Ai_#t^}<jUj^J7()cCHxR+_lpzAV
zk{+~QG6~d<j|R7SK!enf)1N&U?7(v|ptcXF(E-}Z3fed6dk3_@-;TipoJJwH*)geu
zvN%e*WE2w>7h&UPWP|TzhYV^miNa3ZRR^EM$;Twh3QfRvOs1^vy1~&|F4hSF&hpZR
z_7RSi?Rq{bIl1}*a+;Ews=UmMJmRy3B>363Z8i5a)e<+K<eAtWs`mFIM`fFmg|V^x
zMLq>nbxl(R-hY2RBMkWU&E)jt1&-N;nu-gm+3Lz$=}MPoS_N5Y$jb<}Na`pG3Cbu7
zs)#7E>$CDmsfZNhaf!-{=&0Eh%#NEjombXC<)>SswUn}BoRx*Bx}KGWm4}SB3HS~;
z2Cx5fSmc?r8PpgI7_1q7LpFbyK+?Sl<@;DcqfMYGaafmI7n1gM8N?WL8Pphb8O#`T
z8Qd6j8NwKJ8PXVZ8Oj)R8QK_h8KyDlGAv`zW!T1`%W#ZA7Z&5X3{M$!!7&c1D?w*~
z7%)hK*MWmtED#ptd>C+x1vC^Xqz_6BkXl@UK?___7%&JisDXzjEubvWUG<=09?%#y
zld_V!9-}(Dx;g0LZP4f&_;4;cMsag?P!k4nJ1Zy~se@ZF%xmqXG&Gf!K?nY28B5Bu
z2HOV-YKrSAD}#;#%r%oy=eA#^7;hC3FE4g3E<%`-=if=`AZD*H0TpF`zXZ@hfPx%c
zOofX1T=F6s{(%W83kz(8Ir&(_U)VTRrIjr(TUKA0AEu@9FI>Zlfr-KL?|bG(W^M4j
zxMx8{FQmE53_da*Jf2H&e+1GR0yP{2K;0!s3lr4m)}ZueMbPwt2DszJ0BS*sf#X9L
zeCLUQAtPjz4SXM}nJFtMJAyKv9h<3%nm%MrCNzTdn3$YY5%=LTGJ)^I4VaGSKHMGT
z+=sj9?{&r}%svdf4Dt-AyBPSu$Mb{3n2$k>fsa9rfsetAfsetBfsY}KfsY}Lfsdh#
zfsdh$fsbJt10TaO20n&u415g782Dgmn2+Hp10OgIgL*=WpmA6>ebAsO=v*Msc~oM2
zOxlb}dQ9fhkSl;eK>$8SgRv%+nN31ZH9<vBl8rfaBk00k#09>LoBm9c(varom)4MC
z&S#XA(N`7$sj&1AR@MiN@U}Ciu&ig+W?*Fy-vw?&fzMt79r?=&uEh-u8I{3p*!A^)
z!dWyJQy9H#K=(52`=`S4i8X;iodI+&1V8lrXV7Uzpqd_JGH9L%G<FO+hzc~$Dh_Hv
ziYhXLB2Z1;95i}n$7C+7Y^n%aB`OZdMeNKh{{QZ$%VtjAnd6@*o#dLPW?-wOES~b6
zkxM$Lc~47{y0LMDnx&tJA+vV+-?MXG&i3WwTwrP9Kk;-elU{no`59qcGv!rca{qk+
zpVi^Zpu)_?EXe>`L@dt$I_Va4E-c8aY|xo276u5*z))40lhK%)5kxXGv#I>s%;>8!
zyFle%8Dp2q4L8O}#)y9_{<ShzGgkd;V_;zV-^ZZB<c?%EJM{KgMg}fu@xuyb85jyP
z8*?%$GlEIY*(!{_|2C^IKE9#C*!8bWg>gRE=;e%&Afx}aGB7jD_<xu6B*O#no$jWf
z@i!IdXf6XZsD;2iXYd#S#kahJ)2<MM7^vK15MnT65Mpp+5Ml^p5MoGU5Mn4}5MpR!
z5Mr3dAjGhYL5N`+gAl_p@W4B`B`C!36gGU%#z1jz6I=p-W`7`K6rf`WLERrvpB_Bv
zeF4%f0<E1=MZFB06+ibRJl)HHa>3sxX#97m{5V7=0!iTEf!gHIGnh_;&(o4%0Nwiz
zIz9`uEd!J)K&MV2pEe}|u4lv;7#Kh-9Oq1dc9>gWJ7(x5csUTZ6NQ*|LRJAWL*0`G
zc8@-TEBG$e9SktH$UzemvYSA6ze5gIR==}@0d@cw=#oOvg#?PYPQwCaUeFQkC`-Jt
zI(s&rg=yG4!x)NXH5#a02|4Q}4Sd#%J7_$`1A3>O2mE$4aK2DtpzvH4$Yi!4>?B-B
zJB8viV<2;Ho}iW~;&2rgaGl2kzD*4>5o!jyJNyph;9by_k&sp@Q3tJHjT54eS82u*
zPeh)p;(#UQz<2F%l(O<O=rTBg?rC<`hn&d^+P?}rj~8?{FX+Bp&=w5PZe<Hdm|HN2
zF<3CDF<3B|F<3CTF<3B!F<3C9F<3B^F<3CPF<3B6W3XUY#$ds)jlqK97<kz$xNNdu
zcnV%T%dmq1)aJ7V-?R&wR|bvTfX)Sltb>&UAGo!H0kpe;@y-qg&?utx9Rov6MkPKb
z*xkF}6RM1{jwOQ55(G{2fQA9U2U~GO{PB@<^9$8o|L^Xl63AGVTtJYoH1jNMS0w*_
zs_7b`2O7|FZ`_<?<!>m;!O4-l`bAsZx*4@mhV1O@7{iTB?{qB{dHnm1RrJ1I8ON_=
zp#>_37~=mwXA5U`V$cTP7_o8}gEe@*6|@@+v;YmXUJcaw0hjpJ3}Ot{3~CJ43}y`0
z3~mh83}Fn`3~3D33}p<~3~db74AU5_8J00vGi+n9W;n)R4Qs7fGdyLm2Der~r#-k`
zfaDVoP>R-J01aJ%LKd{O7IZ9!61cAgD#Jm2El|jUhO$6qx!N7bjhT+%bHbRxg8-0o
zSiv(YV(8r}R`{vWpa~Ws=+L1ko4<ZYRHk!wpSGe~NUD9|=2~aZwmn5zORbC-#3fIP
z)BAgwqq9uK*3wepPoRO5rl6vIysf^YmT)z57GtCzs7rOsBE&-4%|upDUcfqkZW5@i
z?PO-=WM42lcE(g5Swoe5iuN%!pd+~ztb&a{{QJkay{QV+cLFz=0vMOGSTJ!z@2G<G
zyCMDT0Ol8eB$&8UAoJk?jLX?{u&ZOe^GgM)j)|dxnUOh`)eC$n()nEs8sN)CVZ)8!
zl8p*y`hl8c!jRmh!63$<!Jx*V!C=Oq!QjTA!4Srv!H~wF!BEDa!O+H_!7z<MgJBti
z2E#T64TfXj%h18OOM~Gl_)2w1G#Y?ft)MMhO8T%yF=RLbG^Pj|Fb0nynwXiJnTzu=
zvV(d|po8E*^XZ@kK&m)pn3Oej!)k<deHH99q+|?LL`2n$WL2y+#s9_PkYIk}l&>43
zV#%W-W#lQVB&uR0BWs`{qG%g#hD(BhiJ_EPg*k{d7Z&ca3<lsrnE^a-0vYDzhOAhi
zcnuaf|H(3lF~~BgF~~BQF~~BwF~~B6F~~BcF~~BMF~~BsF~~AZV~}N7#vseEjX{>-
z7=tV<|H(2uWsn8uKhTA<;MLWzaF+m|(u^hCMcCNc*wyVA&B5cdpu57rnM{s}6{iey
z5K{1h!Vhb>BTKL}p#`s@EGWLPggab<fsvt&nUV1TIK8LBQ#oi}nF{x>LsB^d=;m!$
zngpHIk1GwfA$b_&aF~a2rzcQPCz)A=aV|LBq=GsYpe`GAQw!Ankhle{0KyfQjB}AZ
zKwQKyFf;fw2(hv<FJ@o{x2P&X0R@_L1E*0c^k_lj?4bMYKs{R}(D<+{xRtYuffJmu
zAS-{FL2FkPO%)*>dc+!5(BZ_$r35SMZ!eZ@e|3cvw523<6oiBnbR?y;K{P6#aaks#
zESiG9<!Ay7%>Th>MYH^4kYO-jaAD-#!2mj{2z0BoE9g%93p*HOA>&?Dx@8x%29AM2
z7P<zGk--qmf}C2+1hNe@Cjlvy)fvPX)EU$m)EUee)EV3u)EUAU)EUwk)EUYc)EU|s
z)ETBRs52~MP-oc2pw4iNK^;~)s53lePzRR|kO@-I#E>k5I(W_qG(+G9DyMn$K}`W2
zaNP`Q<2zi~!N3gKA`Y$0%|N|%(D9B~Pr*hXKSp1dj{lVG>4fK!@gAhj*iUGpnVBJ*
zfq``$+a?AP1`P%qMorM(A5m~=Zp;9>BnF(e<te>`4wTzPp*yxfT|Ie$9So2;0?^V}
zxQxIK2GH%w><o|_NWnF@Cc`TRO$O+#&6*6744PnQ$)L&L$)L#)$)L%Q$)L$l$)L&5
z$)L$FlR=YVC4(lzP6kbelMI^Rl~^1Mn$Q!Uz~|9{VihzS3tGR&rN4_o3VKoqz8g+=
zFn}i9LB~IVCT}b*fY&{kDvGj0FFs|2EYlzu-4)nwM4do5nsHs4%6g7a41>m?zW;y0
z{E(H2!Ir_90W{Rh3XWiDsK0rk3zcBAprFg!LDvO>mZEDyM-f14{y@vvz`L1215<iT
z>dNNEpjD-2=E~;AppKN7ICy0#8@nRABIrIcF>yt9MbIq`c1-5X4^{obQ>>HLwTE+;
zNCz=7Gch+x=kupdSR0W(+bW$~&DdV4u7Zbgv-rP6Mn)zk##-@z3pq7xgH4pobhX5a
z6pU4bgL-ylg!0Sr^GWiB74K>DG}l<nZ)&P`{!AFRD7T1`KxoX&JUbbEThL{Ej0{-}
zDohg4F(=5m_MkJ;!6R49OcKzsDizom6}o!RIv4O7Qt&twqZ4BMsp?<bzg7lDhQ$Bs
z%%J@oiVV@v(K688B@7Hw44^wdKvUB&7CT&w2hI|NvxMO+2{=m@$}%uy#Il70vXg^d
zSslE)gYkir)4!V$5sd0V+TFTAjOq~)|86)tGipRc{JR;X+pQf0mStcxV>AiU>Cy{g
zbO{gtw<k!iODE{xnSZAsO7@0_GdhC|0JqcmnW`8bGW#%aGem-NE*ot98Uq7pBnGs}
z8gx#+8v_GF7y|=C8Uq7E83O}D8v_HwGzJESWef}q+ZY%ajxjL6N?Hbnr=UT`SO!pC
z23jy+U??mC+6ZN8VrFb4_RvOG*9L@{9z$pwNI#(A-%7?^44)WeK%>XBXkDVU7gTY!
z@ECXDXfLqiYR7@rN|gRv$s7cBza_(Y(D6FMsGW>Etf<*e#u>cm-4jGJnSq_b>i>PN
zVpd58VFq~yWd?HwXNGWwWF~LW##6{}1{Zit7*rIhfQv#s@I)tQ-W4*u<i`*POY;=Z
z27zl(5e6{^5e78|5e72`5e7E~5r!}Z5r#Ad5r#4b5r#Gf5r%0DA`HtIL>RU)h%g*u
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
VcMPD=b7f)#(+*(Oj0`~x3;;D#G~WOK

literal 0
HcmV?d00001

diff --git a/spxvi/fonts/PalemMUFI-it.ttf b/spxvi/fonts/PalemMUFI-it.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..32029afd62bdc28d75b7cec8f9331b7415ed4f09
GIT binary patch
literal 961396
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%0D=4VR
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

literal 0
HcmV?d00001

diff --git a/spxvi/fonts/PalemMUFI-nm.ttf b/spxvi/fonts/PalemMUFI-nm.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..6ef59c4d430ba1696aa89487fe9ab7b9218cb148
GIT binary patch
literal 857832
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%0An@SBB{T4+!M%v3q7pUt>
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

literal 0
HcmV?d00001

diff --git a/spxvi/img/icons/page_white_text.png b/spxvi/img/icons/page_white_text.png
new file mode 100644
index 0000000000000000000000000000000000000000..813f712f726c935f9adf8d2f2dd0d7683791ef11
GIT binary patch
literal 342
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y<KVi<=^^$>s
zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V1H%hX7sn6@N!EjgdBKhn
zYzJ;0pVw&OxTC4BNn@es<lq85?|=fOmP>(`9J@HoB~<&G@BjO4czMxW>(5LK8$N3b
zw{$=M8>I{e=YMY5y3vIrJlpo!1ZTdVv+aM*o%p-v-mQqHXIW2X)LTBA(f(%h=@Y?n
zpHs7ieTyykO<nKj7q<GUyTktn+nBqvT{I8hGugu;n~}G+ZSuk?FWD|I>M;f`6LMhx
zktgA$X&B3Fb-<dzP|$(>$3mXVAv5kVTOE*QVPq(2n7=G@7SlZ@tB!9{3=N)}RMKR9
r85lOt6Vbh;oi4_}FeUcgKW64FQ_siwlnFC1Ffe$!`njxgN@xNAH*$g;

literal 0
HcmV?d00001

diff --git a/spxvi/img/icons/table.png b/spxvi/img/icons/table.png
new file mode 100644
index 0000000000000000000000000000000000000000..abcd93689a08ec9bdbf0984927e8da06c043c7cd
GIT binary patch
literal 566
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@Z=i(`nz>7~JEwOs;5
z{_o|#uXEyz$fk);W?wQ%a*T`+^qM$V=k3}fhvXMc(eQc`p^>8Gs@WN#A#Xf6f9A8h
z{Ll9tug*_#^t)UBZs+?s_kZ3kK6iD=lpp;wUKwxyYT;>-9Mff_$g+cB#-*6IsuG#`
zg#~IaW8R$a32Dn^P<;BsVaI|W`ZJe{os*7XYe{2YA9E%s%`H+w=aSfV8{hQ!|7ua`
z36VCZ*&kd<+>!Pr{O0{hET?vaGna;|e!jgip7F~T5yhwM3G*4e+HN&R+}U|JA^L=E
zbl1H^g-16#pQl(ccQdS*V8B~+ulJxqiH>{ng%XGVJW)55%brYj6ui20r$^-dbqiJ{
zNJ;%V#8}j~*j&aZ`N8({>*pVw;gPOz(oFO2Eyp<$7PrbS*a`$Mo_2ZPGL_jvzZf}u
zeN)(2%gos~6i#snUu-V+y1me46<6Sd<lT?IyyC2kT(-XBkfU+QS-!AOOJ8=RG2XDM
zEMU}Tnwj@phT+&8DS^A^ekJ9|sb2_uZWz&b?4ms9j%`T^FMfnE?{bQ*w99*UKTz=0
z!KZIm{}#*gHh!zHpF^>AJ$F%h)xR~GM_uQ=S|2s%RnpD=_P-WB{rV?Emu~%U_nd$K
X6n>3@Qs0XV3=9mOu6{1-oD!M<xIg+3

literal 0
HcmV?d00001

diff --git a/spxvi/js/spxvi.js b/spxvi/js/spxvi.js
new file mode 100644
index 0000000..c7d7d70
--- /dev/null
+++ b/spxvi/js/spxvi.js
@@ -0,0 +1,74 @@
+function Spxvi(data) {
+  this.startUp();
+}
+
+Spxvi.prototype.startUp = function() {
+  $('#fleksja p[title="fleksja"]').hide();
+  $('#fleksja div').append('<i id="flexion_swap" class="fa fa-file-text-o" aria-hidden="true" title="Pokaż wersję tekstową/tabelaryczną"></i>');
+
+  this.clearTagsFromText();
+  this.onLanguageChange();
+  this.showFlexion();
+}
+
+Spxvi.prototype.clearTagsFromText = function() {
+  $('#fleksja table td').each(function() {
+    let title = $(this).attr('title'),
+        titleWithoutTags = $(title).text();
+    $(this).attr('title', titleWithoutTags);
+  });
+}
+
+Spxvi.prototype.onLanguageChange = function() {
+  $( "#languages" ).on('iconselectmenuchange', function() {
+    switch(this.value) {
+      case 'lang-pl':
+        $('#flexion_swap').attr('title', 'Pokaż wersję tekstową/tabelaryczną');
+        break;
+      case 'lang-en':
+        $('#flexion_swap').attr('title', 'Show txt/table version');
+        break;
+    }
+  });
+}
+
+Spxvi.prototype.showFlexion = function() {
+  $('#lexp_results').on('click', '#flexion_swap', function() {
+    let click = $(this).data('clicks');
+
+    if (click) {
+      $('#fleksja p[title="fleksja"]').stop().fadeOut('slow', function() {
+        $('#fleksja table').stop().fadeIn('slow');
+      });
+    } else {
+      $('#fleksja table').stop().fadeOut('slow', function() {
+        $('#fleksja p[title="fleksja"]').stop().fadeIn('slow');
+      });
+    }
+
+    $(this).data('clicks', !click);
+  });
+}
+
+Spxvi.id = "spxvi";
+
+$(function () {
+  Element.addVisualizer(Spxvi.id, Spxvi);
+
+  $('#lexp_results').on('mouseup', '#lexpelement_spxvi', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.offsetX || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.offsetX + 20 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/spxvii/img/kolo.gif b/spxvii/img/kolo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f0ca97ad5960c87e38afdc9248e87d9c785d4f4d
GIT binary patch
literal 73
zcmZ?wbhEHb<Y(Y#XkcVuU|{(F|G(l-7Dg@xMg|=aA0)%Tq|n1(S^e_lq1l-iEA>pP
Z+W6WQ3HKbUXz`YaJ;;6B?~fRRH2|`r78C#g

literal 0
HcmV?d00001

diff --git a/spxvii/img/romb.gif b/spxvii/img/romb.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9a24c3050d8356cd3ebb4716edf3ae5d6e6e22a4
GIT binary patch
literal 75
zcmZ?wbhEHb<Y(Y#XkcVuU|{(F|G(l-7Dg@xMg|=aA0)%Tq|_td(EVV~oEEpJjL)b3
be2}k6Qb==usiXQO(D9j6Pz^%>BZD;n^(YqP

literal 0
HcmV?d00001

diff --git a/spxvii/img/trojkat.gif b/spxvii/img/trojkat.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6a7154403a366e6193f23d6eea128ef88b5a88b5
GIT binary patch
literal 96
zcmZ?wbhEHb<Y(Y#XkcVuU|{(F|G(ltQRkx6#FEq$h4Rdj426)4R0VfW-v9>1pDc`A
w42%pqAcY_;3`}x8{VPv1_BOOQMrEX)o>sWCCQK>KeWq-N*cv@AMOFrD03m4`od5s;

literal 0
HcmV?d00001

diff --git a/spxvii/spxvii.css b/spxvii/spxvii.css
new file mode 100644
index 0000000..8d7a3ca
--- /dev/null
+++ b/spxvii/spxvii.css
@@ -0,0 +1,1997 @@
+/*body { font-family: Times New Roman;}*/
+#lexpelement_spxvii {text-align: left; width: 90%; margin: 0 auto;}
+.tytBorder {border-style: double; border-width: 3px; padding: 0px 2px;}
+.forma {color: rgb(0,0,200);}
+.formy_haslowe {font-weight: bold; font-style: italic; font-size: 120%;}
+.forma_haslowa {border: solid 1px; padding: 0px 3px; margin: 1px 3px 1px 0px; background-color: rgb(80, 150, 255); font-style: normal;}
+.forma_podhaslowa {border: solid 1px rgb(150,150,150); padding: 0px 3px; margin: 1px 3px 1px 0px; color: rgb(0,0,0); background-color: rgb(150, 240, 255); font-style: normal;}
+.formy_haslowe .frekwencja {font-size: 80%; font-weight: normal; margin: 5px 0px;}
+.formy_haslowe .funkcja {color: rgb(0,0,0); font-size: 80%; margin: 5px 0px;}
+.obcy {font-family: sans-serif; font-size: 85%;}
+.slowniki {margin: 5px 0px; font-style: italic;}
+.slowniki_warianty {font-style: normal;}
+.slowniki_pod {font-style: normal;}
+.gramatyka {font-style: italic; color: rgb(0,0,200);}
+.gramatyka td {vertical-align: top; font-style: italic; color: rgb(0,0,200);}
+.gramatyka .gram_formy {font-style: normal; font-weight: bold;}
+.gramatyka a {font-style: italic; color: rgb(0,0,200);}
+.etymologia {font-style: italic; color: rgb(0,90,0); margin: 5px 0px;}
+.etymologia div {margin-left: 10px;}
+.etymologia a {color: rgb(0,90,0);}
+.odsylacz {text-transform: uppercase;}
+.znaczenie {font-style: italic; font-weight: bold; color: rgb(255,0,0); margin: 5px 0px;}
+.znaczenie a {font-style: italic; font-weight: bold; color: rgb(255,0,0); margin: 5px 0px;}
+.frekwencja {color: rgb(0,0,0); font-weight: normal; font-size: inherit;}
+.znaczenie .rekcja {margin-left: 15px; color: rgb(0,0,0);}
+.autentyk {color: rgb(0,0,0); font-style: normal; font-weight: normal; padding-left: 10px;}
+.nieautentyk {background-color: rgb(245,245,245); color: rgb(0,0,0); font-style: normal; font-weight: normal; padding-left: 10px;}
+.znaczenie .zrodlo {font-size: 80%; color: inherit; font-weight: normal; font-style: italic;}
+.znaczenie ul, .z_gramatyk ul, ul.cyt_zr {list-style-type: none; padding-left: 15px; margin: 0px; text-indent: -8px;}
+.znaczenie .zwiazki {color: rgb(0,0,0); margin: 5px 0px; padding-left: 10px;}
+.znaczenie .zwiazki a {color: inherit; font-weight: inherit; font-style: inherit;}
+.znaczenie .zwiazki div {font-weight: normal; padding-left: 10px;}
+.znaczenie .zwiazki div img, .lista_zwiazki img {font-weight: normal; width: 11px; height: 11px;}
+.znaczenie .zwiazki span.glowka , .lista_zwiazki a {font-weight: bold; font-style: italic; }
+.znaczenie .zwiazki span.glowka span.male {font-size: 80%};
+.znaczenie .zwiazki .przysl {text-indent: -15px; padding-left: 25px;}
+.znaczenie .zwiazki .zrodlo {font-size: 80%; color: inherit; font-weight: normal; font-style: italic;}
+.z_gramatyk {font-style: italic; color: rgb(255,0,0); font-weight: bold;}
+.z_gramatyk .zrodlo {font-size: 80%; color: inherit; font-style: italic;}
+.podhaslo {margin-left: 25px;}
+.autorzy {text-align: right; margin: 0px; padding-right: 15px; color: rgb(0,0,0); font-style: normal; font-weight: bold;}
+.autorzy a {font-style: italic;}
+.odsylacz {text-transform: uppercase; font-style: normal; color: rgb(0,0,200);}
+.odsylacz span {text-transform: none;}
+.odsylacz a {color: inherit; text-decoration: underline;}
+.odsylacz a:hover {text-decoration: none;}
+li {text-align: justify; margin-right: 5px;}
+.zrodlo {font-size: 80%; color: inherit; font-style: italic; font-weight: normal;}
+.cyt_zr_nagl {font-style: italic; text-align: center; font-weight: bold; margin: 5px 5px; font-size: 110%;}
+.cyt_zr_nagl span {font-style: normal;}
+.cyt_zr_nagl a {font-style: normal;}
+div.wciecie {margin-left: 80px;}
+.kwalifikator {color: rgb(0,0,0);}
+.kwalifikator a {color: rgb(0,0,0);}
+span.przym_od {font-style: normal; font-size: 90%;}
+span.przym_od a {color: rgb(0,0,200); text-decoration: underline;}
+span.przym_od a:hover {text-decoration: none;}
+span.przym_od span {font-style: italic; font-size: 90%;}
+
+body {text-align: center;}
+form {margin: 0px; padding: 0px;}
+a {text-decoration: none; color: rgb(0,0,0);}
+a:hover {text-decoration: underline;}
+img {border-style: none;}
+.b {font-weight: bold;}
+.i {font-style: italic;}
+.bi {font-weight: bold; font-style: italic;}
+.ib {font-weight: bold; font-style: italic;}
+.typy_zw {vertical-align: middle;}
+.haslo_info {text-align: right; padding: 0px 10px; margin: 0px 10px 7px auto; font-size: 80%; border: solid 1px; display: table;}
+.info {text-align: right; font-style: normal; font-weight: bold;}
+.info span {text-align: center; padding: 0px 10px; margin: 0px 10px; font-size: 80%; border: solid 1px;}
+.info .komentarz {font-size: 80%; color: rgb(0,0,0);}
+div.uklad {margin: auto; text-align: left; border-style: outset; border-width: 1px; min-height: 600px;}
+input.znajdz {width: 150px;}
+div.znajdz {text-align: center;}
+div.znajdz_haslo {background-color: rgb(150,150,255)}
+div.znajdz_zwiazek {background-color: #a9dc72}
+div.znajdz_in_haslo {visibility: visible; position: relative;}
+div.znajdz_in_zwiazek {visibility: hidden; position: absolute;}
+input.znajdz_prz {width: 110px;}
+a.litera {font-weight: bold;}
+code {font-style: italic; background-color: rgb(240,240,240);}
+.tekst h2 {font-size: 130%; font-weight: bold; margin: 0px; padding: 0px 5px;}
+.tekst h4 {font-weight: bold; margin: 0px; padding: 0px 5px;}
+.tekst p {text-align: justify; text-indent: 0.5cm; padding: 0px 5px;}
+table.wtyczki td {text-align: center;}
+p {text-indent: 0.5cm; text-align: justify; margin: 0px; padding: 1px 0px;}
+.stat_tab td {border: 1px solid;}
+.zr_link {font-weight: normal; text-decoration: underline; color: rgb(0,0,200);}
+.zr_link:hover {text-decoration: none;}
+td.gramatyka_komorka { width: 300px; }
+td.gramatyka_formy { width: 180px; text-align: left; }
+div.ilustracja {float: right; max-width: 50%; padding: 10px 0px 15px 15px; text-align: center; color: #404040; font-style: italic; font-weight: normal;}
+div.ilustracja > img {display: block; max-width: 100%;}
+
+hr.clear {clear: both; border-style: none; margin: 0;}
+div.menu {background-color: rgb(0,0,120); color: rgb(255,255,255); padding: 5px; font-family: Times New Roman;}
+	div.menu ul {list-style: none; margin: 0; padding: 5px;}
+	div.menu > ul > li {float: left; border-left: solid 1px rgb(255,255,255); border-right: solid 1px rgb(255,255,255); padding: 0 5px; margin: 1px -1px 1px 0;}
+	div.menu > ul > li:hover {background-color: rgb(80,80,160);}
+		div.menu li > ul {position: absolute; visibility: hidden; padding: 5px 10px; background-color: rgb(80,80,160); color: rgb(255,255,255); z-index: 10;}
+		div.menu li:hover > ul {visibility: visible; margin: 0 0 0 -5px; padding: 0;}
+			div.menu li > ul li {padding: 2px 5px; margin: 0;}
+			div.menu li > ul li:hover {background-color: rgb(100,100,200);}
+	div.menu a {color: rgb(255,255,255); white-space: nowrap; font-weight: inherit; text-decoration: inherit;}
+	div.menu li.aktywna {font-weight: bold;}
+div.o_slowniku {padding: 10px;}
+	div.o_slowniku h1 {font-size: 150%; margin: 50px 0;}
+	div.o_slowniku h2, div.o_slowniku h3 {font-weight: bold; margin: 10px 0px 10px 0px; font-size: 150%;}
+		div.o_slowniku h3 > div {display: none; font-weight: normal; margin-left: 10px;}
+	div.o_slowniku p {line-height: 150%;}
+	div.o_slowniku div {line-height: 150%;}
+	div.o_slowniku div.haslo {padding-left: 20px; line-height: 100%;}
+
+table.podstawyMaterialowe th {
+	text-align: center;
+	font-weight: bold;
+	border-bottom: dashed 1px rgb(140,140,140);
+}
+table.podstawyMaterialowe td {
+	border-bottom: dashed 1px rgb(140,140,140);
+}
+
+
+.fa{
+    display:inline-block;
+    font:normal normal normal 14px/1 FontAwesome;
+    font-size:inherit;
+    text-rendering:auto;
+    -webkit-font-smoothing:antialiased;
+    -moz-osx-font-smoothing:grayscale
+}
+
+.detailView{
+    padding:66px 0 0
+}
+.detailView__container{
+    width:100%;
+    max-width:1170px;
+    margin:0 auto;
+    padding:0 15px
+}
+.detailView__container::before,.detailView__container::after{
+    display:table;
+    content:" "
+}
+.detailView__container::after{
+    clear:both
+}
+@media (max-width: 969px){
+    .detailView__container{
+        padding:0 20px
+    }
+}
+.detailView__row{
+    display:flex;
+    flex-wrap:wrap;
+    align-items:baseline;
+    margin-bottom:20px
+}
+.detailView__row:last-child{
+    margin-bottom:0
+}
+@media (max-width: 959px){
+    .detailView__row-left{
+        width:100%;
+        margin-bottom:15px
+    }
+}
+@media (min-width: 960px){
+    .detailView__row-left{
+        flex-grow:1;
+        flex-shrink:1
+    }
+}
+.detailView__row-right{
+    position:relative
+}
+@media (max-width: 959px){
+    .detailView__row-right{
+        display:flex;
+        flex-wrap:wrap;
+        width:100%
+    }
+}
+@media (min-width: 960px){
+    .detailView__row-right{
+        flex-basis:224px;
+        flex-grow:0;
+        flex-shrink:0;
+        margin-left:auto
+    }
+}
+.detailView__title{
+    font-family:"Cormorant Garamond", serif;
+    color:#07293f;
+    font-size:36px;
+    font-weight:700
+}
+.detailView__title.-color-downy{
+    color:#68cfbf
+}
+.detailView__subtitle{
+    width:100%;
+    margin-bottom:5px;
+    color:#07293f;
+    font-size:18px
+}
+.detailView__subtitle:last-child{
+    margin-bottom:0
+}
+.detailView__badge{
+    display:inline-flex;
+    margin-left:20px;
+    padding:0 10px;
+    border-radius:4px;
+    background-color:#68cfbf;
+    color:#fff;
+    font-size:16px;
+    font-style:italic;
+    font-weight:600
+}
+.detailView__label{
+    font-family:"Cormorant Garamond", serif;
+    color:#7f3428;
+    font-size:18px;
+    font-weight:700
+}
+@media (max-width: 959px){
+    .detailView__label{
+        width:100%
+    }
+}
+@media (min-width: 960px){
+    .detailView__label{
+        align-self:flex-end;
+        margin-left:auto;
+        margin-bottom:auto;
+        margin-top:auto;
+        margin-right:2rem;
+    }
+}
+.detailView__button{
+    display:block;
+    position:relative;
+    min-width:220px;
+    padding:5px;
+    transition:background-color .2s ease;
+    border:2px solid #68cfbf;
+    border-radius:4px;
+    font-family:"Lato", sans-serif;
+    color:#07293f;
+    font-weight:700;
+    text-align:center;
+    text-decoration:none;
+    cursor:pointer
+}
+.detailView__button:hover,.detailView__button.-active{
+    background-color:#68cfbf;
+    color:#fff
+}
+@media (min-width: 960px){
+    .detailView__button.-active::before,.detailView__button.-active::after{
+        opacity:1
+    }
+}
+.detailView__button::before{
+    display:block;
+    position:absolute;
+    right:-2px;
+    bottom:-2px;
+    width:228px;
+    height:4px;
+    transition:opacity .2s ease;
+    background-color:#68cfbf;
+    content:"";
+    opacity:0
+}
+.detailView__button::after{
+    display:block;
+    position:absolute;
+    right:222px;
+    bottom:-2px;
+    width:4px;
+    height:4px;
+    transition:opacity .2s ease;
+    border-radius:0 0 50%;
+    background-color:#f5f5f5;
+    content:"";
+    opacity:0
+}
+.detailView__popup{
+    display:none;
+    position:absolute;
+    right:0;
+    width:640px;
+    border-top:4px solid #68cfbf;
+    border-radius:4px 0 4px 4px;
+    background-color:#fff;
+    box-shadow:0 3px 7px -3px rgba(0,0,0,0.47);
+    z-index:1000
+}
+@media (max-width: 959px){
+    .detailView__popup{
+        position:relative;
+        right:auto;
+        width:100%
+    }
+}
+.detailView__popup-item{
+    display:flex;
+    align-items:center;
+    padding:25px 0;
+    border-bottom:1px dashed #3c3c3c
+}
+.detailView__popup-item:last-child{
+    border-bottom:0 none
+}
+.detailView__popup-quote-method{
+    flex:86px 0 0;
+    font-family:"Cormorant Garamond", serif;
+    color:#07293f;
+    font-size:16px;
+    font-weight:700;
+    text-align:center
+}
+.detailView__popup-content{
+    display:block;
+    width:100%;
+    padding:0 5px;
+    color:#07293f;
+    font-size:12px
+}
+.detailView__popup-content p{
+    margin-bottom:16px;
+    font-size:16px;
+    font-weight:400;
+    line-height:1.3
+}
+@media (max-width: 767px){
+    .detailView__popup-content p{
+        font-size:16px
+    }
+}
+.detailView__popup-content strong{
+    font-weight:700
+}
+.detailView__popup-content b{
+    font-weight:700
+}
+.detailView__popup-content em,.detailView__popup-content i{
+    font-style:italic
+}
+.detailView__popup-content u,.detailView__popup-content ins{
+    text-decoration:underline
+}
+.detailView__popup-content small{
+    font-size:smaller
+}
+.detailView__popup-content mark{
+    background-color:#ff0;
+    color:inherit
+}
+.detailView__popup-content del{
+    text-decoration:line-through
+}
+.detailView__popup-content sub{
+    font-size:smaller;
+    vertical-align:sub
+}
+.detailView__popup-content sup{
+    font-size:smaller;
+    vertical-align:super
+}
+.detailView__popup-content ul{
+    display:block;
+    padding-left:20px;
+    list-style-type:disc
+}
+.detailView__popup-content ol{
+    display:block;
+    padding-left:20px;
+    list-style-type:decimal
+}
+.detailView__popup-content li{
+    display:list-item;
+    text-align:match-parent
+}
+.detailView__popup-content table{
+    display:table;
+    width:100%;
+    max-width:750px;
+    margin:0 auto 15px;
+    border-radius:6px;
+    border-color:#3c3c3c;
+    color:#3c3c3c;
+    border-collapse:separate;
+    border-spacing:2px
+}
+.detailView__popup-content tr{
+    display:table-row;
+    border-color:inherit;
+    vertical-align:inherit
+}
+.detailView__popup-content th{
+    padding:8px;
+    background-color:#d7dfe7;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.detailView__popup-content th.-th-sub{
+    font-size:14px
+}
+.detailView__popup-content td{
+    padding:8px;
+    border-bottom:1px solid #d7dfe7;
+    background-color:transparent;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.detailView__popup-content img{
+    display:block;
+    max-width:100%;
+    height:auto;
+    margin:0 auto
+}
+.detailView__popup-content a{
+    color:inherit;
+    text-decoration:none
+}
+.detailView__popup-content .cms-col-25{
+    width:25%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-col-25{
+        width:100%
+    }
+}
+.detailView__popup-content .cms-col-33{
+    width:33.33%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-col-33{
+        width:100%
+    }
+}
+.detailView__popup-content .cms-col-50{
+    width:50%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-col-50{
+        width:100%
+    }
+}
+.detailView__popup-content .responsive-table{
+    display:block;
+    width:100%;
+    overflow:auto
+}
+.detailView__popup-content .cms-panel{
+    display:block;
+    width:100%;
+    margin-bottom:20px;
+    padding:28px 32px;
+    border-radius:6px;
+    background-color:#fff;
+    box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);
+    cursor:default
+}
+.detailView__popup-content .cms-panel p{
+    margin:0 0 20px;
+    text-align:justify
+}
+.detailView__popup-content .cms-panel p:last-of-type{
+    margin:0
+}
+.detailView__popup-content .cms-availability-panel{
+    display:block;
+    width:100%
+}
+.detailView__popup-content .cms-availability-panel__header{
+    display:flex;
+    align-items:center;
+    width:100%;
+    margin-bottom:15px
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-availability-panel__header{
+        display:none
+    }
+}
+.detailView__popup-content .cms-availability-panel__header>div{
+    cursor:default
+}
+.detailView__popup-content .cms-availability-panel__header>div p{
+    margin:0;
+    color:#7a7a7a;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+@media (max-width: 969px){
+    .detailView__popup-content .cms-availability-panel__header>div p{
+        font-size:14px
+    }
+}
+.detailView__popup-content .cms-availability-panel__header>div:nth-of-type(1){
+    flex-shrink:0;
+    width:20%;
+    min-width:242px
+}
+.detailView__popup-content .cms-availability-panel__header>div:nth-of-type(2){
+    width:65%
+}
+.detailView__popup-content .cms-availability-panel__header>div:nth-of-type(3){
+    flex-shrink:0;
+    width:15%;
+    min-width:95px
+}
+.detailView__popup-content .cms-availability-panel__item{
+    display:flex;
+    align-items:stretch;
+    width:100%;
+    border-bottom:1px solid #dbdbdb
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-availability-panel__item{
+        flex-wrap:wrap
+    }
+}
+.detailView__popup-content .cms-availability-panel__item>div:nth-of-type(1){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:20%;
+    min-width:242px;
+    cursor:default
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-availability-panel__item>div:nth-of-type(1){
+        width:100%;
+        margin:15px auto
+    }
+}
+.detailView__popup-content .cms-availability-panel__item>div:nth-of-type(1) p{
+    margin:0;
+    color:#234153;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+.detailView__popup-content .cms-availability-panel__item>div:nth-of-type(2){
+    width:65%;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-availability-panel__item>div:nth-of-type(2){
+        width:85%
+    }
+}
+@media (max-width: 480px){
+    .detailView__popup-content .cms-availability-panel__item>div:nth-of-type(2){
+        width:100%
+    }
+}
+.detailView__popup-content .cms-availability-panel__item>div:nth-of-type(2) p:last-of-type{
+    margin:0
+}
+.detailView__popup-content .cms-availability-panel__item>div:nth-of-type(3){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:15%;
+    min-width:95px;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .detailView__popup-content .cms-availability-panel__item>div:nth-of-type(3){
+        min-width:inherit
+    }
+}
+@media (max-width: 480px){
+    .detailView__popup-content .cms-availability-panel__item>div:nth-of-type(3){
+        width:100%
+    }
+}
+.detailView__popup-content .cms-availability-panel__result{
+    display:inline-block;
+    position:relative;
+    flex-shrink:0;
+    width:40px;
+    height:40px;
+    border-radius:100%;
+    background-color:#bdbdbd
+}
+.detailView__popup-content .cms-availability-panel__result.dostepneWPracowni{
+    background-color:#68cfbf
+}
+.detailView__popup-content .cms-availability-panel__result::after{
+    position:absolute;
+    top:50%;
+    left:50%;
+    transform:translate(-50%, -50%);
+    color:#fff;
+    content:"";
+    font-family:"FontAwesome"
+}
+.detailView__popup-content .cms-availability-panel__result.dostepneWPracowni::after{
+    content:""
+}
+.detailView__popup-content .ramka{
+    display:inline-block;
+    margin:1px;
+    padding:3px;
+    border:1px solid #234153
+}
+.detailView__popup-copy{
+    flex:84px 0 0;
+    height:37px;
+    transition:opacity .2s ease;
+    background-image:url("../images/detailVIew/copy.png");
+    background-repeat:no-repeat;
+    background-position:center;
+    cursor:pointer
+}
+.detailView__popup-copy:hover{
+    opacity:.8
+}
+.detailView-footer{
+    padding:35px 0;
+    background-color:#fff
+}
+.detailView-footer__container{
+    display:flex;
+    flex-wrap:wrap;
+    justify-content:space-between;
+    width:100%;
+    max-width:1200px;
+    margin:0 auto;
+    padding:0 15px
+}
+.detailView-footer__author{
+    font-size:18px
+}
+@media (max-width: 767px){
+    .detailView-footer__author{
+        width:100%;
+        margin-bottom:30px;
+        text-align:center
+    }
+}
+.detailView-footer__date{
+    font-size:18px
+}
+@media (max-width: 767px){
+    .detailView-footer__date{
+        width:100%;
+        text-align:center
+    }
+}
+
+
+.query{
+    display:block;
+    width:100%;
+    padding:66px 0
+}
+@media (max-width: 767px){
+    .query{
+        padding:45px 0
+    }
+}
+.query.-internal{
+    padding:20px 0 0
+}
+.query__container{
+    width:100%;
+    max-width:1170px;
+    margin:0 auto;
+    padding:0 15px
+}
+.query__container::before,.query__container::after{
+    display:table;
+    content:" "
+}
+.query__container::after{
+    clear:both
+}
+@media (max-width: 969px){
+    .query__container{
+        padding:0 20px
+    }
+}
+.query__title{
+    display:block;
+    width:100%;
+    margin-bottom:60px;
+    color:#07293f;
+    font-size:32px;
+    font-weight:bold;
+    text-align:center;
+    cursor:default;
+    font-family:"Cormorant Garamond", serif
+}
+@media (max-width: 767px){
+    .query__title{
+        margin-bottom:25px;
+        font-size:24px
+    }
+}
+.query__text{
+    display:block;
+    width:100%;
+    padding:0 5px;
+    display:block;
+    width:100%;
+    max-width:944px;
+    margin:0 auto;
+    margin-bottom:45px;
+    padding:0 40px;
+    cursor:default
+}
+.query__text p{
+    margin-bottom:16px;
+    font-size:16px;
+    font-weight:400;
+    line-height:1.3
+}
+@media (max-width: 767px){
+    .query__text p{
+        font-size:16px
+    }
+}
+.query__text strong{
+    font-weight:700
+}
+.query__text b{
+    font-weight:700
+}
+.query__text em,.query__text i{
+    font-style:italic
+}
+.query__text u,.query__text ins{
+    text-decoration:underline
+}
+.query__text small{
+    font-size:smaller
+}
+.query__text mark{
+    background-color:#ff0;
+    color:inherit
+}
+.query__text del{
+    text-decoration:line-through
+}
+.query__text sub{
+    font-size:smaller;
+    vertical-align:sub
+}
+.query__text sup{
+    font-size:smaller;
+    vertical-align:super
+}
+.query__text ul{
+    display:block;
+    padding-left:20px;
+    list-style-type:disc
+}
+.query__text ol{
+    display:block;
+    padding-left:20px;
+    list-style-type:decimal
+}
+.query__text li{
+    display:list-item;
+    text-align:match-parent
+}
+.query__text table{
+    display:table;
+    width:100%;
+    max-width:750px;
+    margin:0 auto 15px;
+    border-radius:6px;
+    border-color:#3c3c3c;
+    color:#3c3c3c;
+    border-collapse:separate;
+    border-spacing:2px
+}
+.query__text tr{
+    display:table-row;
+    border-color:inherit;
+    vertical-align:inherit
+}
+.query__text th{
+    padding:8px;
+    background-color:#d7dfe7;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.query__text th.-th-sub{
+    font-size:14px
+}
+.query__text td{
+    padding:8px;
+    border-bottom:1px solid #d7dfe7;
+    background-color:transparent;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.query__text img{
+    display:block;
+    max-width:100%;
+    height:auto;
+    margin:0 auto
+}
+.query__text a{
+    color:inherit;
+    text-decoration:none
+}
+.query__text .cms-col-25{
+    width:25%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__text .cms-col-25{
+        width:100%
+    }
+}
+.query__text .cms-col-33{
+    width:33.33%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__text .cms-col-33{
+        width:100%
+    }
+}
+.query__text .cms-col-50{
+    width:50%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__text .cms-col-50{
+        width:100%
+    }
+}
+.query__text .responsive-table{
+    display:block;
+    width:100%;
+    overflow:auto
+}
+.query__text .cms-panel{
+    display:block;
+    width:100%;
+    margin-bottom:20px;
+    padding:28px 32px;
+    border-radius:6px;
+    background-color:#fff;
+    box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);
+    cursor:default
+}
+.query__text .cms-panel p{
+    margin:0 0 20px;
+    text-align:justify
+}
+.query__text .cms-panel p:last-of-type{
+    margin:0
+}
+.query__text .cms-availability-panel{
+    display:block;
+    width:100%
+}
+.query__text .cms-availability-panel__header{
+    display:flex;
+    align-items:center;
+    width:100%;
+    margin-bottom:15px
+}
+@media (max-width: 767px){
+    .query__text .cms-availability-panel__header{
+        display:none
+    }
+}
+.query__text .cms-availability-panel__header>div{
+    cursor:default
+}
+.query__text .cms-availability-panel__header>div p{
+    margin:0;
+    color:#7a7a7a;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+@media (max-width: 969px){
+    .query__text .cms-availability-panel__header>div p{
+        font-size:14px
+    }
+}
+.query__text .cms-availability-panel__header>div:nth-of-type(1){
+    flex-shrink:0;
+    width:20%;
+    min-width:242px
+}
+.query__text .cms-availability-panel__header>div:nth-of-type(2){
+    width:65%
+}
+.query__text .cms-availability-panel__header>div:nth-of-type(3){
+    flex-shrink:0;
+    width:15%;
+    min-width:95px
+}
+.query__text .cms-availability-panel__item{
+    display:flex;
+    align-items:stretch;
+    width:100%;
+    border-bottom:1px solid #dbdbdb
+}
+@media (max-width: 767px){
+    .query__text .cms-availability-panel__item{
+        flex-wrap:wrap
+    }
+}
+.query__text .cms-availability-panel__item>div:nth-of-type(1){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:20%;
+    min-width:242px;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__text .cms-availability-panel__item>div:nth-of-type(1){
+        width:100%;
+        margin:15px auto
+    }
+}
+.query__text .cms-availability-panel__item>div:nth-of-type(1) p{
+    margin:0;
+    color:#234153;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+.query__text .cms-availability-panel__item>div:nth-of-type(2){
+    width:65%;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__text .cms-availability-panel__item>div:nth-of-type(2){
+        width:85%
+    }
+}
+@media (max-width: 480px){
+    .query__text .cms-availability-panel__item>div:nth-of-type(2){
+        width:100%
+    }
+}
+.query__text .cms-availability-panel__item>div:nth-of-type(2) p:last-of-type{
+    margin:0
+}
+.query__text .cms-availability-panel__item>div:nth-of-type(3){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:15%;
+    min-width:95px;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__text .cms-availability-panel__item>div:nth-of-type(3){
+        min-width:inherit
+    }
+}
+@media (max-width: 480px){
+    .query__text .cms-availability-panel__item>div:nth-of-type(3){
+        width:100%
+    }
+}
+.query__text .cms-availability-panel__result{
+    display:inline-block;
+    position:relative;
+    flex-shrink:0;
+    width:40px;
+    height:40px;
+    border-radius:100%;
+    background-color:#bdbdbd
+}
+.query__text .cms-availability-panel__result.dostepneWPracowni{
+    background-color:#68cfbf
+}
+.query__text .cms-availability-panel__result::after{
+    position:absolute;
+    top:50%;
+    left:50%;
+    transform:translate(-50%, -50%);
+    color:#fff;
+    content:"";
+    font-family:"FontAwesome"
+}
+.query__text .cms-availability-panel__result.dostepneWPracowni::after{
+    content:""
+}
+.query__text .ramka{
+    display:inline-block;
+    margin:1px;
+    padding:3px;
+    border:1px solid #234153
+}
+@media (max-width: 767px){
+    .query__text{
+        padding:0 15px
+    }
+}
+.query__box{
+    display:block;
+    width:100%;
+    max-width:944px;
+    margin:0 auto
+}
+.query__item{
+    display:block;
+    width:100%;
+    margin-bottom:20px
+}
+.query__content{
+    display:inline-block;
+    width:100%;
+    padding:25px 0 45px
+}
+@media (max-width: 767px){
+    .query__content{
+        padding-bottom:25px
+    }
+}
+.query.-internal .query__content{
+    padding-bottom:0
+}
+.query__cms{
+    display:block;
+    width:100%;
+    padding:0 5px;
+    padding:0 40px
+}
+.query__cms p{
+    margin-bottom:16px;
+    font-size:16px;
+    font-weight:400;
+    line-height:1.3
+}
+@media (max-width: 767px){
+    .query__cms p{
+        font-size:16px
+    }
+}
+.query__cms strong{
+    font-weight:700
+}
+.query__cms b{
+    font-weight:700
+}
+.query__cms em,.query__cms i{
+    font-style:italic
+}
+.query__cms u,.query__cms ins{
+    text-decoration:underline
+}
+.query__cms small{
+    font-size:smaller
+}
+.query__cms mark{
+    background-color:#ff0;
+    color:inherit
+}
+.query__cms del{
+    text-decoration:line-through
+}
+.query__cms sub{
+    font-size:smaller;
+    vertical-align:sub
+}
+.query__cms sup{
+    font-size:smaller;
+    vertical-align:super
+}
+.query__cms ul{
+    display:block;
+    padding-left:20px;
+    list-style-type:disc
+}
+.query__cms ol{
+    display:block;
+    padding-left:20px;
+    list-style-type:decimal
+}
+.query__cms li{
+    display:list-item;
+    text-align:match-parent
+}
+.query__cms table{
+    display:table;
+    width:100%;
+    max-width:750px;
+    margin:0 auto 15px;
+    border-radius:6px;
+    border-color:#3c3c3c;
+    color:#3c3c3c;
+    border-collapse:separate;
+    border-spacing:2px
+}
+.query__cms tr{
+    display:table-row;
+    border-color:inherit;
+    vertical-align:inherit
+}
+.query__cms th{
+    padding:8px;
+    background-color:#d7dfe7;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.query__cms th.-th-sub{
+    font-size:14px
+}
+.query__cms td{
+    padding:8px;
+    border-bottom:1px solid #d7dfe7;
+    background-color:transparent;
+    font-size:18px;
+    font-weight:600;
+    text-align:center;
+    cursor:default;
+    vertical-align:middle
+}
+.query__cms img{
+    display:block;
+    max-width:100%;
+    height:auto;
+    margin:0 auto
+}
+.query__cms a{
+    color:inherit;
+    text-decoration:none
+}
+.query__cms .cms-col-25{
+    width:25%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__cms .cms-col-25{
+        width:100%
+    }
+}
+.query__cms .cms-col-33{
+    width:33.33%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__cms .cms-col-33{
+        width:100%
+    }
+}
+.query__cms .cms-col-50{
+    width:50%;
+    padding:15px;
+    float:left
+}
+@media (max-width: 767px){
+    .query__cms .cms-col-50{
+        width:100%
+    }
+}
+.query__cms .responsive-table{
+    display:block;
+    width:100%;
+    overflow:auto
+}
+.query__cms .cms-panel{
+    display:block;
+    width:100%;
+    margin-bottom:20px;
+    padding:28px 32px;
+    border-radius:6px;
+    background-color:#fff;
+    box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);
+    cursor:default
+}
+.query__cms .cms-panel p{
+    margin:0 0 20px;
+    text-align:justify
+}
+.query__cms .cms-panel p:last-of-type{
+    margin:0
+}
+.query__cms .cms-availability-panel{
+    display:block;
+    width:100%
+}
+.query__cms .cms-availability-panel__header{
+    display:flex;
+    align-items:center;
+    width:100%;
+    margin-bottom:15px
+}
+@media (max-width: 767px){
+    .query__cms .cms-availability-panel__header{
+        display:none
+    }
+}
+.query__cms .cms-availability-panel__header>div{
+    cursor:default
+}
+.query__cms .cms-availability-panel__header>div p{
+    margin:0;
+    color:#7a7a7a;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+@media (max-width: 969px){
+    .query__cms .cms-availability-panel__header>div p{
+        font-size:14px
+    }
+}
+.query__cms .cms-availability-panel__header>div:nth-of-type(1){
+    flex-shrink:0;
+    width:20%;
+    min-width:242px
+}
+.query__cms .cms-availability-panel__header>div:nth-of-type(2){
+    width:65%
+}
+.query__cms .cms-availability-panel__header>div:nth-of-type(3){
+    flex-shrink:0;
+    width:15%;
+    min-width:95px
+}
+.query__cms .cms-availability-panel__item{
+    display:flex;
+    align-items:stretch;
+    width:100%;
+    border-bottom:1px solid #dbdbdb
+}
+@media (max-width: 767px){
+    .query__cms .cms-availability-panel__item{
+        flex-wrap:wrap
+    }
+}
+.query__cms .cms-availability-panel__item>div:nth-of-type(1){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:20%;
+    min-width:242px;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__cms .cms-availability-panel__item>div:nth-of-type(1){
+        width:100%;
+        margin:15px auto
+    }
+}
+.query__cms .cms-availability-panel__item>div:nth-of-type(1) p{
+    margin:0;
+    color:#234153;
+    font-size:18px;
+    font-weight:bold;
+    text-align:center
+}
+.query__cms .cms-availability-panel__item>div:nth-of-type(2){
+    width:65%;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__cms .cms-availability-panel__item>div:nth-of-type(2){
+        width:85%
+    }
+}
+@media (max-width: 480px){
+    .query__cms .cms-availability-panel__item>div:nth-of-type(2){
+        width:100%
+    }
+}
+.query__cms .cms-availability-panel__item>div:nth-of-type(2) p:last-of-type{
+    margin:0
+}
+.query__cms .cms-availability-panel__item>div:nth-of-type(3){
+    display:flex;
+    flex-shrink:0;
+    align-items:center;
+    justify-content:center;
+    width:15%;
+    min-width:95px;
+    padding:20px;
+    background-color:#fff;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query__cms .cms-availability-panel__item>div:nth-of-type(3){
+        min-width:inherit
+    }
+}
+@media (max-width: 480px){
+    .query__cms .cms-availability-panel__item>div:nth-of-type(3){
+        width:100%
+    }
+}
+.query__cms .cms-availability-panel__result{
+    display:inline-block;
+    position:relative;
+    flex-shrink:0;
+    width:40px;
+    height:40px;
+    border-radius:100%;
+    background-color:#bdbdbd
+}
+.query__cms .cms-availability-panel__result.dostepneWPracowni{
+    background-color:#68cfbf
+}
+.query__cms .cms-availability-panel__result::after{
+    position:absolute;
+    top:50%;
+    left:50%;
+    transform:translate(-50%, -50%);
+    color:#fff;
+    content:"";
+    font-family:"FontAwesome"
+}
+.query__cms .cms-availability-panel__result.dostepneWPracowni::after{
+    content:""
+}
+.query__cms .ramka{
+    display:inline-block;
+    margin:1px;
+    padding:3px;
+    border:1px solid #234153
+}
+@media (max-width: 767px){
+    .query__cms{
+        padding:0 15px
+    }
+}
+.query__searchResults{
+    display:inline-block;
+    width:100%;
+    padding:0 40px
+}
+@media (max-width: 767px){
+    .query__searchResults{
+        padding:0 15px
+    }
+}
+.query__advanved{
+    display:inline-block;
+    width:100%;
+    padding:0 40px
+}
+@media (max-width: 767px){
+    .query__advanved{
+        padding:0 15px
+    }
+}
+.query__selectbox{
+    display:block;
+    width:100%;
+    max-width:552px;
+    margin:0 auto
+}
+.query__select{
+    width:100%;
+    border:0;
+    border-radius:6px;
+    color:#07293f;
+    font-size:16px;
+    box-shadow:0 1px 5px 0 rgba(0,0,0,0.47)
+}
+.query__select .list{
+    width:100%
+}
+.query__select::after{
+    right:16px;
+    width:10px;
+    height:10px;
+    margin-top:-8px;
+    border-right:3px solid #07293f;
+    border-bottom:3px solid #07293f
+}
+.query__tags{
+    display:flex;
+    flex-wrap:wrap;
+    justify-content:center
+}
+.query__navigation{
+    display:block;
+    width:100%;
+    text-align:center
+}
+.query__button{
+    font-family:"Lato", sans-serif;
+    display:inline-flex;
+    align-items:center;
+    justify-content:center;
+    min-height:40px;
+    padding:0 25px;
+    transition:0.2s;
+    border:1px solid #68cfbf;
+    border-radius:6px;
+    background-color:#68cfbf;
+    color:#fff;
+    font-size:18px;
+    font-weight:bold;
+    line-height:1;
+    text-decoration:none;
+    cursor:pointer;
+    min-width:360px;
+    height:60px;
+    font-size:24px
+}
+.query__button:hover{
+    background-color:#41c3af
+}
+.query__button:active{
+    background-color:#41c3af
+}
+@media (max-width: 767px){
+    .query__button{
+        min-width:150px;
+        height:40px;
+        font-size:16px
+    }
+}
+.query-etymology{
+    padding:0 40px;
+    font-weight:700
+}
+.query-etymology__source{
+    color:#68cfbf
+}
+.query-etymology__meaning{
+    color:#07293f;
+    font-size:18px;
+    font-style:italic
+}
+.query-grammar{
+    padding:0 40px
+}
+@media (max-width: 479px){
+    .query-grammar{
+        padding:0 5px
+    }
+}
+@media (max-width: 639px){
+    .query-grammar{
+        padding:0 10px
+    }
+}
+.query-grammar__label{
+    width:100%;
+    margin-bottom:20px;
+    padding:10px 15px;
+    border-radius:3px;
+    background-color:#fff;
+    color:#68cfbf;
+    font-size:18px;
+    font-weight:700
+}
+.query-grammar__content{
+    display:flex;
+    flex-wrap:wrap;
+    margin-bottom:20px
+}
+.query-grammar__column{
+    width:50%
+}
+@media (max-width: 767px){
+    .query-grammar__column{
+        width:100%;
+        padding-bottom:40px
+    }
+}
+@media (max-width: 767px){
+    .query-grammar__column{
+        padding-bottom:0
+    }
+}
+.query-grammar__title{
+    width:100%;
+    margin-bottom:20px;
+    padding:10px 15px;
+    color:#68cfbf;
+    font-size:18px;
+    font-weight:700
+}
+.query-grammar__table-row{
+    color:#07293f;
+    font-size:18px
+}
+.query-grammar__table-row td:not([class]){
+    padding-bottom:30px
+}
+.query-grammar__variant{
+    padding:0 25px 10px 20px;
+    text-align:right
+}
+.query-grammar__gender{
+    padding:0 10px 10px 0;
+    font-style:italic
+}
+.query-grammar__case{
+    padding:0 0 10px;
+    font-weight:700
+}
+.query-label{
+    display:flex;
+    position:relative;
+    flex-wrap:wrap;
+    align-items:stretch;
+    justify-content:space-between;
+    width:100%;
+    min-height:40px;
+    padding:2px 20px;
+    border-radius:3px;
+    background-color:#fff
+}
+.query-label.-dropdown{
+    padding:2px 20px 2px 40px;
+    cursor:pointer
+}
+.query-label__name{
+    display:inline-flex;
+    position:relative;
+    flex-wrap:wrap;
+    align-items:center;
+    min-height:40px;
+    color:#07293f;
+    font-size:18px;
+    font-weight:600;
+    cursor:default
+}
+.-dropdown .query-label__name{
+    cursor:pointer
+}
+.query-label__name span{
+    margin-left:10px;
+    color:#68cfbf;
+    font-size:14px;
+    font-style:italic;
+    font-weight:400
+}
+@media (max-width: 767px){
+    .query-label__name span{
+        display:block;
+        width:100%;
+        margin-top:5px;
+        margin-left:0
+    }
+}
+.query-label__details{
+    display:inline-flex;
+    align-items:center;
+    min-height:40px;
+    padding:0 10px;
+    color:#07293f;
+    font-size:14px;
+    font-weight:400;
+    cursor:default
+}
+@media (max-width: 767px){
+    .query-label__details{
+        justify-content:flex-end;
+        width:100%;
+        padding:5px 0
+    }
+}
+.-dropdown .query-label__details{
+    cursor:pointer
+}
+.query-label__details strong{
+    margin:0 4px
+}
+.query-label__params{
+    display:inline-flex;
+    flex-wrap:wrap;
+    align-items:center
+}
+@media (max-width: 767px){
+    .query-label__params{
+        justify-content:center;
+        width:100%;
+        padding:5px 0
+    }
+}
+.query-label__params label{
+    display:inline-flex;
+    align-items:center;
+    margin:0 5px;
+    cursor:pointer
+}
+.query-label__params input[type="radio"]{
+    margin-right:10px;
+    border:1px solid #07293f
+}
+.query-label__params span{
+    color:#07293f;
+    font-size:18px;
+    font-weight:600
+}
+.query-label__dropdown{
+    position:absolute;
+    top:50%;
+    left:-30px;
+    margin-right:12px;
+    transform:translate(0, -50%);
+    transition:0.2s;
+    color:#92dacf;
+    cursor:pointer
+}
+.query-label__dropdown:hover{
+    color:#6ccdbe
+}
+.query-label__dropdown.-active{
+    color:#6ccdbe
+}
+.query-links{
+    padding:0 20px;
+    color:#07293f;
+    font-size:18px
+}
+.query-links__link{
+    font-family:"Cormorant Garamond", serif;
+    color:inherit;
+    font-weight:700;
+    text-decoration:underline
+}
+.query-links__link:hover{
+    text-decoration:none
+}
+.query-list{
+    padding:0 0 20px 20px
+}
+.query-list__item .query-list{
+    padding-top:5px;
+    padding-bottom:0
+}
+.query-list__item{
+    position:relative;
+    padding:0 0 10px;
+    color:#07293f;
+    font-size:18px;
+    list-style:none
+}
+.query-list__item:last-child{
+    padding-bottom:0
+}
+.query-list__item::before,.query-list__item::after{
+    display:block;
+    position:absolute;
+    content:""
+}
+.query-list__item.-circle.-small::before{
+    top:10px;
+    left:-18px;
+    width:8px;
+    height:8px;
+    border-radius:50%
+}
+.query-list__item.-circle.-big::before{
+    top:8px;
+    left:-20px;
+    width:12px;
+    height:12px;
+    border-radius:50%
+}
+.query-list__item.-red::before{
+    background-color:#840000
+}
+.query-list__item.-downy::before{
+    background-color:#68cfbf
+}
+.query-list__item.-tiber::before{
+    background-color:#07293f
+}
+.query-list__item.-square::before{
+    top:9px;
+    left:-20px;
+    width:12px;
+    height:12px;
+    background-color:#07293f
+}
+.query-list__item.-triangle::before{
+    top:7px;
+    left:-20px;
+    border-top:0 solid transparent;
+    border-right:6px solid transparent;
+    border-bottom:13px solid #07293f;
+    border-left:6px solid transparent
+}
+.query-list__item.-diamond::before{
+    top:3px;
+    left:-20px;
+    border-top:0 solid transparent;
+    border-right:6px solid transparent;
+    border-bottom:9px solid #07293f;
+    border-left:6px solid transparent
+}
+.query-list__item.-diamond::after{
+    top:12px;
+    left:-20px;
+    border-top:9px solid #07293f;
+    border-right:6px solid transparent;
+    border-bottom:0 solid transparent;
+    border-left:6px solid transparent
+}
+.query-meaning{
+    display:flex;
+    margin-bottom:20px;
+    padding:0 20px;
+    border-bottom:1px dashed #bdbdbd
+}
+.query-meaning:last-child{
+    margin-bottom:0
+}
+.query-meaning__content{
+    flex-grow:1;
+    flex-shrink:1
+}
+.query-meaning__image-section{
+    flex-grow:0;
+    flex-shrink:0;
+    text-align:center
+}
+.query-meaning__image-box{
+    display:inline-block;
+    position:relative
+}
+.query-meaning__image{
+    display:block;
+    max-width:120px;
+    height:auto
+}
+.query-meaning__overlay{
+    display:block;
+    position:absolute;
+    top:50%;
+    left:50%;
+    transform:translate(-50%, -50%);
+    width:74px;
+    height:auto
+}
+.query-meaning__image-title{
+    color:#07293f;
+    font-size:12px;
+    font-weight:700
+}
+.query-meaning__image-subtitle{
+    color:#68cfbf;
+    font-size:12px;
+    font-style:italic;
+    font-weight:700
+}
+.query-meaning__head{
+    margin-bottom:5px;
+    font-size:18px
+}
+.query-meaning__head .-red{
+    color:#840000
+}
+.query-meaning__badge{
+    display:inline-block;
+    margin-left:5px;
+    padding:0 10px;
+    border-radius:4px;
+    background-color:#dbdbdb;
+    color:#68cfbf;
+    font-size:16px;
+    font-style:italic;
+    font-weight:600
+}
+.query-meaning__label{
+    color:#68cfbf
+}
+.query-meaning__label:hover{
+    text-decoration:underline
+}
+.query-statistic{
+    display:block;
+    margin:25px auto 45px
+}
+.query-tag{
+    display:inline-block;
+    margin:10px 20px;
+    transition:0.2s;
+    color:#07293f;
+    font-size:18px;
+    text-align:center;
+    text-decoration:none
+}
+.query-tag:hover{
+    color:#68cfbf
+}
+.queryResults{
+    padding:66px 0
+}
+.queryResults__container{
+    width:100%;
+    max-width:1170px;
+    margin:0 auto;
+    padding:0 15px
+}
+.queryResults__container::before,.queryResults__container::after{
+    display:table;
+    content:" "
+}
+.queryResults__container::after{
+    clear:both
+}
+@media (max-width: 969px){
+    .queryResults__container{
+        padding:0 20px
+    }
+}
+.queryResults__head{
+    display:flex;
+    flex-wrap:wrap;
+    align-items:center;
+    margin-bottom:45px;
+    padding-bottom:25px;
+    border-bottom:1px dashed #b6bfc4
+}
+@media (max-width: 767px){
+    .queryResults__head-left{
+        width:100%;
+        margin-bottom:20px
+    }
+}
+@media (max-width: 767px){
+    .queryResults__head-right{
+        display:flex;
+        justify-content:center;
+        width:100%
+    }
+}
+@media (min-width: 768px){
+    .queryResults__head-right{
+        margin-left:auto;
+        justify-self:flex-end
+    }
+}
+.queryResults__title{
+    font-family:"Cormorant Garamond", serif;
+    color:#07293f;
+    font-size:36px;
+    font-weight:700
+}
+@media (max-width: 767px){
+    .queryResults__title{
+        text-align:center
+    }
+}
+.queryResults__subtitle{
+    color:#07293f;
+    font-size:18px
+}
+@media (max-width: 767px){
+    .queryResults__subtitle{
+        text-align:center
+    }
+}
+.queryResults__button{
+    font-family:"Lato", sans-serif;
+    display:inline-flex;
+    align-items:center;
+    justify-content:center;
+    min-height:40px;
+    padding:0 25px;
+    transition:0.2s;
+    border:1px solid #68cfbf;
+    border-radius:6px;
+    background-color:#68cfbf;
+    color:#fff;
+    font-size:18px;
+    font-weight:bold;
+    line-height:1;
+    text-decoration:none;
+    cursor:pointer;
+    min-width:225px
+}
+.queryResults__button:hover{
+    background-color:#41c3af
+}
+.queryResults__button:active{
+    background-color:#41c3af
+}
+.queryResults__stats{
+    margin-bottom:35px;
+    color:#07293f;
+    font-size:24px;
+    font-weight:700;
+    text-align:center
+}
+.queryResults__content{
+    max-width:840px;
+    margin:0 auto;
+    padding:0 15px
+}
+.queryResults__item{
+    position:relative;
+    margin-bottom:35px
+}
+.queryResults__item::before{
+    display:block;
+    position:absolute;
+    top:8px;
+    left:-23px;
+    width:8px;
+    height:8px;
+    border-radius:50%;
+    background-color:#68cfbf;
+    content:""
+}
+.queryResults__item:last-child{
+    margin-bottom:0
+}
+.queryResults__text{
+    color:#234153;
+    font-size:18px
+}
+.queryResults__text b{
+    font-weight:600
+}
+.queryResults__text i{
+    font-style:italic
+}
+.queryResults__text span{
+    padding:0 5px;
+    color:#68cfbf;
+    font-size:18px;
+    font-style:italic;
+    font-weight:600
+}
+.queryResults__text span.-background{
+    border-radius:3px;
+    background-color:#dbdbdb
+}
+.queryResults__see{
+    color:#07293f;
+    font-size:18px
+}
+.queryResults__link{
+    color:#07293f;
+    font-weight:700;
+    text-decoration:underline
+}
+.queryResults__link:hover{
+    text-decoration:none
+}
\ No newline at end of file
diff --git a/spxvii/spxvii.js b/spxvii/spxvii.js
new file mode 100644
index 0000000..c827d5a
--- /dev/null
+++ b/spxvii/spxvii.js
@@ -0,0 +1,41 @@
+function Spxvii(data) {
+  $('div.query__content').hide();  
+  $('div.query-label').on('click',  function() {
+    let click = $(this).data('clicks');
+    
+
+    if (!click) {
+        $(this).parent().find('>.query__content').fadeIn('slow');
+      
+    } else {
+        $(this).parent().find('>.query__content').fadeOut('slow');    }
+
+    $(this).data('clicks', !click);
+  });
+  
+  
+}
+
+Spxvii.id = "spxvii";
+
+$(function() {
+    
+   Element.addVisualizer(Spxvii.id, Spxvii);
+    
+  $('#lexp_results').on('mouseup', '#lexpelement_spxvii', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.offsetX || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.offsetX + 40 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/walenty/walenty.css b/walenty/walenty.css
new file mode 100644
index 0000000..125ff45
--- /dev/null
+++ b/walenty/walenty.css
@@ -0,0 +1,58 @@
+#lexpelement_walenty.ace_editor {
+  display: none !important;
+}
+
+.header-title {
+  color: #41423A;
+  font-size: 30px;
+  font-family: 'Saira Semi Condensed', sans-serif;
+}
+
+.table-responsive {
+  width: 90%;
+  margin: 0 auto;
+  padding: 20px 0;
+}
+
+.table {
+  margin: 0;
+  border: 3px solid #B5B5B5;
+  width: auto;
+  min-width: 400px;
+}
+
+.table td,
+.table th {
+  padding: 12px 15px !important;
+}
+
+.td-title,
+.td-header {
+  font-weight: bold;
+  background-color: #D8D8D8;
+  letter-spacing: 1px;
+}
+
+.td-title {
+  text-align: center;
+}
+
+.td-data {
+  background-color: #C8C8C8;
+}
+
+.td-example-data {
+  background-color: white;
+}
+
+[id^='schema'] {
+  cursor: pointer;
+}
+
+.check-icon {
+  float: right;
+  height: 32px;
+  width: 32px;
+  background-image: url('/img/check.png');
+  background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/walenty/walenty.js b/walenty/walenty.js
new file mode 100644
index 0000000..845bf96
--- /dev/null
+++ b/walenty/walenty.js
@@ -0,0 +1,318 @@
+function Walenty(data) {
+  console.log(data);
+  // this.showHTML();
+}
+
+Walenty.prototype.showHTML = function(tag) {
+  let data = this.getData('schemata'),
+      dataSemantic = this.getData('meanings');
+
+  $('#lexpelement_walenty').after('<div id="lexpelement_walenty_content"></div>');
+
+  $('#lexpelement_walenty_content').append('<h2 class="header-title"><span lang="pl">Schematy</span><span lang="en">Schemes</span></h2>');
+  $('#lexpelement_walenty_content').append('<div class="decoration"></div>');
+  for (let i = data.length - 1; i >= 0; i--) {
+    this.makeTable(data[i], i);
+  }
+
+  $('#lexpelement_walenty_content').append('<h2 class="header-title"><span lang="pl">Przykłady</span><span lang="en">Examples</span></h2>');
+  $('#lexpelement_walenty_content').append('<div class="decoration"></div>');
+  this.getStrayExamples();
+}
+
+Walenty.prototype.getData = function(value) {
+  let editor = ace.edit("lexpelement_walenty"),
+      code = editor.getValue(),
+      lines = editor.session.doc.getAllLines(),
+      dataArray = new Array(),
+      jsonText = JSON.parse(code);
+  return jsonText[value];
+}
+
+Walenty.prototype.makeTable = function(data, counter) {
+  let tdSchema = '',
+      tdTitle = '',
+      tdData = '',
+      self = this;
+
+  // console.log(data);
+
+  // Text_rep
+  let splittedArray = '',
+      splittedArray2 = '';
+
+  if (data.text_rep.indexOf('imperf: ') > -1) {
+    splittedArray = data.text_rep.split("imperf: ");
+    if (splittedArray[1].indexOf(' + ') > -1) {
+      splittedArray2 = splittedArray[1].split(" + ");
+    }
+  } else if (data.text_rep.indexOf(': ') > -1) {
+    splittedArray = data.text_rep.split(": ");
+    if (splittedArray[1].indexOf(' + ') > -1) {
+      splittedArray2 = splittedArray[1].split(" + ");
+    }
+  }
+
+  let filteredArray = [];
+  splittedArray.forEach(function(singleData, i) {
+    if (singleData.indexOf('{') > -1) {
+      if (singleData.indexOf(' + ') > -1) {
+        singleData.split(' + ').forEach(function(data, i) {
+          filteredArray.push(data);
+        });
+      } else {
+        filteredArray.push(singleData);
+      }
+    }
+  });
+
+  if (splittedArray2 != '') {
+    splittedArray2.forEach(function(singleData, i) {
+      tdTitle += '<td class="td-data">' + singleData.substring(0, singleData.indexOf('{')) + '</td>';
+      tdData += '<td class="td-data">' + singleData.substring(singleData.indexOf('{') + 1, singleData.length - 1) + '</td>';
+    });
+  } else {
+    filteredArray.forEach(function(singleData, i) {
+      if (singleData.indexOf('{') > -1) {
+        tdTitle += '<td class="td-data">' + singleData.substring(0, singleData.indexOf('{')) + '</td>';
+        tdData += '<td class="td-data">' + singleData.substring(singleData.indexOf('{') + 1, singleData.length - 1) + '</td>';
+      }
+    });
+  }
+
+  //Phrases
+  let colSpanner = splittedArray2.length,
+      schemaName = data.opinion;
+
+  switch (data.opinion) {
+    case 'cer':
+      schemaName = "pewny";
+      break;
+    case 'col':
+      schemaName = "potoczny";
+      break;
+    case 'unc':
+      schemaName = "potoczny";
+      break;
+    default:
+      schemaName = '?';
+  }
+
+  let = schemaNameIdPositionStart = data.id.indexOf('.'),
+        schemaNameIdPositionEnd = data.id.indexOf('-'),
+        schemaNameId = data.id.substring(schemaNameIdPositionStart + 1, schemaNameIdPositionEnd);
+  schemaName += ' [' + schemaNameId + ']';
+
+  tdSchema = '<td id="schema-' + counter + '" class="td-data" colspan="' + colSpanner +'">' + schemaName + '<span class="check-icon"></span>' + '</td>';
+  let phrasesArr = new Array();
+  data.positions.forEach(function(singleData) {
+    singleData.phrases.forEach(function(singleData2) {
+      phrasesArr.push('#' + singleData2.id);
+    });
+  });
+
+  let tableData =
+    '<div class="table-responsive">' +
+      '<table class="table table-bordered">' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="td-header"><span lang="pl">Schemat</span><span lang="en">Scheme</span></td>' +
+            tdSchema +
+          '</tr>' +
+          '<tr>' +
+            '<td class="td-header"><span lang="pl">Funkcja</span><span lang="en">Function</span></td>' +
+            tdTitle +
+          '</tr>' +
+          '<tr>' +
+            '<td class="td-header"><span lang="pl">Typy fraz</span><span lang="en">Types of phrases</span></td>' +
+            tdData +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>' +
+    '<div id="info-schema-' + counter + '"></div>';
+
+  $('#lexpelement_walenty_content').append(tableData);
+
+  $('#schema-' + counter).bind('click', function() {
+    let id = $(this).attr('id');
+    console.log(phrasesArr);
+    let examples = self.getData('examples'),
+        tdExample = '',
+        checkArr = new Array();
+
+    for (let i = 0; i < examples.length; i++) {
+      for (let j = 0; j < examples[i].phraseRefs.length; j++) {
+        if (phrasesArr.includes(examples[i].phraseRefs[j])) {
+          if (!checkArr.includes(examples[i].sentence)) {
+            checkArr.push(examples[i].sentence);
+            let = positionStart = examples[i].id.indexOf('.'),
+                  positionEnd = examples[i].id.indexOf('-');
+                  exampleID = examples[i].id.substring(positionStart + 1, positionEnd);
+
+            tdExampleID = '<td class="td-example-data">' + exampleID + '</td>';
+            tdExampleSentence = '<td class="td-example-data">' + examples[i].sentence + '</td>';
+            tdExampleSource = '<td class="td-example-data">' + examples[i].source + '</td>';
+            tdExampleOpinion = '<td class="td-example-data">' + examples[i].opinion + '</td>';
+            tdExample += '<tr>' + tdExampleID + tdExampleSentence + tdExampleSource + tdExampleOpinion + '</tr>';
+          }
+        }
+      }
+    }
+
+    let tableExampleData =
+      '<div class="table-responsive">' +
+        '<table class="table table-bordered">' +
+          '<thead>' +
+            '<tr>' +
+              '<td class="td-header"><span lang="pl">Identyfikator</span><span lang="en">ID</span></td>' +
+              '<td class="td-header"><span lang="pl">Przykład</span><span lang="en">Example</span></td>' +
+              '<td class="td-header"><span lang="pl">Źródło</span><span lang="en">Source</span></td>' +
+              '<td class="td-header"><span lang="pl">Ocena</span><span lang="en">Rating</span></td>' +
+            '</tr>' +
+          '</thead>' +
+          '<tbody>' +
+              tdExample +
+          '</tbody>' +
+        '</table>' +
+      '</div>';
+
+    $('[id^="info-schema"]').each(function() {
+      $(this).empty();
+    });
+
+    if (tdExample == "") {
+      $('#info-' + id).empty();
+      console.log('Brak przykładów');
+    } else {
+      $('#info-' + id).empty().append(tableExampleData);
+    }
+  });
+}
+
+Walenty.prototype.getSemantic = function(data, counter) {
+  let tdFrame = '',
+      tdRole = '',
+      tdSelectionPreferences = '',
+      numberOfColumnsToSpan = 1;
+
+  let semFrames = this.getData('semFrames');
+  $(semFrames).each(function(index, element) {
+    if (element.meanings.includes('#' + data.id)) {
+      numberOfColumnsToSpan = element.arguments.length;
+      tdFrame = '<td colspan="' + numberOfColumnsToSpan + '" class="td-data">DODAC POTOCZNA ALBO PEWNA .. [' + element.id.substring(element.id.indexOf('_') + 1, element.id.indexOf('-')) + ']</td>';
+
+      $(element.arguments).each(function(index, element) {
+        let selectionPreferenceTd = '-';
+        tdRole += '<td class="td-data">' + element.role + '</td>';
+        if (element.predefs[0]) {
+          selectionPreferenceTd = element.predefs[0];
+        }
+        tdSelectionPreferences += '<td class="td-data">' + selectionPreferenceTd + '</td>';
+      });
+    }
+  });
+
+  let thTitle = data.name + '-' + data.variant;
+  let titleSpan = numberOfColumnsToSpan + 1;
+  if (numberOfColumnsToSpan == 1) {
+    titleSpan = numberOfColumnsToSpan;
+  }
+
+  let tableData =
+    '<div class="table-responsive">' +
+      '<table class="table table-bordered">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="td-title" colspan="' + titleSpan + '">' + thTitle + '</th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            '<td class="td-header">Rama</td>' +
+            tdFrame +
+          '</tr>' +
+          '<tr>' +
+            '<td class="td-header">Rola</td>' +
+            tdRole +
+          '</tr>' +
+          '<tr>' +
+            '<td class="td-header">Preferencje selekcyjne</td>' +
+            tdSelectionPreferences +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>' +
+    '<div id="info-semantic-schema-' + counter + '"></div>';
+
+  $('#lexpelement_walenty_content').append(tableData);
+}
+
+Walenty.prototype.getStrayExamples = function() {
+  let examples = this.getData('examples'),
+      strayExamples = '';
+
+  $(examples).each(function(index, element) {
+    if (element.meaning === null) {
+      strayExamples +=
+        '<tr>' +
+          '<td>' + element.id.substring(element.id.indexOf('.') + 1, element.id.indexOf('-')) + '</td>' +
+          '<td>' + element.sentence + '</td>' +
+          '<td>' + element.source + '</td>' +
+          '<td>' + element.opinion + '</td>' +
+        '</tr>';
+    }
+  });
+
+  let tableData =
+    '<div class="table-responsive">' +
+      '<table class="table table-bordered">' +
+        '<thead>' +
+          '<tr>' +
+            '<th class="td-title"><span lang="pl">Identyfikator</span><span lang="en">ID</span></th>' +
+            '<th class="td-title"><span lang="pl">Przykład</span><span lang="en">Example</span></th>' +
+            '<th class="td-title"><span lang="pl">Źródło</span><span lang="en">Source</span></th>' +
+            '<th class="td-title"><span lang="pl">Ocena</span><span lang="en">Rating</span></th>' +
+          '</tr>' +
+        '</thead>' +
+        '<tbody>' +
+          '<tr>' +
+            strayExamples +
+          '</tr>' +
+        '</tbody>' +
+      '</table>' +
+    '</div>';
+
+  $('#lexpelement_walenty_content').append(tableData);
+}
+
+Walenty.id = "walenty";
+
+$(function () {
+  Element.addVisualizer(Walenty.id, Walenty);
+
+  $('#lexp_results').on('click', '#lexpresource_walenty', function() {
+    if ($('#arrow-change-lexpresources_walenty').hasClass('glyphicon-chevron-down')) {
+      $('#lexpelement_walenty_content').hide();
+    } else {
+      $('#lexpelement_walenty_content').show();
+    }
+  });
+
+  $('#lexp_results').on('mouseup', '#lexpelement_walenty_content', function(event) {
+    let lemma = selectWord() || '',
+        lang = $('#lang').val(),
+        data = new Object();
+
+    data.lemma = lemma;
+    data.lang = lang || 'pl';
+    data.left = event.originalEvent.clientX - 80 || 0;
+    data.top = event.originalEvent.clientY - 55 || 0;
+
+    if (lemma.length < 10) {
+      data.left = event.originalEvent.clientX - 65 || 0;
+    }
+
+    positionTooltip(data);
+  });
+});
\ No newline at end of file
diff --git a/word2vec/jqcloud-1.0.4.js b/word2vec/jqcloud-1.0.4.js
new file mode 100644
index 0000000..b6333b2
--- /dev/null
+++ b/word2vec/jqcloud-1.0.4.js
@@ -0,0 +1,235 @@
+/*!
+ * jQCloud Plugin for jQuery
+ *
+ * Version 1.0.4
+ *
+ * Copyright 2011, Luca Ongaro
+ * Licensed under the MIT license.
+ *
+ * Date: 2013-05-09 18:54:22 +0200
+*/
+
+(function( $ ) {
+  "use strict";
+  $.fn.jQCloud = function(word_array, options) {
+    // Reference to the container element
+    var $this = this;
+    // Namespace word ids to avoid collisions between multiple clouds
+    var cloud_namespace = $this.attr('id') || Math.floor((Math.random()*1000000)).toString(36);
+
+    // Default options value
+    var default_options = {
+      width: $this.width(),
+      height: $this.height(),
+      center: {
+        x: ((options && options.width) ? options.width*0.9 : $this.width()) / 2.0,
+        y: ((options && options.height) ? options.height*0.8 : $this.height()) / 2.0
+      },
+      delayedMode: word_array.length > 50,
+      shape: false, // It defaults to elliptic shape
+      encodeURI: true,
+      removeOverflowing: true
+    };
+
+    options = $.extend(default_options, options || {});
+
+    // Add the "jqcloud" class to the container for easy CSS styling, set container width/height
+    $this.addClass("jqcloud").width(options.width).height(options.height);
+
+    // Container's CSS position cannot be 'static'
+    if ($this.css("position") === "static") {
+      $this.css("position", "relative");
+    }
+
+    var drawWordCloud = function() {
+      // Helper function to test if an element overlaps others
+      var hitTest = function(elem, other_elems) {
+        // Pairwise overlap detection
+        var overlapping = function(a, b) {
+          if (Math.abs(2.0*a.offsetLeft + a.offsetWidth - 2.0*b.offsetLeft - b.offsetWidth) < a.offsetWidth + b.offsetWidth) {
+            if (Math.abs(2.0*a.offsetTop + a.offsetHeight - 2.0*b.offsetTop - b.offsetHeight) < a.offsetHeight + b.offsetHeight) {
+              return true;
+            }
+          }
+          return false;
+        };
+        var i = 0;
+        // Check elements for overlap one by one, stop and return false as soon as an overlap is found
+        for(i = 0; i < other_elems.length; i++) {
+          if (overlapping(elem, other_elems[i])) {
+            return true;
+          }
+        }
+        return false;
+      };
+
+      // Make sure every weight is a number before sorting
+      for (var i = 0; i < word_array.length; i++) {
+        word_array[i].weight = parseFloat(word_array[i].weight, 10);
+      }
+
+      // Sort word_array from the word with the highest weight to the one with the lowest
+      word_array.sort(function(a, b) { if (a.weight < b.weight) {return 1;} else if (a.weight > b.weight) {return -1;} else {return 0;} });
+
+      var step = (options.shape === "rectangular") ? 18.0 : 2.0,
+          already_placed_words = [],
+          aspect_ratio = options.width / options.height;
+
+      // Function to draw a word, by moving it in spiral until it finds a suitable empty place. This will be iterated on each word.
+      var drawOneWord = function(index, word) {
+        // Define the ID attribute of the span that will wrap the word, and the associated jQuery selector string
+        var word_id = cloud_namespace + "_word_" + index,
+            word_selector = "#" + word_id,
+            angle = 6.28 * Math.random(),
+            radius = 0.0,
+
+            // Only used if option.shape == 'rectangular'
+            steps_in_direction = 0.0,
+            quarter_turns = 0.0,
+
+            weight = 5,
+            custom_class = "",
+            inner_html = "",
+            word_span;
+
+        // Extend word html options with defaults
+        word.html = $.extend(word.html, {id: word_id});
+
+        // If custom class was specified, put them into a variable and remove it from html attrs, to avoid overwriting classes set by jQCloud
+        if (word.html && word.html["class"]) {
+          custom_class = word.html["class"];
+          delete word.html["class"];
+        }
+
+        // Check if min(weight) > max(weight) otherwise use default
+        if (word_array[0].weight > word_array[word_array.length - 1].weight) {
+          // Linearly map the original weight to a discrete scale from 1 to 10
+          weight = Math.round((word.weight - word_array[word_array.length - 1].weight) /
+                              (word_array[0].weight - word_array[word_array.length - 1].weight) * 9.0) + 1;
+        }
+        word_span = $('<span>').attr(word.html).addClass('w' + weight + " " + custom_class);
+
+        // Append link if word.url attribute was set
+        if (word.link) {
+          // If link is a string, then use it as the link href
+          if (typeof word.link === "string") {
+            word.link = {href: word.link};
+          }
+
+          // Extend link html options with defaults
+          if ( options.encodeURI ) {
+            word.link = $.extend(word.link, { href: encodeURI(word.link.href).replace(/'/g, "%27") });
+          }
+
+          inner_html = $('<a>').attr(word.link).text(word.text);
+        } else {
+          inner_html = word.text;
+        }
+        word_span.append(inner_html);
+
+        // Bind handlers to words
+        if (!!word.handlers) {
+          for (var prop in word.handlers) {
+            if (word.handlers.hasOwnProperty(prop) && typeof word.handlers[prop] === 'function') {
+              $(word_span).bind(prop, word.handlers[prop]);
+            }
+          }
+        }
+
+        $this.append(word_span);
+
+        var width = word_span.width(),
+            height = word_span.height(),
+            left = options.center.x - width / 2.0,
+            top = options.center.y - height / 2.0;
+            
+            
+
+        // Save a reference to the style property, for better performance
+        var word_style = word_span[0].style;
+        word_style.position = "absolute";
+        word_style.left = left + "px";
+        word_style.top = top + "px";
+
+        while(hitTest(word_span[0], already_placed_words)) {
+          // option shape is 'rectangular' so move the word in a rectangular spiral
+          if (options.shape === "rectangular") {
+            steps_in_direction++;
+            if (steps_in_direction * step > (1 + Math.floor(quarter_turns / 2.0)) * step * ((quarter_turns % 4 % 2) === 0 ? 1 : aspect_ratio)) {
+              steps_in_direction = 0.0;
+              quarter_turns++;
+            }
+            switch(quarter_turns % 4) {
+              case 1:
+                left += step * aspect_ratio + Math.random() * 2.0;
+                break;
+              case 2:
+                top -= 2*step + Math.random() * 2.0;
+                break;
+              case 3:
+                left -= step * aspect_ratio + Math.random() * 2.0;
+                break;
+              case 0:
+                top += 2*step + Math.random() * 2.0;
+                break;
+                
+            }
+          } else { // Default settings: elliptic spiral shape
+            radius += step;
+            angle += (index % 2 === 0 ? 1 : -1)*step;
+
+            left = options.center.x - (width / 2.0) + (radius*Math.cos(angle)) * aspect_ratio;
+            top = options.center.y + radius*Math.sin(angle) - (height / 2.0);
+          }
+          word_style.left = left + "px";
+          word_style.top = top + "px";
+        }
+
+        // Don't render word if part of it would be outside the container
+        if (options.removeOverflowing && (left < 0 || top < 0 || (left + width) > options.width || (top + height) > options.height)) {
+          word_span.remove()
+          return;
+        }
+
+
+        already_placed_words.push(word_span[0]);
+
+        // Invoke callback if existing
+        if ($.isFunction(word.afterWordRender)) {
+          word.afterWordRender.call(word_span);
+        }
+      };
+
+      var drawOneWordDelayed = function(index) {
+        index = index || 0;
+        if (!$this.is(':visible')) { // if not visible then do not attempt to draw
+          setTimeout(function(){drawOneWordDelayed(index);},10);
+          return;
+        }
+        if (index < word_array.length) {
+          drawOneWord(index, word_array[index]);
+          setTimeout(function(){drawOneWordDelayed(index + 1);}, 10);
+        } else {
+          if ($.isFunction(options.afterCloudRender)) {
+            options.afterCloudRender.call($this);
+          }
+        }
+      };
+
+      // Iterate drawOneWord on every word. The way the iteration is done depends on the drawing mode (delayedMode is true or false)
+      if (options.delayedMode){
+        drawOneWordDelayed();
+      }
+      else {
+        $.each(word_array, drawOneWord);
+        if ($.isFunction(options.afterCloudRender)) {
+          options.afterCloudRender.call($this);
+        }
+      }
+    };
+
+    // Delay execution so that the browser can render the page before the computatively intensive word cloud drawing
+    setTimeout(function(){drawWordCloud();}, 10);
+    return $this;
+  };
+})(jQuery);
diff --git a/word2vec/jqcloud.css b/word2vec/jqcloud.css
new file mode 100644
index 0000000..f6413c9
--- /dev/null
+++ b/word2vec/jqcloud.css
@@ -0,0 +1,49 @@
+/* fonts */
+
+div.jqcloud {
+  font-family: "Helvetica", "Arial", sans-serif;
+  font-size: 10px;
+  line-height: normal;
+}
+
+div.jqcloud a {
+  font-size: inherit;
+  text-decoration: none;
+}
+
+div.jqcloud span.w10 { font-size: 550%; }
+div.jqcloud span.w9 { font-size: 500%; }
+div.jqcloud span.w8 { font-size: 450%; }
+div.jqcloud span.w7 { font-size: 400%; }
+div.jqcloud span.w6 { font-size: 350%; }
+div.jqcloud span.w5 { font-size: 300%; }
+div.jqcloud span.w4 { font-size: 250%; }
+div.jqcloud span.w3 { font-size: 200%; }
+div.jqcloud span.w2 { font-size: 150%; }
+div.jqcloud span.w1 { font-size: 100%; }
+
+/* colors */
+
+div.jqcloud { color: #009f00; } 
+div.jqcloud a { color: inherit; }
+div.jqcloud a:hover { color: #00df00; }
+div.jqcloud a:hover { color: #00cf00; }
+div.jqcloud span.w10 { color: #00cf00; }
+div.jqcloud span.w9 { color: #00cf00; }
+div.jqcloud span.w8 { color: #00cf00; }
+div.jqcloud span.w7 { color: #039d00; }
+div.jqcloud span.w6 { color: #10c5f00; }
+div.jqcloud span.w5 { color: #10a000; }
+div.jqcloud span.w4 { color: #10c500; }
+div.jqcloud span.w3 { color: #10dd00; }
+div.jqcloud span.w2 { color: #19cc00; }
+div.jqcloud span.w1 { color: #1ab500; }
+
+/* layout */
+
+div.jqcloud {
+  overflow: hidden;
+  position: relative;
+}
+
+div.jqcloud span { padding: 0; }
\ No newline at end of file
diff --git a/word2vec/jqcloud.js b/word2vec/jqcloud.js
new file mode 100644
index 0000000..32fb28a
--- /dev/null
+++ b/word2vec/jqcloud.js
@@ -0,0 +1,548 @@
+/*!
+ * jQCloud 2.0.3
+ * Copyright 2011 Luca Ongaro (http://www.lucaongaro.eu)
+ * Copyright 2013 Daniel White (http://www.developerdan.com)
+ * Copyright 2014-2017 Damien "Mistic" Sorel (http://www.strangeplanet.fr)
+ * Licensed under MIT (http://opensource.org/licenses/MIT)
+ */
+(function(root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        define(['jquery'], factory);
+    }
+    else if (typeof module === 'object' && module.exports) {
+        module.exports = factory(require('jquery'));
+    }
+    else {
+        factory(root.jQuery);
+    }
+}(this, function($) {
+'use strict';
+
+/*
+ * Plugin class
+ */
+var jQCloud = function(element, word_array, options) {
+    this.$element = $(element);
+
+    this.word_array = word_array || [];
+    this.options = options;
+
+    this.sizeGenerator = null;
+    this.colorGenerator = null;
+
+    // Data used internally
+    this.data = {
+        placed_words: [],
+        timeouts: {},
+        namespace: null,
+        step: null,
+        angle: null,
+        aspect_ratio: null,
+        max_weight: null,
+        min_weight: null,
+        sizes: [],
+        colors: []
+    };
+
+    this.initialize();
+};
+
+jQCloud.DEFAULTS = {
+    width: 100,
+    height: 100,
+    center: { x: 0.5, y: 0.5 },
+    steps: 10,
+    delay: null,
+    shape: 'elliptic',
+    classPattern: 'w{n}',
+    encodeURI: true,
+    removeOverflowing: true,
+    afterCloudRender: null,
+    autoResize: false,
+    colors: null,
+    fontSize: null,
+    template: null
+};
+
+jQCloud.prototype = {
+    initialize: function() {
+        // Set/Get dimensions
+        if (this.options.width) {
+            this.$element.width(this.options.width);
+        }
+        else {
+            this.options.width = this.$element.width();
+        }
+        if (this.options.height) {
+            this.$element.height(this.options.height);
+        }
+        else {
+            this.options.height = this.$element.height();
+        }
+
+        // Default options value
+        this.options = $.extend(true, {}, jQCloud.DEFAULTS, this.options);
+
+        // Ensure delay
+        if (this.options.delay === null) {
+            this.options.delay = this.word_array.length > 50 ? 10 : 0;
+        }
+
+        // Backward compatibility
+        if (this.options.center.x > 1) {
+            this.options.center.x = this.options.center.x / this.options.width;
+            this.options.center.y = this.options.center.y / this.options.height;
+        }
+
+        // Create colorGenerator function from options
+        // Direct function
+        if (typeof this.options.colors == 'function') {
+            this.colorGenerator = this.options.colors;
+        }
+        // Array of sizes
+        else if ($.isArray(this.options.colors)) {
+            var cl = this.options.colors.length;
+            if (cl > 0) {
+                // Fill the sizes array to X items
+                if (cl < this.options.steps) {
+                    for (var i = cl; i < this.options.steps; i++) {
+                        this.options.colors[i] = this.options.colors[cl - 1];
+                    }
+                }
+
+                this.colorGenerator = function(weight) {
+                    return this.options.colors[this.options.steps - weight];
+                };
+            }
+        }
+
+        // Create sizeGenerator function from options
+        // Direct function
+        if (typeof this.options.fontSize == 'function') {
+            this.sizeGenerator = this.options.fontSize;
+        }
+        // Object with 'from' and 'to'
+        else if ($.isPlainObject(this.options.fontSize)) {
+            this.sizeGenerator = function(width, height, weight) {
+                var max = width * this.options.fontSize.from,
+                    min = width * this.options.fontSize.to;
+                return Math.round(min + (max - min) * 1.0 / (this.options.steps - 1) * (weight - 1)) + 'px';
+            };
+        }
+        // Array of sizes
+        else if ($.isArray(this.options.fontSize)) {
+            var sl = this.options.fontSize.length;
+            if (sl > 0) {
+                // Fill the sizes array to X items
+                if (sl < this.options.steps) {
+                    for (var j = sl; j < this.options.steps; j++) {
+                        this.options.fontSize[j] = this.options.fontSize[sl - 1];
+                    }
+                }
+
+                this.sizeGenerator = function(width, height, weight) {
+                    return this.options.fontSize[this.options.steps - weight];
+                };
+            }
+        }
+
+        this.data.angle = Math.random() * 6.28;
+        this.data.step = (this.options.shape === 'rectangular') ? 18.0 : 2.0;
+        this.data.aspect_ratio = this.options.width / this.options.height;
+        this.clearTimeouts();
+
+        // Namespace word ids to avoid collisions between multiple clouds
+        this.data.namespace = (this.$element.attr('id') || Math.floor((Math.random() * 1000000)).toString(36)) + '_word_';
+
+        this.$element.addClass('jqcloud');
+
+        // Container's CSS position cannot be 'static'
+        if (this.$element.css('position') === 'static') {
+            this.$element.css('position', 'relative');
+        }
+
+        // Delay execution so that the browser can render the page before the computatively intensive word cloud drawing
+        this.createTimeout($.proxy(this.drawWordCloud, this), 10);
+
+        // Attach window resize event
+        if (this.options.autoResize) {
+            $(window).on('resize.' + this.data.namespace, throttle(this.resize, 50, this));
+        }
+    },
+
+    // Helper function to keep track of timeouts so they can be destroyed
+    createTimeout: function(callback, time) {
+        var timeout = setTimeout($.proxy(function() {
+            delete this.data.timeouts[timeout];
+            callback();
+        }, this), time);
+        this.data.timeouts[timeout] = true;
+    },
+
+    // Destroy all timeouts
+    clearTimeouts: function() {
+        $.each(this.data.timeouts, function(key) {
+            clearTimeout(key);
+        });
+        this.data.timeouts = {};
+    },
+
+    // Pairwise overlap detection
+    overlapping: function(a, b) {
+        if (Math.abs(2.0 * a.left + a.width - 2.0 * b.left - b.width) < a.width + b.width) {
+            if (Math.abs(2.0 * a.top + a.height - 2.0 * b.top - b.height) < a.height + b.height) {
+                return true;
+            }
+        }
+        return false;
+    },
+
+    // Helper function to test if an element overlaps others
+    hitTest: function(elem) {
+        // Check elements for overlap one by one, stop and return false as soon as an overlap is found
+        for (var i = 0, l = this.data.placed_words.length; i < l; i++) {
+            if (this.overlapping(elem, this.data.placed_words[i])) {
+                return true;
+            }
+        }
+        return false;
+    },
+
+    // Initialize the drawing of the whole cloud
+    drawWordCloud: function() {
+        var i, l;
+
+        this.$element.children('[id^="' + this.data.namespace + '"]').remove();
+
+        if (this.word_array.length === 0) {
+            return;
+        }
+
+        // Make sure every weight is a number before sorting
+        for (i = 0, l = this.word_array.length; i < l; i++) {
+            this.word_array[i].weight = parseFloat(this.word_array[i].weight, 10);
+        }
+
+        // Sort word_array from the word with the highest weight to the one with the lowest
+        this.word_array.sort(function(a, b) {
+            return b.weight - a.weight;
+        });
+
+        // Kepp trace of bounds
+        this.data.max_weight = this.word_array[0].weight;
+        this.data.min_weight = this.word_array[this.word_array.length - 1].weight;
+
+        // Generate colors
+        this.data.colors = [];
+        if (this.colorGenerator) {
+            for (i = 0; i < this.options.steps; i++) {
+                this.data.colors.push(this.colorGenerator(i + 1));
+            }
+        }
+
+        // Generate font sizes
+        this.data.sizes = [];
+        if (this.sizeGenerator) {
+            for (i = 0; i < this.options.steps; i++) {
+                this.data.sizes.push(this.sizeGenerator(this.options.width, this.options.height, i + 1));
+            }
+        }
+
+        // Iterate drawOneWord on every word, immediately or with delay
+        if (this.options.delay > 0) {
+            this.drawOneWordDelayed();
+        }
+        else {
+            for (i = 0, l = this.word_array.length; i < l; i++) {
+                this.drawOneWord(i, this.word_array[i]);
+            }
+
+            if (typeof this.options.afterCloudRender === 'function') {
+                this.options.afterCloudRender.call(this.$element);
+            }
+        }
+    },
+
+    // Function to draw a word, by moving it in spiral until it finds a suitable empty place
+    drawOneWord: function(index, word) {
+        var word_id = this.data.namespace + index,
+            word_selector = '#' + word_id,
+
+        // option.shape == 'elliptic'
+            angle = this.data.angle,
+            radius = 0.0,
+
+        // option.shape == 'rectangular'
+            steps_in_direction = 0.0,
+            quarter_turns = 0.0,
+
+            weight = Math.floor(this.options.steps / 2),
+            word_span,
+            word_size,
+            word_style;
+
+        // Create word attr object
+        word.attr = $.extend({}, word.html, { id: word_id });
+
+        // Linearly map the original weight to a discrete scale from 1 to 10
+        // Only if weights are different
+        if (this.data.max_weight != this.data.min_weight) {
+            weight = Math.round((word.weight - this.data.min_weight) * 1.0 * (this.options.steps - 1) / (this.data.max_weight - this.data.min_weight)) + 1;
+        }
+        word_span = $('<span>').attr(word.attr);
+
+        word_span.addClass('jqcloud-word');
+
+        // Apply class
+        if (this.options.classPattern) {
+            word_span.addClass(this.options.classPattern.replace('{n}', weight));
+        }
+
+        // Apply color
+        if (this.data.colors.length) {
+            word_span.css('color', this.data.colors[weight - 1]);
+        }
+
+        // Apply color from word property
+        if (word.color) {
+            word_span.css('color', word.color);
+        }
+
+        // Apply size
+        if (this.data.sizes.length) {
+            word_span.css('font-size', this.data.sizes[weight - 1]);
+        }
+
+        //Render using template function if provided.
+        if (this.options.template) {
+            word_span.html(this.options.template(word));
+        } else if (word.link) {
+            // Append link if word.link attribute was set
+            // If link is a string, then use it as the link href
+            if (typeof word.link === 'string') {
+                word.link = { href: word.link };
+            }
+
+            if (this.options.encodeURI) {
+                word.link.href = encodeURI(word.link.href).replace(/'/g, '%27');
+            }
+
+            word_span.append($('<a>').attr(word.link).text(word.text));
+        }
+        else {
+            word_span.text(word.text);
+        }
+
+        // Bind handlers to words
+        if (word.handlers) {
+            word_span.on(word.handlers);
+        }
+
+        this.$element.append(word_span);
+        console.log(word_span);
+        word_size = {
+            width: word_span[0].offsetWidth,
+            height: word_span[0].offsetHeight
+        };
+        
+        word_size.left = this.options.center.x * this.options.width - word_size.width / 2.0;
+        word_size.top = this.options.center.y * this.options.height - word_size.height / 2.0;
+        
+        
+        // Save a reference to the style property, for better performance
+        word_style = word_span[0].style;
+        word_style.position = 'absolute';
+        word_style.left = word_size.left + 'px';
+        word_style.top = word_size.top + 'px';
+
+        while (this.hitTest(word_size)) {
+            // option shape is 'rectangular' so move the word in a rectangular spiral
+            if (this.options.shape === 'rectangular') {
+                steps_in_direction++;
+
+                if (steps_in_direction * this.data.step > (1 + Math.floor(quarter_turns / 2.0)) * this.data.step * ((quarter_turns % 4 % 2) === 0 ? 1 : this.data.aspect_ratio)) {
+                    steps_in_direction = 0.0;
+                    quarter_turns++;
+                }
+
+                switch (quarter_turns % 4) {
+                    case 1:
+                        word_size.left += this.data.step * this.data.aspect_ratio + Math.random() * 2.0;
+                        break;
+                    case 2:
+                        word_size.top -= this.data.step + Math.random() * 2.0;
+                        break;
+                    case 3:
+                        word_size.left -= this.data.step * this.data.aspect_ratio + Math.random() * 2.0;
+                        break;
+                    case 0:
+                        word_size.top += this.data.step + Math.random() * 2.0;
+                        break;
+                }
+            }
+            // Default settings: elliptic spiral shape
+            else {
+                radius += this.data.step;
+                angle += (index % 2 === 0 ? 1 : -1) * this.data.step;
+
+                word_size.left = this.options.center.x * this.options.width - (word_size.width / 2.0) + (radius * Math.cos(angle)) * this.data.aspect_ratio;
+                word_size.top = this.options.center.y * this.options.height + radius * Math.sin(angle) - (word_size.height / 2.0);
+            }
+            word_style.left = word_size.left + 'px';
+            word_style.top = word_size.top + 'px';
+        }
+
+        // Don't render word if part of it would be outside the container
+        if (this.options.removeOverflowing && (
+                word_size.left < 0 || word_size.top < 0 ||
+                (word_size.left + word_size.width) > this.options.width ||
+                (word_size.top + word_size.height) > this.options.height
+            )
+        ) {
+            word_span.remove();
+            return;
+        }
+
+        // Save position for further usage
+        this.data.placed_words.push(word_size);
+
+        if (typeof word.afterWordRender === 'function') {
+            word.afterWordRender.call(word_span);
+        }
+    },
+
+    // Draw one word then recall the function after a delay
+    drawOneWordDelayed: function(index) {
+        index = index || 0;
+
+        // if not visible then do not attempt to draw
+        if (!this.$element.is(':visible')) {
+            this.createTimeout($.proxy(function() {
+                this.drawOneWordDelayed(index);
+            }, this), 10);
+
+            return;
+        }
+
+        if (index < this.word_array.length) {
+            this.drawOneWord(index, this.word_array[index]);
+
+            this.createTimeout($.proxy(function() {
+                this.drawOneWordDelayed(index + 1);
+            }, this), this.options.delay);
+        }
+        else {
+            if (typeof this.options.afterCloudRender == 'function') {
+                this.options.afterCloudRender.call(this.$element);
+            }
+        }
+    },
+
+    // Destroy any data and objects added by the plugin
+    destroy: function() {
+        if (this.options.autoResize) {
+            $(window).off('resize.' + this.data.namespace);
+        }
+
+        this.clearTimeouts();
+        this.$element.removeClass('jqcloud');
+        this.$element.removeData('jqcloud');
+        this.$element.children('[id^="' + this.data.namespace + '"]').remove();
+    },
+
+    // Update the list of words
+    update: function(word_array) {
+        this.word_array = word_array;
+        this.data.placed_words = [];
+
+        this.clearTimeouts();
+        this.drawWordCloud();
+    },
+
+    resize: function() {
+        var new_size = {
+            width: this.$element.width(),
+            height: this.$element.height()
+        };
+
+        if (new_size.width != this.options.width || new_size.height != this.options.height) {
+            this.options.width = new_size.width;
+            this.options.height = new_size.height;
+            this.data.aspect_ratio = this.options.width / this.options.height;
+
+            this.update(this.word_array);
+        }
+    },
+};
+
+/*
+ * Apply throttling to a callback
+ * @param callback {function}
+ * @param delay {int} milliseconds
+ * @param context {object|null}
+ * @return {function}
+ */
+function throttle(callback, delay, context) {
+    var state = {
+        pid: null,
+        last: 0
+    };
+
+    return function() {
+        var elapsed = new Date().getTime() - state.last,
+            args = arguments,
+            that = this;
+
+        function exec() {
+            state.last = new Date().getTime();
+            return callback.apply(context || that, Array.prototype.slice.call(args));
+        }
+
+        if (elapsed > delay) {
+            return exec();
+        }
+        else {
+            clearTimeout(state.pid);
+            state.pid = setTimeout(exec, delay - elapsed);
+        }
+    };
+}
+
+/*
+ * jQuery plugin
+ */
+$.fn.jQCloud = function(word_array, option) {
+    var args = arguments;
+
+    return this.each(function() {
+        var $this = $(this),
+            data = $this.data('jqcloud');
+
+        if (!data && word_array === 'destroy') {
+            // Don't even try to initialize when called with 'destroy'
+            return;
+        }
+        if (!data) {
+            var options = typeof option === 'object' ? option : {};
+            $this.data('jqcloud', (data = new jQCloud(this, word_array, options)));
+        }
+        else if (typeof word_array === 'string') {
+            data[word_array].apply(data, Array.prototype.slice.call(args, 1));
+        }
+    });
+};
+
+$.fn.jQCloud.defaults = {
+    set: function(options) {
+        $.extend(true, jQCloud.DEFAULTS, options);
+    },
+    get: function(key) {
+        var options = jQCloud.DEFAULTS;
+        if (key) {
+            options = options[key];
+        }
+        return $.extend(true, {}, options);
+    }
+};
+
+}));
\ No newline at end of file
diff --git a/word2vec/jqcloud.min.css b/word2vec/jqcloud.min.css
new file mode 100644
index 0000000..f1c3d97
--- /dev/null
+++ b/word2vec/jqcloud.min.css
@@ -0,0 +1 @@
+.jqcloud{font:10px Helvetica,Arial,sans-serif;line-height:normal;overflow:hidden;position:relative}.jqcloud-word{margin:0;padding:0}.jqcloud-word.w1{color:#aab5f0;font-size:100%}.jqcloud-word.w2{color:#9ce;font-size:150%}.jqcloud-word.w3{color:#a0ddff;font-size:200%}.jqcloud-word.w4{color:#90c5f0;font-size:250%}.jqcloud-word.w5{color:#90a0dd;font-size:300%}.jqcloud-word.w6{color:#90c5f0;font-size:350%}.jqcloud-word.w7{color:#39d;font-size:400%}.jqcloud-word.w8{color:#0cf;font-size:450%}.jqcloud-word.w9{color:#0cf;font-size:500%}.jqcloud-word.w10{color:#0cf;font-size:550%}.jqcloud-word a{color:inherit;font-size:inherit;text-decoration:none}.jqcloud-word a:hover{color:#0cf}
\ No newline at end of file
diff --git a/word2vec/jqcloud.min.js b/word2vec/jqcloud.min.js
new file mode 100644
index 0000000..4e3b163
--- /dev/null
+++ b/word2vec/jqcloud.min.js
@@ -0,0 +1,8 @@
+/*!
+ * jQCloud 2.0.3
+ * Copyright 2011 Luca Ongaro (http://www.lucaongaro.eu)
+ * Copyright 2013 Daniel White (http://www.developerdan.com)
+ * Copyright 2014-2017 Damien "Mistic" Sorel (http://www.strangeplanet.fr)
+ * Licensed under MIT (http://opensource.org/licenses/MIT)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){"use strict";function b(a,b,c){var d={pid:null,last:0};return function(){function e(){return d.last=(new Date).getTime(),a.apply(c||h,Array.prototype.slice.call(g))}var f=(new Date).getTime()-d.last,g=arguments,h=this;return f>b?e():(clearTimeout(d.pid),void(d.pid=setTimeout(e,b-f)))}}var c=function(b,c,d){this.$element=a(b),this.word_array=c||[],this.options=d,this.sizeGenerator=null,this.colorGenerator=null,this.data={placed_words:[],timeouts:{},namespace:null,step:null,angle:null,aspect_ratio:null,max_weight:null,min_weight:null,sizes:[],colors:[]},this.initialize()};c.DEFAULTS={width:100,height:100,center:{x:.5,y:.5},steps:10,delay:null,shape:"elliptic",classPattern:"w{n}",encodeURI:!0,removeOverflowing:!0,afterCloudRender:null,autoResize:!1,colors:null,fontSize:null,template:null},c.prototype={initialize:function(){if(this.options.width?this.$element.width(this.options.width):this.options.width=this.$element.width(),this.options.height?this.$element.height(this.options.height):this.options.height=this.$element.height(),this.options=a.extend(!0,{},c.DEFAULTS,this.options),null===this.options.delay&&(this.options.delay=this.word_array.length>50?10:0),this.options.center.x>1&&(this.options.center.x=this.options.center.x/this.options.width,this.options.center.y=this.options.center.y/this.options.height),"function"==typeof this.options.colors)this.colorGenerator=this.options.colors;else if(a.isArray(this.options.colors)){var d=this.options.colors.length;if(d>0){if(d<this.options.steps)for(var e=d;e<this.options.steps;e++)this.options.colors[e]=this.options.colors[d-1];this.colorGenerator=function(a){return this.options.colors[this.options.steps-a]}}}if("function"==typeof this.options.fontSize)this.sizeGenerator=this.options.fontSize;else if(a.isPlainObject(this.options.fontSize))this.sizeGenerator=function(a,b,c){var d=a*this.options.fontSize.from,e=a*this.options.fontSize.to;return Math.round(e+1*(d-e)/(this.options.steps-1)*(c-1))+"px"};else if(a.isArray(this.options.fontSize)){var f=this.options.fontSize.length;if(f>0){if(f<this.options.steps)for(var g=f;g<this.options.steps;g++)this.options.fontSize[g]=this.options.fontSize[f-1];this.sizeGenerator=function(a,b,c){return this.options.fontSize[this.options.steps-c]}}}this.data.angle=6.28*Math.random(),this.data.step="rectangular"===this.options.shape?18:2,this.data.aspect_ratio=this.options.width/this.options.height,this.clearTimeouts(),this.data.namespace=(this.$element.attr("id")||Math.floor(1e6*Math.random()).toString(36))+"_word_",this.$element.addClass("jqcloud"),"static"===this.$element.css("position")&&this.$element.css("position","relative"),this.createTimeout(a.proxy(this.drawWordCloud,this),10),this.options.autoResize&&a(window).on("resize."+this.data.namespace,b(this.resize,50,this))},createTimeout:function(b,c){var d=setTimeout(a.proxy(function(){delete this.data.timeouts[d],b()},this),c);this.data.timeouts[d]=!0},clearTimeouts:function(){a.each(this.data.timeouts,function(a){clearTimeout(a)}),this.data.timeouts={}},overlapping:function(a,b){return Math.abs(2*a.left+a.width-2*b.left-b.width)<a.width+b.width&&Math.abs(2*a.top+a.height-2*b.top-b.height)<a.height+b.height},hitTest:function(a){for(var b=0,c=this.data.placed_words.length;b<c;b++)if(this.overlapping(a,this.data.placed_words[b]))return!0;return!1},drawWordCloud:function(){var a,b;if(this.$element.children('[id^="'+this.data.namespace+'"]').remove(),0!==this.word_array.length){for(a=0,b=this.word_array.length;a<b;a++)this.word_array[a].weight=parseFloat(this.word_array[a].weight,10);if(this.word_array.sort(function(a,b){return b.weight-a.weight}),this.data.max_weight=this.word_array[0].weight,this.data.min_weight=this.word_array[this.word_array.length-1].weight,this.data.colors=[],this.colorGenerator)for(a=0;a<this.options.steps;a++)this.data.colors.push(this.colorGenerator(a+1));if(this.data.sizes=[],this.sizeGenerator)for(a=0;a<this.options.steps;a++)this.data.sizes.push(this.sizeGenerator(this.options.width,this.options.height,a+1));if(this.options.delay>0)this.drawOneWordDelayed();else{for(a=0,b=this.word_array.length;a<b;a++)this.drawOneWord(a,this.word_array[a]);"function"==typeof this.options.afterCloudRender&&this.options.afterCloudRender.call(this.$element)}}},drawOneWord:function(b,c){var d,e,f,g=this.data.namespace+b,h=this.data.angle,i=0,j=0,k=0,l=Math.floor(this.options.steps/2);for(c.attr=a.extend({},c.html,{id:g}),this.data.max_weight!=this.data.min_weight&&(l=Math.round(1*(c.weight-this.data.min_weight)*(this.options.steps-1)/(this.data.max_weight-this.data.min_weight))+1),d=a("<span>").attr(c.attr),d.addClass("jqcloud-word"),this.options.classPattern&&d.addClass(this.options.classPattern.replace("{n}",l)),this.data.colors.length&&d.css("color",this.data.colors[l-1]),c.color&&d.css("color",c.color),this.data.sizes.length&&d.css("font-size",this.data.sizes[l-1]),this.options.template?d.html(this.options.template(c)):c.link?("string"==typeof c.link&&(c.link={href:c.link}),this.options.encodeURI&&(c.link.href=encodeURI(c.link.href).replace(/'/g,"%27")),d.append(a("<a>").attr(c.link).text(c.text))):d.text(c.text),c.handlers&&d.on(c.handlers),this.$element.append(d),e={width:d.outerWidth(),height:d.outerHeight()},e.left=this.options.center.x*this.options.width-e.width/2,e.top=this.options.center.y*this.options.height-e.height/2,f=d[0].style,f.position="absolute",f.left=e.left+"px",f.top=e.top+"px";this.hitTest(e);){if("rectangular"===this.options.shape)switch(j++,j*this.data.step>(1+Math.floor(k/2))*this.data.step*(k%4%2===0?1:this.data.aspect_ratio)&&(j=0,k++),k%4){case 1:e.left+=this.data.step*this.data.aspect_ratio+2*Math.random();break;case 2:e.top-=this.data.step+2*Math.random();break;case 3:e.left-=this.data.step*this.data.aspect_ratio+2*Math.random();break;case 0:e.top+=this.data.step+2*Math.random()}else i+=this.data.step,h+=(b%2===0?1:-1)*this.data.step,e.left=this.options.center.x*this.options.width-e.width/2+i*Math.cos(h)*this.data.aspect_ratio,e.top=this.options.center.y*this.options.height+i*Math.sin(h)-e.height/2;f.left=e.left+"px",f.top=e.top+"px"}return this.options.removeOverflowing&&(e.left<0||e.top<0||e.left+e.width>this.options.width||e.top+e.height>this.options.height)?void d.remove():(this.data.placed_words.push(e),void("function"==typeof c.afterWordRender&&c.afterWordRender.call(d)))},drawOneWordDelayed:function(b){return b=b||0,this.$element.is(":visible")?void(b<this.word_array.length?(this.drawOneWord(b,this.word_array[b]),this.createTimeout(a.proxy(function(){this.drawOneWordDelayed(b+1)},this),this.options.delay)):"function"==typeof this.options.afterCloudRender&&this.options.afterCloudRender.call(this.$element)):void this.createTimeout(a.proxy(function(){this.drawOneWordDelayed(b)},this),10)},destroy:function(){this.options.autoResize&&a(window).off("resize."+this.data.namespace),this.clearTimeouts(),this.$element.removeClass("jqcloud"),this.$element.removeData("jqcloud"),this.$element.children('[id^="'+this.data.namespace+'"]').remove()},update:function(a){this.word_array=a,this.data.placed_words=[],this.clearTimeouts(),this.drawWordCloud()},resize:function(){var a={width:this.$element.width(),height:this.$element.height()};a.width==this.options.width&&a.height==this.options.height||(this.options.width=a.width,this.options.height=a.height,this.data.aspect_ratio=this.options.width/this.options.height,this.update(this.word_array))}},a.fn.jQCloud=function(b,d){var e=arguments;return this.each(function(){var f=a(this),g=f.data("jqcloud");if(g||"destroy"!==b)if(g)"string"==typeof b&&g[b].apply(g,Array.prototype.slice.call(e,1));else{var h="object"==typeof d?d:{};f.data("jqcloud",g=new c(this,b,h))}})},a.fn.jQCloud.defaults={set:function(b){a.extend(!0,c.DEFAULTS,b)},get:function(b){var d=c.DEFAULTS;return b&&(d=d[b]),a.extend(!0,{},d)}}});
\ No newline at end of file
diff --git a/word2vec/word2vec.js b/word2vec/word2vec.js
new file mode 100644
index 0000000..3207591
--- /dev/null
+++ b/word2vec/word2vec.js
@@ -0,0 +1,84 @@
+function Word2vec(data) {
+  function clean(str) {
+    return str.split(":")[0];
+}
+
+this.data = [];
+
+if (data.length > 0 && data[0].length > 0) {
+  this.data = [];
+  this.data.push({
+    text:clean(data[0][0]),
+    weight:1,
+    color: "violet"
+  });
+
+  console.log(JSON.stringify(data[0][1]));
+
+  var _tab = data[0][1];
+  for (var el in _tab) {
+    var __link = "cost_tam" + el;
+    this.data.push({
+      text: clean(_tab[el][0]),
+      weight: _tab[el][1],
+      link: "/lemma/pl/" + clean(_tab[el][0]),
+      handlers :{
+        click: function(res) {
+          return Word2vec.wordClick(res);
+        }
+      }
+    });
+
+      if (el > 50) {
+        break;
+      }
+    }
+    console.log(this.data);
+  }
+}
+
+Word2vec.wordClick = function(res) {
+  Lexp.target = "word2vec";
+  var target = "/lemma/pl/" + res.target.textContent;
+  Lexp.go2URL(target);
+
+  return false;
+}
+
+Word2vec.prototype.showHTML = function(tag) {
+  tag.html("");
+  tag.css("width", "100%");
+  stag = tag.append("<div/>").find('div:last-child');
+  data = this.data;
+
+  stag.jQCloud(this.data, {
+    height: 350,
+
+    shape: 'rectangular'
+  });
+  $("#lexpelement_word2vec .jqcloud");
+
+}
+
+Word2vec.id = "word2vec";
+var data = [], id;
+
+function reloadJQCloud() {
+  $("#lexpelement_word2vec .jqcloud").css("width", "100%");
+  $("#lexpelement_word2vec .jqcloud").empty();
+  $("#lexpelement_word2vec .jqcloud").jQCloud(data, {
+    height: 350,
+    shape: 'rectangular'
+  });
+ // $("#lexpelement_word2vec .jqcloud").css("margin","-10%");
+}
+
+$(function () {
+  Element.addVisualizer(Word2vec.id, Word2vec);
+
+  $(window).on('resize', function() {
+    clearTimeout(id);
+    id = setTimeout(reloadJQCloud, 500);
+  });
+
+});
\ No newline at end of file
-- 
GitLab